[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fkaC2DegyTcx77QjTSRLazvEhhAD3A6JARW-kqNEmDIE":3,"$fqXqK0BgPSZ-k6b9VybC12p3FAH1Xk2H54mnCU0VulJE":353,"$fxI0QWrR7IPf-4g8FnoKiO__ShUVctyHu8qS_Wfp2RLs":357},{"slug":4,"name":5,"version":6,"author":7,"author_profile":8,"description":9,"short_description":10,"active_installs":11,"downloaded":12,"rating":11,"num_ratings":11,"last_updated":13,"tested_up_to":14,"requires_at_least":15,"requires_php":16,"tags":17,"homepage":23,"download_link":24,"security_score":25,"vuln_count":11,"unpatched_count":11,"last_vuln_date":26,"fetched_at":27,"discovery_status":28,"vulnerabilities":29,"developer":30,"crawl_stats":26,"alternatives":36,"analysis":133,"fingerprints":334},"tada-confetti-celebration-effects","Tada Confetti – Celebration Effects","1.0.3","MD Shahriar Rabby","https:\u002F\u002Fprofiles.wordpress.org\u002Frabby5\u002F","\u003Cp>\u003Cstrong>Tada Confetti\u003C\u002Fstrong> is the ultimate celebration plugin for WordPress! Add delightful confetti, fireworks, and celebration effects that engage your visitors and make special moments memorable.\u003C\u002Fp>\n\u003Ch4>Why Tada?\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Cstrong>E-commerce Owners\u003C\u002Fstrong>: Celebrate purchases on your WooCommerce thank you pages\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Course Creators\u003C\u002Fstrong>: Reward students for completing lessons\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Bloggers & Marketers\u003C\u002Fstrong>: Increase engagement and time-on-page\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Event Sites\u003C\u002Fstrong>: Make announcements and celebrations unforgettable\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Free Features\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Classic confetti and fireworks effects\u003C\u002Fli>\n\u003Cli>Trigger options: page load and click target\u003C\u002Fli>\n\u003Cli>Shortcode support: [tada] and [confetti]\u003C\u002Fli>\n\u003Cli>Custom colors and physics controls\u003C\u002Fli>\n\u003Cli>Presets for fast setup\u003C\u002Fli>\n\u003Cli>Mobile disable option\u003C\u002Fli>\n\u003Cli>Accessibility support for reduced motion preferences\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>= Pro Features\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Smart triggers: scroll depth, timer, exit intent, hover, copy\u003C\u002Fli>\n\u003Cli>Advanced animations: emoji rain, floating balloons, custom shape, cursor trail\u003C\u002Fli>\n\u003Cli>Sound effects with volume and custom audio\u003C\u002Fli>\n\u003Cli>Display logic by user role, device, and schedule\u003C\u002Fli>\n\u003Cli>Integrations for WooCommerce, LMS, forms, and gamification\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Shortcode Examples\u003C\u002Fh4>\n\u003Cp>Basic usage:\u003Cbr \u002F>\n[tada]\u003C\u002Fp>\n\u003Cp>With custom options:\u003Cbr \u002F>\n    [tada particle_count=”150″ spread=”90″ colors=”#ff0000,#00ff00,#0000ff”]\u003C\u002Fp>\n\u003Ch4>Manual Trigger\u003C\u002Fh4>\n\u003Cp>Click trigger on selector:\u003Cbr \u002F>\n[tada trigger=”click” selector=”.celebrate-btn”]\u003C\u002Fp>\n\u003Ch4>JavaScript API\u003C\u002Fh4>\n\u003Cp>window.Tada.fire({ particleCount: 200 });\u003C\u002Fp>\n\u003Ch3>License\u003C\u002Fh3>\n\u003Cp>This plugin is licensed under GPLv2 or later.\u003C\u002Fp>\n","Add beautiful confetti, fireworks, and celebration effects to your WordPress site. Perfect for WooCommerce, form submissions, and special events!",0,108,"2026-03-26T22:31:00.000Z","6.9.4","5.8","7.4",[18,19,20,21,22],"animation","celebration","confetti","effects","fireworks","","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Ftada-confetti-celebration-effects.1.0.3.zip",100,null,"2026-04-16T10:56:18.058Z","no_bundle",[],{"slug":31,"display_name":7,"profile_url":8,"plugin_count":32,"total_installs":11,"avg_security_score":25,"avg_patch_time_days":33,"trust_score":34,"computed_at":35},"rabby5",1,30,94,"2026-05-19T23:30:07.332Z",[37,56,72,92,109],{"slug":38,"name":39,"version":40,"author":41,"author_profile":42,"description":43,"short_description":44,"active_installs":45,"downloaded":46,"rating":25,"num_ratings":47,"last_updated":48,"tested_up_to":14,"requires_at_least":49,"requires_php":23,"tags":50,"homepage":52,"download_link":53,"security_score":54,"vuln_count":47,"unpatched_count":11,"last_vuln_date":55,"fetched_at":27},"confetti-fall-animation","Confetti Fall Animation","1.3.2","Muhammad Shakeel","https:\u002F\u002Fprofiles.wordpress.org\u002Fshakeelu\u002F","\u003Cp>Confetti fall animation plugin for WordPress. Add a delightful falling confetti animation to your website for celebrations and special events.\u003C\u002Fp>\n\u003Ch3>\u003C\u002Fh3>\n\u003Ch3>How to Use\u003C\u002Fh3>\n\u003Col>\n\u003Cli>Go to WordPress Plugins\u003C\u002Fli>\n\u003Cli>Search for Confetti Fall Animation\u003C\u002Fli>\n\u003Cli>Install and activate the plugin\u003C\u002Fli>\n\u003Cli>Activate confetti on the homepage from plugin settings\u003Cbr \u002F>\nOR\u003Cbr \u002F>\nUse shortcode [confetti-fall-animation delay=”1″ time=”25″] on any post or page\u003C\u002Fli>\n\u003Cli>Enjoy the animation\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch3>\u003C\u002Fh3>\n\u003Ch3>\u003C\u002Fh3>\n\u003Ch3>Demo Video\u003C\u002Fh3>\n\u003Cp>\u003Cspan class=\"embed-youtube\" style=\"text-align:center; display: block;\">\u003Ciframe loading=\"lazy\" class=\"youtube-player\" width=\"750\" height=\"422\" src=\"https:\u002F\u002Fwww.youtube.com\u002Fembed\u002Fwpq-ItO53vo?version=3&rel=1&showsearch=0&showinfo=1&iv_load_policy=1&fs=1&hl=en-US&autohide=2&wmode=transparent\" allowfullscreen=\"true\" style=\"border:0;\" sandbox=\"allow-scripts allow-same-origin allow-popups allow-presentation allow-popups-to-escape-sandbox\">\u003C\u002Fiframe>\u003C\u002Fspan>\u003C\u002Fp>\n\u003Ch3>\u003C\u002Fh3>\n\u003Ch3>Compatibility\u003C\u002Fh3>\n\u003Cp>Fully compatible with Gutenberg, Elementor, WPBakery, and Divi.\u003Cbr \u002F>\nUse shortcode on any page or post.\u003C\u002Fp>\n\u003Ch3>\u003C\u002Fh3>\n","Confetti fall animation plugin for WordPress. Add a delightful falling confetti animation to your website for celebrations and special events.",600,7946,2,"2026-01-27T09:23:00.000Z","6.0.1",[18,19,20,22,51],"shortcode","https:\u002F\u002Fwpdeveloperr.com\u002Four-products\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fconfetti-fall-animation.1.3.2.zip",99,"2024-09-30 00:00:00",{"slug":57,"name":58,"version":59,"author":60,"author_profile":61,"description":62,"short_description":63,"active_installs":11,"downloaded":64,"rating":11,"num_ratings":11,"last_updated":65,"tested_up_to":14,"requires_at_least":66,"requires_php":67,"tags":68,"homepage":70,"download_link":71,"security_score":25,"vuln_count":11,"unpatched_count":11,"last_vuln_date":26,"fetched_at":27},"flareo","Flareo: Beautiful effects for your Site","0.5.0","21press","https:\u002F\u002Fprofiles.wordpress.org\u002F21press\u002F","\u003Cp>Flareo is a lightweight WordPress plugin that lets you add stunning visual effects like confetti to your website. Perfect for celebrations, announcements, or adding a touch of fun to user interactions.\u003C\u002Fp>\n\u003Cp>\u003Ciframe loading=\"lazy\" title=\"21Press - Flareo for WordPress\" src=\"https:\u002F\u002Fplayer.vimeo.com\u002Fvideo\u002F1152233817?dnt=1&app_id=122963\" width=\"750\" height=\"422\" frameborder=\"0\" allow=\"autoplay; fullscreen; picture-in-picture; clipboard-write; encrypted-media; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\">\u003C\u002Fiframe>\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Features:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Easy to use — no coding required\u003C\u002Fli>\n\u003Cli>Multiple preset styles and effect types\u003C\u002Fli>\n\u003Cli>Two trigger methods: page load or on-click\u003C\u002Fli>\n\u003Cli>Insert via shortcode or automatic placement\u003C\u002Fli>\n\u003Cli>Customizable colors via global settings\u003C\u002Fli>\n\u003Cli>Lightweight and performance-focused\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Usage\u003C\u002Fh3>\n\u003Cp>\u003Cstrong>Creating a Flare:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Col>\n\u003Cli>Navigate to \u003Cstrong>Flareo\u003C\u002Fstrong> in your WordPress admin\u003C\u002Fli>\n\u003Cli>Click \u003Cstrong>Add New\u003C\u002Fstrong> to create a new flare\u003C\u002Fli>\n\u003Cli>Choose your preset type and style\u003C\u002Fli>\n\u003Cli>Select a trigger method:\n\u003Cul>\n\u003Cli>\u003Cstrong>Page Load\u003C\u002Fstrong> — Effect triggers when the page loads\u003C\u002Fli>\n\u003Cli>\u003Cstrong>On Click\u003C\u002Fstrong> — Effect triggers when user clicks a target element\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>Set the insert method:\n\u003Cul>\n\u003Cli>\u003Cstrong>Shortcode\u003C\u002Fstrong> — Use \u003Ccode>[p21_flareo_flare id=\"123\"]\u003C\u002Fcode> in your content\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Automatic\u003C\u002Fstrong> — Apply on page load or Specify CSS selectors for automatic placement\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>\u003Cstrong>Shortcode Example:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cpre>\u003Ccode>[p21_flareo_flare id=\"123\"]\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Replace \u003Ccode>123\u003C\u002Fcode> with your actual flare post ID.\u003C\u002Fp>\n","Add beautiful and interactive effects to your WordPress site — just plug and play.",191,"2026-01-22T19:05:00.000Z","6.0","8.0",[18,19,20,21,69],"fun","https:\u002F\u002Fgithub.com\u002F21press\u002Fflareo\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fflareo.0.5.0.zip",{"slug":73,"name":74,"version":75,"author":76,"author_profile":77,"description":78,"short_description":79,"active_installs":25,"downloaded":80,"rating":11,"num_ratings":11,"last_updated":81,"tested_up_to":82,"requires_at_least":83,"requires_php":84,"tags":85,"homepage":89,"download_link":90,"security_score":91,"vuln_count":11,"unpatched_count":11,"last_vuln_date":26,"fetched_at":27},"tsparticles-block","tsParticles WP Block","3.0.0","Matteo Bruni","https:\u002F\u002Fprofiles.wordpress.org\u002Fmatteobruni\u002F","\u003Cp>Official tsParticles WordPress Plugin\u003C\u002Fp>\n\u003Cp>Easily create highly customizable particle, confetti and fireworks animations and use them as animated backgrounds for your website.\u003Cbr \u002F>\nReady to use components available also for Web Components, Vue.js (2.x and 3.x), Angular, Svelte, jQuery, Preact, React, Riot.js, Solid.js, Inferno.\u003C\u002Fp>\n\u003Cp>Official tsParticles website with options editor: \u003Ca href=\"https:\u002F\u002Fparticles.js.org\" rel=\"nofollow ugc\">https:\u002F\u002Fparticles.js.org\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>Official Social Channels:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fmatteobruni\u002Ftsparticles\" rel=\"nofollow ugc\">GitHub\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fdiscord.gg\u002FhACwv45Hme\" rel=\"nofollow ugc\">Discord\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fjoin.slack.com\u002Ft\u002Ftsparticles\u002Fshared_invite\u002FenQtOTcxNTQxNjQ4NzkxLWE2MTZhZWExMWRmOWI5MTMxNjczOGE1Yjk0MjViYjdkYTUzODM3OTc5MGQ5MjFlODc4MzE0N2Q1OWQxZDc1YzI\" rel=\"nofollow ugc\">Slack\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Ft.me\u002Ftsparticles\" rel=\"nofollow ugc\">Telegram\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwww.reddit.com\u002Fr\u002FtsParticles\u002F\" rel=\"nofollow ugc\">Reddit\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwww.twitter.com\u002Fr\u002FtsParticles\u002F\" rel=\"nofollow ugc\">Twitter\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>BREAKING CHANGES\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Removed all tsParticles \u003Ccode>load\u003C\u002Fcode> methods to keep only a single one using a single \u003Ccode>object\u003C\u002Fcode> parameter\u003C\u002Fli>\n\u003Cli>Removed support for shape deprecated properties like \u003Ccode>shape.image\u003C\u002Fcode>, \u003Ccode>shape.polygon\u003C\u002Fcode>, \u003Ccode>shape.stroke\u003C\u002Fcode>\n\u003Cul>\n\u003Cli>the stroke property can be found in the \u003Ccode>particles section\u003C\u002Fcode>, not in the \u003Ccode>shape\u003C\u002Fcode> object\u003C\u002Fli>\n\u003Cli>the image and polygon properties, like any other shape, are part of the \u003Ccode>shape.options\u003C\u002Fcode> object\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>Stroke now is a single object only like all the other particles properties\u003C\u002Fli>\n\u003Cli>Removed multiline text shape, the text shape now supports that\u003C\u002Fli>\n\u003Cli>Simplified some functions, using objects or removing unused overloads, this is breaking for v2 shapes\u003C\u002Fli>\n\u003Cli>Moved some properties to private since they were public by mistake (this shouldn’t affect many, the properties were mainly used in the engine)\u003C\u002Fli>\n\u003Cli>Removed obsolete random properties in options objects\u003C\u002Fli>\n\u003Cli>Removed emitters shapes from the plugin files, every emitters shape now has a dedicated package\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Major Changes\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>All the components for Front End frameworks were removed from this repository, each one now has its own repository. This is mainly for maintainability. It’s easier to support multiple Front End frameworks versions in a dedicated repository instead of a multipurpose monorepository. Vue.js 2.x and 3.x were kept split because they have many differences.\n\u003Cul>\n\u003Cli>Angular (\u003Ccode>@tsparticles\u002Fangular\u003C\u002Fcode>): https:\u002F\u002Fgithub.com\u002Ftsparticles\u002Fangular (v3 under development)\u003C\u002Fli>\n\u003Cli>Astro (\u003Ccode>@tsparticles\u002Fastro\u003C\u002Fcode>): https:\u002F\u002Fgithub.com\u002Ftsparticles\u002Fastro (v3 under development)\u003C\u002Fli>\n\u003Cli>Ember (\u003Ccode>@tsparticles\u002Fember\u003C\u002Fcode>): https:\u002F\u002Fgithub.com\u002Ftsparticles\u002Fember (v3 under development)\u003C\u002Fli>\n\u003Cli>Inferno (\u003Ccode>@tsparticles\u002Finferno\u003C\u002Fcode>): https:\u002F\u002Fgithub.com\u002Ftsparticles\u002Finferno (v3 under development)\u003C\u002Fli>\n\u003Cli>jQuery (\u003Ccode>@tsparticles\u002Fjquery\u003C\u002Fcode>): https:\u002F\u002Fgithub.com\u002Ftsparticles\u002Fjquery (v3 under development)\u003C\u002Fli>\n\u003Cli>Lit (\u003Ccode>@tsparticles\u002Flit\u003C\u002Fcode>): https:\u002F\u002Fgithub.com\u002Ftsparticles\u002Flit (v3 under development)\u003C\u002Fli>\n\u003Cli>Preact (\u003Ccode>@tsparticles\u002Fpreact\u003C\u002Fcode>): https:\u002F\u002Fgithub.com\u002Ftsparticles\u002Fpreact (v3 under development)\u003C\u002Fli>\n\u003Cli>React (\u003Ccode>@tsparticles\u002Freact\u003C\u002Fcode>): https:\u002F\u002Fgithub.com\u002Ftsparticles\u002Freact (v3 under development)\u003C\u002Fli>\n\u003Cli>Riot (\u003Ccode>@tsparticles\u002Friot\u003C\u002Fcode>): https:\u002F\u002Fgithub.com\u002Ftsparticles\u002Friot (v3 under development)\u003C\u002Fli>\n\u003Cli>Solid (\u003Ccode>@tsparticles\u002Fsolid\u003C\u002Fcode>): https:\u002F\u002Fgithub.com\u002Ftsparticles\u002Fsolid (v3 under development)\u003C\u002Fli>\n\u003Cli>Svelte (\u003Ccode>@tsparticles\u002Fsvelte\u003C\u002Fcode>): https:\u002F\u002Fgithub.com\u002Ftsparticles\u002Fsvelte (v3 under development)\u003C\u002Fli>\n\u003Cli>Vue.js (\u003Ccode>@tsparticles\u002Fvue\u003C\u002Fcode>): https:\u002F\u002Fgithub.com\u002Ftsparticles\u002Fvue (v3 under development)\u003C\u002Fli>\n\u003Cli>Web Components (\u003Ccode>@tsparticles\u002Fwebcomponents\u003C\u002Fcode>): https:\u002F\u002Fgithub.com\u002Ftsparticles\u002Fwebcomponents (v3 under development)\u003C\u002Fli>\n\u003Cli>WordPress (\u003Ccode>@tsparticles\u002Fwordpress\u003C\u002Fcode>): https:\u002F\u002Fgithub.com\u002Ftsparticles\u002Fwordpress (v3 under development)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>Removed all presets from this repository for a single one (\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Ftsparticles\u002Fpresets\" rel=\"nofollow ugc\">https:\u002F\u002Fgithub.com\u002Ftsparticles\u002Fpresets\u003C\u002Fa>) in the @tsparticles organization, this will make easier to contribute to specific presets or create new ones. (Renaming them to \u003Ccode>@tsparticles\u002Fpreset-\u003Cname>\u003C\u002Fcode> #3977)\u003C\u002Fli>\n\u003Cli>All the previous packages will be deprecated when v3 will come out. Using only the new naming system is the main focus of v3. All the official packages will have \u003Ccode>@tsparticles\u002F\u003C\u002Fcode> organization in the package name, replacing \u003Ccode>tsparticles-\u003C\u002Fcode> prefix, except for \u003Ccode>tsparticles\u003C\u002Fcode> package which will remain the same.\u003C\u002Fli>\n\u003Cli>Moved editor to its own repository: https:\u002F\u002Fgithub.com\u002Ftsparticles\u002Feditor\u003C\u002Fli>\n\u003Cli>Pjs package now supports all the legacy pjs options only. This will make this package a wrapper for old pjs users. You can’t use tsParticles options in pjs calls.\u003C\u002Fli>\n\u003Cli>Pjs package is no longer part of \u003Ccode>@tsparticles\u002Fslim\u003C\u002Fcode> bundle, only included in \u003Ccode>@tsparticles\u002Fall\u003C\u002Fcode>.\u003C\u002Fli>\n\u003Cli>Text shape is no longer part of \u003Ccode>@tsparticles\u002Fslim\u003C\u002Fcode> bundle, included in \u003Ccode>tsparticles\u003C\u002Fcode>.\u003C\u002Fli>\n\u003Cli>Emoji shape is now part of \u003Ccode>@tsparticles\u002Fslim\u003C\u002Fcode> bundle.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Bug Fixes\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Fixed bug when using particles groups\u003C\u002Fli>\n\u003Cli>Fixed pool on particles destroyed by updaters\u003C\u002Fli>\n\u003Cli>Fixed out modes, bounce was not checking the direction of the update request\u003C\u002Fli>\n\u003Cli>Fixed issue with change theme when an existing canvas is used\u003C\u002Fli>\n\u003Cli>Fixed updates on particles destroyed by updaters, that section wasn’t using the memory pool for reusing old particles instead of creating new ones.\u003C\u002Fli>\n\u003Cli>Fixed memory leak in destroyed particles by updaters, the z array wasn’t filtered, thanks to @longnguyen2004, closes #5101\u003C\u002Fli>\n\u003Cli>Fixed light interaction, particle shadow wasn’t calculated correctly\u003C\u002Fli>\n\u003Cli>Improved resize event and density formula\u003C\u002Fli>\n\u003Cli>Fixed trails config\u003C\u002Fli>\n\u003Cli>Fixed flat output in \u003Ca href=\"https:\u002F\u002Fnpmjs.com\u002Fpackage\u002F@tsparticles\u002Fconfetti\" rel=\"nofollow ugc\">@tsparticles\u002Fconfetti\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Improved sounds plugin\u003C\u002Fli>\n\u003Cli>Fixed position in emitters after respawn\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>New Features\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Added new EventType particleDestroyed\u003C\u002Fli>\n\u003Cli>Replaced text shape with emoji shape in \u003Ca href=\"https:\u002F\u002Fnpmjs.com\u002Fpackage\u002F@tsparticles\u002Fconfetti\" rel=\"nofollow ugc\">@tsparticles\u002Fconfetti\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Reworked \u003Ca href=\"https:\u002F\u002Fnpmjs.com\u002Fpackage\u002F@tsparticles\u002Ffireworks\" rel=\"nofollow ugc\">@tsparticles\u002Ffireworks\u003C\u002Fa> a bit for better output with the new v3 trails\u003C\u002Fli>\n\u003Cli>Added range values to life duration and delay of emitters\u003C\u002Fli>\n\u003Cli>Added two new bundles\n\u003Cul>\n\u003Cli>\u003Ccode>@tsparticles\u002Fbasic\u003C\u002Fcode>: minimum plugins for having circular dots moving in the canvas, common package for all bundles, and presets after this is released. Packages included:\n\u003Cul>\n\u003Cli>\u003Ccode>@tsparticles\u002Fengine\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>@tsparticles\u002Fmove-base\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>@tsparticles\u002Fshape-circle\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>@tsparticles\u002Fupdater-color\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>@tsparticles\u002Fupdater-opacity\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>@tsparticles\u002Fupdater-out-modes\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>@tsparticles\u002Fupdater-size\u003C\u002Fcode>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\u003Ccode>@tsparticles\u002Fall\u003C\u002Fcode>: a package that includes all the plugins, it’s not a best practice to use this, but the easiest way for trying every feature available for sure. It will be used mainly in the \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Ftsparticles\u002Fwebsite\" rel=\"nofollow ugc\">website\u003C\u002Fa>.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>Added event on config added to the engine\u003C\u002Fli>\n\u003Cli>Added flat options to @tsparticles\u002Fconfetti options\u003C\u002Fli>\n\u003Cli>Creating support for effects, like bubble that wasn’t a real shape\u003C\u002Fli>\n\u003Cli>Added linear easing\u003C\u002Fli>\n\u003Cli>Created new emitters shapes: Canvas, Path and Polygon\u003C\u002Fli>\n\u003Cli>Created trail effect plugin, this one is a real trail drawn in the canvas, it works also in transparent backgrounds. It requires more resources since it’s drawn calculating last N positions and not redrawing a semi-transparent canvas on itself, supports also fade.\u003C\u002Fli>\n\u003Cli>Added pop click interaction\u003C\u002Fli>\n\u003Cli>Added limit mode (breaking changes on limit options)\u003C\u002Fli>\n\u003Cli>Added possibility to replace color and opacity for emitters shapes\u003C\u002Fli>\n\u003Cli>Added more options for customizing noises values (only Simplex and Perlin paths)\u003C\u002Fli>\n\u003Cli>Added curl noise path plugin\u003C\u002Fli>\n\u003Cli>Created Simplex and Perlin noise packages from their path plugins, they can be used in multiple packages without duplication (Curl Noise path for example)\u003C\u002Fli>\n\u003Cli>Added new emoji shape, better performance than text shape\u003C\u002Fli>\n\u003Cli>Added clear flag to the root object, enabled by default, if disabled, the canvas won’t be cleared\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>= 2.11.0\u003C\u002Fp>\n\u003Ch3>Bug Fixes\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Removed console log, closes #5003\u003C\u002Fli>\n\u003Cli>Fixed getPositionOrSize function\u003C\u002Fli>\n\u003Cli>Fixed some shapes\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>New Features\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Added refresh flag for loading plugins, this will prevent multiple refresh of the instance\u003C\u002Fli>\n\u003Cli>Added animated gif support to image drawer (use it with caution, gifs are heavy)\u003C\u002Fli>\n\u003Cli>Added setLogger and getLogger functions, this will prevent \u003Ccode>console.log\u003C\u002Fcode> mistakenly left in the code.\u003C\u002Fli>\n\u003Cli>Added export plugins, previous export functions were removed (barely used), and a 3 new plugins are available. The available exports plugin are: Image, JSON, Video. The first two were already present, the third one is new.\u003C\u002Fli>\n\u003Cli>Added new rounded polygon shape\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Other Changes\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Removed fallbacks for requestAnimationFrame, they’re useless.\u003C\u002Fli>\n\u003Cli>Added tree shaking capabilities\u003C\u002Fli>\n\u003Cli>Added ESLint \u003Ccode>no-console\u003C\u002Fcode> rule, to avoid other issues likes #5003, \u003Ccode>getLogger\u003C\u002Fcode> must be used when needed some logs.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>How do \u003Ccode>setLogger\u003C\u002Fcode> and \u003Ccode>getLogger\u003C\u002Fcode> functions work?\u003C\u002Fh3>\n\u003Cp>If you want to customize the log of \u003Ccode>tsParticles\u003C\u002Fcode> you can call \u003Ccode>setLogger(logger)\u003C\u002Fcode> function, passing a \u003Ccode>ILogger\u003C\u002Fcode> object.\u003C\u002Fp>\n\u003Cp>The \u003Ccode>setLogger\u003C\u002Fcode> function prevents \u003Ccode>undefined\u003C\u002Fcode> properties assigning the default one.\u003C\u002Fp>\n\u003Cpre>\u003Ccode>`ts\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>setLogger({\u003Cbr \u002F>\n    debug: console.debug,\u003Cbr \u002F>\n    error: console.error,\u003Cbr \u002F>\n    info: console.info,\u003Cbr \u002F>\n    log: console.log,\u003Cbr \u002F>\n    verbose: console.log,\u003Cbr \u002F>\n    warning: console.warn,\u003Cbr \u002F>\n});\u003Cbr \u002F>\n    `\u003C\u002Fp>\n\u003Cp>This assigns all the log functions console functions, but you can use empty functions (\u003Ccode>() => {}\u003C\u002Fcode>) to disable every function.\u003C\u002Fp>\n\u003Cp>If there’s a \u003Ccode>console.log\u003C\u002Fcode> left like in #3552, #3528 or #5003, you can disable the \u003Ccode>log\u003C\u002Fcode> property of the \u003Ccode>setLogger\u003C\u002Fcode> parameter to get rid of it, so you don’t have to wait the next release.\u003C\u002Fp>\n\u003Cp>The \u003Ccode>getLogger\u003C\u002Fcode> function, returns the object set using \u003Ccode>setLogger\u003C\u002Fcode>, every plugin \u003Cem>MUST\u003C\u002Fem> use \u003Ccode>getLogger()\u003C\u002Fcode> for logging things, so mistakes can be fixed easily, even errors can be muted or redirected to your favorite logging platform.\u003C\u002Fp>\n\u003Cp>If you want to log something use this code:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>`ts\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>getLogger().log(“tsParticles is awesome”);\u003Cbr \u002F>\n    `\u003C\u002Fp>\n\u003Cp>= 2.10.0\u003C\u002Fp>\n\u003Ch3>New Features\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Added max speed value to collisions options\u003C\u002Fli>\n\u003Cli>Added range values to spiral shape options, added \u003Ccode>widthFactor\u003C\u002Fcode> value\u003C\u002Fli>\n\u003Cli>Added new arrow shape\u003C\u002Fli>\n\u003Cli>Added new cog shape\u003C\u002Fli>\n\u003Cli>Added mode to more coordinates options\u003C\u002Fli>\n\u003Cli>Added error prefix to standardize error messages\u003C\u002Fli>\n\u003Cli>Added image preload and name to shape options. Preload an image with a name, so it can be retrieved using only that in the options.\u003C\u002Fli>\n\u003Cli>Added compatibility with another old particles.js library (deprecated but some samples can be found around)\u003C\u002Fli>\n\u003Cli>Added new path plugin, using svg paths as a source\u003C\u002Fli>\n\u003Cli>Added delta to path generators\u003C\u002Fli>\n\u003Cli>Added delay options to particles values animations (\u003Ccode>opacity\u003C\u002Fcode>, \u003Ccode>size\u003C\u002Fcode>, \u003Ccode>color\u003C\u002Fcode>, \u003Ccode>stroke\u003C\u002Fcode>), closes #4985\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Bug Fixes\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Fixed typo in fireworks bundle exported types\u003C\u002Fli>\n\u003Cli>Fixed presets without particles count\u003C\u002Fli>\n\u003Cli>Improved container reset\u003C\u002Fli>\n\u003Cli>Fixed window resize fired during the initialization\u003C\u002Fli>\n\u003Cli>Improved spiral shape\u003C\u002Fli>\n\u003Cli>Fixed \u003Ccode>ICoordinates\u003C\u002Fcode> types\u003C\u002Fli>\n\u003Cli>Fixed some load functions that weren’t async\u003C\u002Fli>\n\u003Cli>Fixed some shapes particle init\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Other Changes\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Improved image shape\u003C\u002Fli>\n\u003Cli>Changed despawn confetti action using opacity animation, was life duration, closes #4978\u003C\u002Fli>\n\u003Cli>All the components for Front End frameworks were removed from this repository, each one now has its own repository. This is mainly for maintainability. It’s easier to support multiple Front End frameworks versions in a dedicated repository instead of a multipurpose monorepository. Vue.js 2.x and 3.x were kept split because they have many differences.\n\u003Cul>\n\u003Cli>Angular (\u003Ccode>ng-particles\u003C\u002Fcode>): https:\u002F\u002Fgithub.com\u002Ftsparticles\u002Fangular\u003C\u002Fli>\n\u003Cli>Astro (\u003Ccode>astro-particles\u003C\u002Fcode>): https:\u002F\u002Fgithub.com\u002Ftsparticles\u002Fastro\u003C\u002Fli>\n\u003Cli>Ember (\u003Ccode>ember-tsparticles\u003C\u002Fcode>): https:\u002F\u002Fgithub.com\u002Ftsparticles\u002Fember\u003C\u002Fli>\n\u003Cli>Inferno (\u003Ccode>inferno-particles\u003C\u002Fcode>): https:\u002F\u002Fgithub.com\u002Ftsparticles\u002Finferno\u003C\u002Fli>\n\u003Cli>jQuery (\u003Ccode>jquery-particles\u003C\u002Fcode>): https:\u002F\u002Fgithub.com\u002Ftsparticles\u002Fjquery\u003C\u002Fli>\n\u003Cli>Lit (\u003Ccode>lit-tsparticles\u003C\u002Fcode>): https:\u002F\u002Fgithub.com\u002Ftsparticles\u002Flit \u003Cem>(WIP)\u003C\u002Fem>\u003C\u002Fli>\n\u003Cli>Preact (\u003Ccode>preact-particles\u003C\u002Fcode>): https:\u002F\u002Fgithub.com\u002Ftsparticles\u002Fpreact\u003C\u002Fli>\n\u003Cli>React (\u003Ccode>react-particles\u003C\u002Fcode>): https:\u002F\u002Fgithub.com\u002Ftsparticles\u002Freact\u003C\u002Fli>\n\u003Cli>Riot (\u003Ccode>riot-particles\u003C\u002Fcode>): https:\u002F\u002Fgithub.com\u002Ftsparticles\u002Friot\u003C\u002Fli>\n\u003Cli>Solid (\u003Ccode>solid-particles\u003C\u002Fcode>): https:\u002F\u002Fgithub.com\u002Ftsparticles\u002Fsolid\u003C\u002Fli>\n\u003Cli>Stencil (`stencil-particles): https:\u002F\u002Fgithub.com\u002Ftsparticles\u002Fstencil \u003Cem>(WIP)\u003C\u002Fem>\u003C\u002Fli>\n\u003Cli>Svelte (\u003Ccode>svelte-particles\u003C\u002Fcode>): https:\u002F\u002Fgithub.com\u002Ftsparticles\u002Fsvelte\u003C\u002Fli>\n\u003Cli>Vue.js 2.x (\u003Ccode>vue2-particles\u003C\u002Fcode>): https:\u002F\u002Fgithub.com\u002Ftsparticles\u002Fvue2\u003C\u002Fli>\n\u003Cli>Vue.js 3.x (\u003Ccode>vue3-particles\u003C\u002Fcode>): https:\u002F\u002Fgithub.com\u002Ftsparticles\u002Fvue3\u003C\u002Fli>\n\u003Cli>Web Components (\u003Ccode>web-particles\u003C\u002Fcode>): https:\u002F\u002Fgithub.com\u002Ftsparticles\u002Fwebcomponents\u003C\u002Fli>\n\u003Cli>WordPress (\u003Ccode>wordpress-particles\u003C\u002Fcode>): https:\u002F\u002Fgithub.com\u002Ftsparticles\u002Fwordpress\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>Removed all presets from this repository for a single one (\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Ftsparticles\u002Fpresets\" rel=\"nofollow ugc\">https:\u002F\u002Fgithub.com\u002Ftsparticles\u002Fpresets\u003C\u002Fa>) in the @tsparticles organization, this will make easier to contribute to specific presets or create new ones.\u003C\u002Fli>\n\u003Cli>Added global variables to window object, so they are always accessible\u003C\u002Fli>\n\u003Cli>Migrating output to ES2021, it’s widely used and supported\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>= 2.9.3\u003C\u002Fp>\n\u003Ch3>Bug Fixes\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Fixed some plugins, they weren’t loading correctly the options\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>= 2.9.2\u003C\u002Fp>\n\u003Ch3>Bug Fixes\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Added missing shapes to confetti bundle\u003C\u002Fli>\n\u003Cli>Fixed issue with emitters plugin that spawned an unwanted emitters, fixes #4905\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>= 2.9.1\u003C\u002Fp>\n\u003Ch3>Bug Fixes\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Fixed missing plugins in wordpress component\u003C\u002Fli>\n\u003Cli>Fixed confetti bundle package.json\u003C\u002Fli>\n\u003Cli>Fixed confetti.create function in confetti bundle\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>= 2.9.0\u003C\u002Fp>\n\u003Ch3>New Features\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Creating confetti bundle, easier confetti animations usage. Removed \u003Ccode>confetti\u003C\u002Fcode> function from the preset, this bundle replaces this feature.\u003C\u002Fli>\n\u003Cli>Creating fireworks bundle, easier fireworks animations usage.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Minor Changes\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Added version to the \u003Ccode>Engine\u003C\u002Fcode> object.\u003C\u002Fli>\n\u003Cli>Added \u003Ccode>color\u003C\u002Fcode> and \u003Ccode>colorOffset\u003C\u002Fcode> properties to \u003Ccode>split\u003C\u002Fcode> options.\u003C\u002Fli>\n\u003Cli>Changed default particles \u003Ccode>number\u003C\u002Fcode> value to \u003Ccode>0\u003C\u002Fcode>, the previous default value was meaningless. You must specify a number now, it’s easier to implement \u003Ccode>emitters\u003C\u002Fcode> plugin since you can declare just the \u003Ccode>emitters\u003C\u002Fcode> property without specifying \u003Ccode>0\u003C\u002Fcode> particles. If you need any number, you declare it ignoring the default value.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>= 2.8.0\u003C\u002Fp>\n\u003Ch3>New Features\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Reworked move.trail options, created a \u003Ccode>fill\u003C\u002Fcode> property that is an object with color and image, closes #4882\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Bug Fixes\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Fixed polygon mask position issues\u003C\u002Fli>\n\u003Cli>Fixed polygon mask scaling issues\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>= 2.7.1\u003C\u002Fp>\n\u003Ch3>New features\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Added loop options to sounds audio values\u003C\u002Fli>\n\u003Cli>Added volume buttons to sounds plugin\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Other Changes\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Moved out some plugin specific code from the engine to the dedicated plugin\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>2.7.0\u003C\u002Fh4>\n\u003Ch3>Bug Fixes\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Fixed issue with animation random size, multiplying again the pixel ratio\u003C\u002Fli>\n\u003Cli>Added missing export \u003Ccode>EventType\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>Fixed Engine package exports\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>New Features\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Added shape options to circle, added range (min\u002Fmax object) values to polygon and star shape options\u003C\u002Fli>\n\u003Cli>Changed default file for slim and full bundles, using the bundled file\u003C\u002Fli>\n\u003Cli>Added support for multiple shape drawers declared at once instead of adding a shape drawer multiple times\u003C\u002Fli>\n\u003Cli>Added ranged values in stroke width and opacity properties\u003C\u002Fli>\n\u003Cli>Added loops count to color animations\u003C\u002Fli>\n\u003Cli>Improved density values, now is 1:1 with number on 1080p resolution with pixel ratio of 1 (this is not a breaking change since nothing breaks, but it changes the behavior of existing values)\u003C\u002Fli>\n\u003Cli>Density values now has width\u002Fheight values instead of area\u002Ffactor, for compatibility reason \u003Ccode>width\u003C\u002Fcode> is mapped to \u003Ccode>area\u003C\u002Fcode> and \u003Ccode>height\u003C\u002Fcode> to \u003Ccode>factor\u003C\u002Fcode>.\u003C\u002Fli>\n\u003Cli>Created sounds plugin, with mute\u002Funmute icons\u003C\u002Fli>\n\u003Cli>Added explosion sounds to fireworks preset\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Circle Options\u003C\u002Fh3>\n\u003Cp>In \u003Ccode>particle.shape\u003C\u002Fcode> now it’s possible to set another option to the \u003Ccode>circle\u003C\u002Fcode> shape, \u003Ccode>angle\u003C\u002Fcode>. The new property accepts a \u003Ccode>number\u003C\u002Fcode> or a \u003Ccode>{ min: number; max: number }\u003C\u002Fcode> object, when only \u003Ccode>number\u003C\u002Fcode> it’s going to be \u003Ccode>{ min: 0, max: \u003Cvalue> }\u003C\u002Fcode>.\u003C\u002Fp>\n\u003Cp>This creates partial circles starting from \u003Ccode>min\u003C\u002Fcode> to \u003Ccode>max\u003C\u002Fcode>, both values must be specified in degrees. If this value is ignored the default value is: \u003Ccode>{ min: 0, max: 360 }\u003C\u002Fcode> (the full circle).\u003C\u002Fp>\n\u003Ch3>Examples\u003C\u002Fh3>\n\u003Cpre>\u003Ccode>`\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>…\u003Cbr \u002F>\n  shape: {\u003Cbr \u002F>\n    type: “circle”,\u003Cbr \u002F>\n    options: {\u003Cbr \u002F>\n      circle: {\u003Cbr \u002F>\n        angle: 180\u003Cbr \u002F>\n      }\u003Cbr \u002F>\n    }\u003Cbr \u002F>\n  }\u003Cbr \u002F>\n…\u003Cbr \u002F>\n    `\u003C\u002Fp>\n\u003Cp>This examples creates horizontal half circles\u003C\u002Fp>\n\u003Cpre>\u003Ccode>`\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>…\u003Cbr \u002F>\n  shape: {\u003Cbr \u002F>\n    type: “circle”,\u003Cbr \u002F>\n    options: {\u003Cbr \u002F>\n      circle: {\u003Cbr \u002F>\n        angle: { min: 90, max: 270 }\u003Cbr \u002F>\n      }\u003Cbr \u002F>\n    }\u003Cbr \u002F>\n  }\u003Cbr \u002F>\n…\u003Cbr \u002F>\n    `\u003C\u002Fp>\n\u003Cp>This examples creates vertical half circles\u003C\u002Fp>\n\u003Ch3>Density options\u003C\u002Fh3>\n\u003Cp>The density options are changed a bit, instead of \u003Ccode>area\u003C\u002Fcode>\u002F\u003Ccode>factor\u003C\u002Fcode> values, the \u003Ccode>width\u003C\u002Fcode>\u002F\u003Ccode>height\u003C\u002Fcode> values are introduced and mapped respectively. The default values are changed to \u003Ccode>width\u003C\u002Fcode> \u003Ccode>1920\u003C\u002Fcode> and \u003Ccode>height\u003C\u002Fcode> \u003Ccode>1080\u003C\u002Fcode>, so on a FullHD resolution on device pixel ratio \u003Ccode>1\u003C\u002Fcode> the particles number is the one specified in the options. Since \u003Ccode>width\u003C\u002Fcode> and \u003Ccode>height\u003C\u002Fcode> are multiplied together, they can be swapped and nothing changes.\u003C\u002Fp>\n\u003Cp>The formula for the density is:\u003C\u002Fp>\n\u003Cp>(canvasWidth * canvasHeight) \u002F (densityWidth * densityHeight * devicePixelRatio^2)\u003C\u002Fp>\n\u003Ch3>Notes on existing configurations\u003C\u002Fh3>\n\u003Cp>Since many configs had a \u003Ccode>density.area\u003C\u002Fcode> value of \u003Ccode>800\u003C\u002Fcode>, you’ll see less particles, just a few less. If you have also a \u003Ccode>factor\u003C\u002Fcode> value, you won’t notice any difference. When only \u003Ccode>area\u003C\u002Fcode> is set, if you want to keep the previous configuration, set \u003Ccode>factor\u003C\u002Fcode> to \u003Ccode>1000\u003C\u002Fcode>. Since the default \u003Ccode>factor\u003C\u002Fcode> (\u003Ccode>height\u003C\u002Fcode>) value is \u003Ccode>1080\u003C\u002Fcode> now, the difference should be barely noticeable.\u003C\u002Fp>\n\u003Ch4>2.6.0\u003C\u002Fh4>\n\u003Ch3>Bug Fixes\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Improved angular component id management\u003C\u002Fli>\n\u003Cli>Fixed multiline text shape (and relative demo)\u003C\u002Fli>\n\u003Cli>Fixed issues with links colors and themes, fixes #4841\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>New Features\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Added new resize object to interactivity options, can change the debounce delay, fixes #4803\u003C\u002Fli>\n\u003Cli>WordPress plugin is now localizable, closes #4807\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Other Changes\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Fixed dependencies charts on README files, closes #4763\u003C\u002Fli>\n\u003Cli>Added reset to path generators, this fixes issues with sea anemone and polygon path plugins\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>2.5.4\u003C\u002Fh4>\n\u003Ch3>New Features\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Added localization support\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>2.5.3\u003C\u002Fh4>\n\u003Ch3>Bug Fixes\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Fixed issue with reduce duplicates flag, fixes #4805\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>2.5.1\u003C\u002Fh4>\n\u003Ch3>Bug Fixes\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Fixed issue with ES modules\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>2.4.0\u003C\u002Fh4>\n\u003Ch3>New Features\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Added \u003Ccode>reset\u003C\u002Fcode> method to updaters, this method will be called after a particle loses a life.\u003C\u002Fli>\n\u003Cli>Created the motion plugin for handling motion sickness, I moved this feature from the engine to a plugin since I prefer to have it more customizable. Everyone now can create their own motion sickness plugin, instead of having a standard behavior for everyone\u003C\u002Fli>\n\u003Cli>Added mutation observer to avoid style changes to the canvas when the \u003Ccode>fullScreen\u003C\u002Fcode> option is enabled (default behavior)\u003C\u002Fli>\n\u003Cli>Moved all easing functions to plugin packages, slim now depends on easing-quad since it’s the default value used in repulse and attract\u003C\u002Fli>\n\u003Cli>Added support for multiline text in canvas mask text options, separator and spacing are customizable values\u003C\u002Fli>\n\u003Cli>Added \u003Ccode>aria-hidden=\"true\"\u003C\u002Fcode> to canvas element, fixes #4785\u003C\u002Fli>\n\u003Cli>Removed all canvas context save\u002Frestore calls, this should be a huge improvement to general performances\u003C\u002Fli>\n\u003Cli>Added the particles pool for reusing destroyed particles, every tsParticles instance will have its own pool\u003C\u002Fli>\n\u003Cli>Changed collision absorb code, added \u003Ccode>absorb.speed\u003C\u002Fcode> option to \u003Ccode>collisions\u003C\u002Fcode> section\u003C\u002Fli>\n\u003Cli>Added delay to root options, fixes #4766\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Bug Fixes\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Fixed infection plugin\u003C\u002Fli>\n\u003Cli>Fixed issue with polygon mask when particles bounce on the polygon edges\u003C\u002Fli>\n\u003Cli>Fixed issue with \u003Ccode>rgb()\u003C\u002Fcode>, \u003Ccode>hsl()\u003C\u002Fcode> and \u003Ccode>hsv()\u003C\u002Fcode> values in color option values\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Other Changes\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Refactored plugins to avoid passing options in init functions since it’s no more necessary\u003C\u002Fli>\n\u003Cli>Removed \u003Ccode>initAsync\u003C\u002Fcode> function from plugins, standard \u003Ccode>init\u003C\u002Fcode> is now async for all plugins\u003C\u002Fli>\n\u003Cli>Removed polygon mask plugin from the \u003Ccode>tsparticles\u003C\u002Fcode> package, this is a breaking change only for those that are using it. Since it’s a heavy plugin and not so much used, I have preferred removing it from the \u003Ccode>tsparticles\u003C\u002Fcode> package.\u003C\u002Fli>\n\u003Cli>Changed tsconfig target from es6 to es2019 (less transpilation to a reasonable target). The compatibility is still very high, reducing the bundle size.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>2.3.5\u003C\u002Fh4>\n\u003Ch3>Bug Fixes\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Fixed issue when loading Absorbers and Emitters options\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>2.3.4\u003C\u002Fh4>\n\u003Ch3>Bug Fixes\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Handling “mid” value in links color value\u003C\u002Fli>\n\u003Cli>Fixed links id generation algorithm, it could improve links performances\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Other Changes\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Moved some specific code to correct plugins\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>2.3.3\u003C\u002Fh4>\n\u003Ch3>Release\u003C\u002Fh3>\n\u003Ch4>2.3.1\u003C\u002Fh4>\n\u003Ch3>Release\u003C\u002Fh3>\n","Example block scaffolded with Create Block tool.",4444,"2023-12-26T11:19:00.000Z","6.1.10","5.9","7.0",[86,87,20,22,88],"animations","block","particles","https:\u002F\u002Fparticles.js.org","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Ftsparticles-block.3.0.0.zip",85,{"slug":93,"name":94,"version":95,"author":96,"author_profile":97,"description":98,"short_description":99,"active_installs":100,"downloaded":101,"rating":11,"num_ratings":11,"last_updated":102,"tested_up_to":103,"requires_at_least":23,"requires_php":23,"tags":104,"homepage":23,"download_link":107,"security_score":108,"vuln_count":11,"unpatched_count":11,"last_vuln_date":26,"fetched_at":27},"fireworks-celebration","Fireworks Celebration","3.0","SAM","https:\u002F\u002Fprofiles.wordpress.org\u002Fblogsaays\u002F","\u003Cp>Fireworks Celebration allows you to display stunning fireworks effects on your website during special occasions, such as launches or inaugurations. Choose between colorful canvas-based fireworks or animated GIF fireworks for a dynamic visual experience. Simply upload transparent GIFs to the plugin’s \u003Cstrong>images\u003C\u002Fstrong> folder to use custom animations.\u003C\u002Fp>\n\u003Ch4>Features\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Choose between \u003Cstrong>GIF Fireworks\u003C\u002Fstrong> or \u003Cstrong>Canvas Fireworks\u003C\u002Fstrong>.\u003C\u002Fli>\n\u003Cli>Upload your own \u003Cstrong>transparent GIFs\u003C\u002Fstrong> for a unique effect.\u003C\u002Fli>\n\u003Cli>Customizable colors for \u003Cstrong>canvas-based\u003C\u002Fstrong> fireworks.\u003C\u002Fli>\n\u003Cli>Easy setup via the \u003Cstrong>WordPress Admin Panel\u003C\u002Fstrong>.\u003C\u002Fli>\n\u003Cli>Perfect for website launches, celebrations, and special events.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Usage\u003C\u002Fh4>\n\u003Col>\n\u003Cli>Activate the plugin from your WordPress dashboard.\u003C\u002Fli>\n\u003Cli>Upload your transparent \u003Cstrong>GIF fireworks\u003C\u002Fstrong> to the plugin’s \u003Ccode>images\u002F\u003C\u002Fcode> folder (for GIF mode).\u003C\u002Fli>\n\u003Cli>Configure settings under \u003Cstrong>Settings \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Fireworks\u003C\u002Fstrong> to choose \u003Cstrong>GIF\u003C\u002Fstrong> or \u003Cstrong>Canvas\u003C\u002Fstrong> mode.\u003C\u002Fli>\n\u003Cli>Enjoy stunning fireworks animations on your website! 🎇🎆\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch3>Support\u003C\u002Fh3>\n\u003Cp>For any issues or suggestions, please visit the plugin support forum or contact the plugin author directly via the WordPress plugin page.\u003C\u002Fp>\n\u003Ch3>License\u003C\u002Fh3>\n\u003Cp>This plugin is licensed under the GPLv2 license. See the LICENSE file for more details.\u003C\u002Fp>\n","Fireworks Celebration allows you to display stunning fireworks effects on your website during special occasions, such as launches or inaugurations.",80,988,"2025-02-17T15:06:00.000Z","6.7.5",[18,19,22,105,106],"gifs","website-launch","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Ffireworks-celebration.zip",92,{"slug":110,"name":111,"version":112,"author":113,"author_profile":114,"description":115,"short_description":116,"active_installs":117,"downloaded":118,"rating":34,"num_ratings":119,"last_updated":120,"tested_up_to":14,"requires_at_least":121,"requires_php":16,"tags":122,"homepage":128,"download_link":129,"security_score":130,"vuln_count":131,"unpatched_count":11,"last_vuln_date":132,"fetched_at":27},"image-hover-effects-ultimate","Image Hover Effects Ultimate ( Image Gallery, Effects, Lightbox, Comparison & Magnifier )","9.11.1","Oxilab","https:\u002F\u002Fprofiles.wordpress.org\u002Foxilab\u002F","\u003Cp>\u003Cstrong>Image Hover Effects Ultimate\u003C\u002Fstrong> is the most powerful image hover effects plugin for WordPress. Whether you want a clean caption reveal, a dramatic flip card, a side-by-side image comparison, or a magnifier zoom — you’ll find exactly what you need from 500+ CSS3 animations and 1500+ ready-to-use layouts.\u003C\u002Fp>\n\u003Cp>✨ No coding. No jQuery. Just beautiful hover effects that work everywhere.\u003C\u002Fp>\n\u003Cp>Trusted by \u003Cstrong>20,000+ WordPress users\u003C\u002Fstrong>, the plugin is lightweight, fully responsive, and compatible with Elementor, Gutenberg, WPBakery, Divi, Beaver Builder, and SiteOrigin.\u003C\u002Fp>\n\u003Cp>🎬 \u003Cstrong>\u003Ca href=\"https:\u002F\u002Fdemos.oxilab.dev\u002Fimagehover\u002Fdemos\u002F\" rel=\"nofollow ugc\">Live Demos\u003C\u002Fa>\u003C\u002Fstrong> | ⭐ \u003Cstrong>\u003Ca href=\"https:\u002F\u002Foxilab.dev\u002Fimage-hover-effects\u002Fpricing\u002F\" rel=\"nofollow ugc\">Upgrade to Pro\u003C\u002Fa>\u003C\u002Fstrong> | 📖 \u003Cstrong>\u003Ca href=\"https:\u002F\u002Foxilab.dev\u002Fdocs\u002Fimage-hover-effects\u002F\" rel=\"nofollow ugc\">Documentation\u003C\u002Fa>\u003C\u002Fstrong> | 🆘 \u003Cstrong>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fsupport\u002Fplugin\u002Fimage-hover-effects-ultimate#new-post\" rel=\"ugc\">Support\u003C\u002Fa>\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Hover effects are one of the easiest ways to make your WordPress site feel polished and professional. With Image Hover Effects Ultimate, you choose a style from the template library, upload your images, paste a shortcode — and you’re done.\u003C\u002Fp>\n\u003Cp>Every image hover animation is built in pure CSS3, so effects are silky smooth without adding any JavaScript weight to your pages.\u003C\u002Fp>\n\u003Ch3>🚀 Key Features\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>🎨 \u003Cstrong>500+ CSS3 hover animations\u003C\u002Fstrong> — fades, slides, flips, zooms, overlays, caption reveals, and more\u003C\u002Fli>\n\u003Cli>🖼️ \u003Cstrong>1500+ pre-designed layouts\u003C\u002Fstrong> — professionally crafted templates ready to customize\u003C\u002Fli>\n\u003Cli>📦 \u003Cstrong>10 powerful effect modules\u003C\u002Fstrong> — General, Caption, Flipbox, Button, Square, Lightbox, Comparison, Magnifier, Carousel, and Filter\u003C\u002Fli>\n\u003Cli>👁️ \u003Cstrong>Live preview\u003C\u002Fstrong> — see every change in real time without leaving the editor\u003C\u002Fli>\n\u003Cli>📱 \u003Cstrong>Fully responsive\u003C\u002Fstrong> — independent layout controls for desktop, tablet, and mobile\u003C\u002Fli>\n\u003Cli>👆 \u003Cstrong>Touch-friendly\u003C\u002Fstrong> — smooth interactions on iOS and Android devices\u003C\u002Fli>\n\u003Cli>🔤 \u003Cstrong>650+ Google Fonts\u003C\u002Fstrong> — full typography control for headings, descriptions, and buttons\u003C\u002Fli>\n\u003Cli>⚡ \u003Cstrong>Pure CSS3, no jQuery\u003C\u002Fstrong> — fast-loading animations that don’t slow your site down\u003C\u002Fli>\n\u003Cli>🔁 \u003Cstrong>Clone any style\u003C\u002Fstrong> — duplicate an effect and customize it without starting from scratch\u003C\u002Fli>\n\u003Cli>🛠️ \u003Cstrong>Custom CSS editor\u003C\u002Fstrong> — add your own CSS for total creative control\u003C\u002Fli>\n\u003Cli>♻️ \u003Cstrong>Built-in cache system\u003C\u002Fstrong> — optimized loading even on pages with many images\u003C\u002Fli>\n\u003Cli>🧩 \u003Cstrong>Works with every major page builder\u003C\u002Fstrong> — Elementor, Gutenberg, WPBakery, Divi, Beaver Builder, SiteOrigin\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>✨ Free Version Features\u003C\u002Fh3>\n\u003Cp>The free version is genuinely capable. Here is everything included at no cost:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>✅ All 10 effect modules available\u003C\u002Fli>\n\u003Cli>✅ 500+ CSS3 image hover animations\u003C\u002Fli>\n\u003Cli>✅ 1500+ pre-designed layout templates\u003C\u002Fli>\n\u003Cli>✅ Live preview admin panel\u003C\u002Fli>\n\u003Cli>✅ Fully responsive with per-device controls (🖥️ Desktop, 📱 Tablet, 📲 Mobile)\u003C\u002Fli>\n\u003Cli>✅ Touch and mobile device support\u003C\u002Fli>\n\u003Cli>✅ One-click style cloning\u003C\u002Fli>\n\u003Cli>✅ Image alignment, padding, and margin controls\u003C\u002Fli>\n\u003Cli>✅ Per-item links with optional new-tab support\u003C\u002Fli>\n\u003Cli>✅ Built-in cache system\u003C\u002Fli>\n\u003Cli>✅ Custom CSS editor\u003C\u002Fli>\n\u003Cli>✅ Shortcode-based — works in any post, page, or widget\u003C\u002Fli>\n\u003Cli>✅ Gutenberg block editor support\u003C\u002Fli>\n\u003Cli>✅ Elementor, WPBakery, Divi, Beaver Builder, and SiteOrigin support\u003C\u002Fli>\n\u003Cli>✅ SEO-friendly HTML output with proper alt tag support\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>🔥 Pro Version Features\u003C\u002Fh3>\n\u003Cp>Pro unlocks the full creative toolkit and priority support:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>🔓 \u003Cstrong>Full customization of all 500+ hover effects\u003C\u002Fstrong> — control colors, overlays, borders, shadows, and timing on every style\u003C\u002Fli>\n\u003Cli>🎨 \u003Cstrong>Advanced color pickers\u003C\u002Fstrong> — unlimited color control for text, backgrounds, overlays, borders, buttons, and hover states\u003C\u002Fli>\n\u003Cli>🔤 \u003Cstrong>650+ Google Fonts\u003C\u002Fstrong> — independent font selection for headings, descriptions, and button text\u003C\u002Fli>\n\u003Cli>✏️ \u003Cstrong>Custom font sizes\u003C\u002Fstrong> — separate size controls for every text element\u003C\u002Fli>\n\u003Cli>🖼️ \u003Cstrong>Border and shadow settings\u003C\u002Fstrong> — fine-tune border width, radius, and box shadows per element\u003C\u002Fli>\n\u003Cli>♾️ \u003Cstrong>Unlimited hover items\u003C\u002Fstrong> per shortcode\u003C\u002Fli>\n\u003Cli>🔗 \u003Cstrong>Advanced link options\u003C\u002Fstrong> — open links in a new tab on a per-item basis\u003C\u002Fli>\n\u003Cli>💻 \u003Cstrong>Custom CSS generation\u003C\u002Fstrong> — override styles at the individual effect level\u003C\u002Fli>\n\u003Cli>📹 \u003Cstrong>Video tutorials\u003C\u002Fstrong> for every feature\u003C\u002Fli>\n\u003Cli>🎧 \u003Cstrong>24\u002F7 priority support\u003C\u002Fstrong> with responses within 12 hours\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>👉 \u003Cstrong>\u003Ca href=\"https:\u002F\u002Foxilab.dev\u002Fimage-hover-effects\u002Fpricing\u002F\" rel=\"nofollow ugc\">See All Free vs Pro Features\u003C\u002Fa>\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Ch3>🎯 Perfect For\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>🎨 \u003Cstrong>Portfolios and agencies\u003C\u002Fstrong> — showcase work with stylish image reveals and hover captions\u003C\u002Fli>\n\u003Cli>🛍️ \u003Cstrong>eCommerce and WooCommerce\u003C\u002Fstrong> — highlight product details, overlays, and buy buttons on hover\u003C\u002Fli>\n\u003Cli>📸 \u003Cstrong>Photographers\u003C\u002Fstrong> — display galleries with elegant hover overlays and lightbox popups\u003C\u002Fli>\n\u003Cli>👥 \u003Cstrong>Team pages\u003C\u002Fstrong> — show staff names, roles, and social links with caption hover effects\u003C\u002Fli>\n\u003Cli>📰 \u003Cstrong>Blogs and magazines\u003C\u002Fstrong> — make featured images more engaging with CSS hover animations\u003C\u002Fli>\n\u003Cli>🏠 \u003Cstrong>Landing pages\u003C\u002Fstrong> — draw attention to key visuals and CTAs with smooth motion\u003C\u002Fli>\n\u003Cli>🔬 \u003Cstrong>Product detail pages\u003C\u002Fstrong> — use the magnifier module to zoom into product images on hover\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>📈 Why Use This Plugin\u003C\u002Fh3>\n\u003Cp>There are a few image hover plugins out there, but Image Hover Effects Ultimate is the one that covers every use case in one place.\u003C\u002Fp>\n\u003Cp>Here is why 20,000+ users choose it:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>📦 \u003Cstrong>All modules in one plugin\u003C\u002Fstrong> — General Effects, Caption Effects, Flipbox, Lightbox, Comparison, Magnifier, Carousel, and Filter are all built in. No separate add-ons needed.\u003C\u002Fli>\n\u003Cli>🖱️ \u003Cstrong>No coding required\u003C\u002Fstrong> — everything is configured through the visual admin panel with live preview\u003C\u002Fli>\n\u003Cli>⚡ \u003Cstrong>Lightweight\u003C\u002Fstrong> — pure CSS3 output with zero jQuery dependency keeps your pages fast\u003C\u002Fli>\n\u003Cli>🧩 \u003Cstrong>Builder ready\u003C\u002Fstrong> — shortcodes drop into Elementor, Gutenberg, Divi, or any other builder without friction\u003C\u002Fli>\n\u003Cli>🔒 \u003Cstrong>Actively maintained\u003C\u002Fstrong> — regular updates, PHP 8.4 compatibility, and security hardening with every release\u003C\u002Fli>\n\u003Cli>👨‍💻 \u003Cstrong>Developer-friendly\u003C\u002Fstrong> — custom CSS support, PSR-4 namespacing, and a clean codebase make it easy to extend\u003C\u002Fli>\n\u003C\u002Ful>\n","Add stunning image hover effects to WordPress. 500+ CSS3 animations, 10 effect modules, no coding needed. Support Elementor & Gutenberg.",20000,752464,248,"2026-03-27T14:53:00.000Z","6.2",[123,124,125,126,127],"css3-effects","image-gallery","image-hover-animation","image-hover-effects","photo-gallery","https:\u002F\u002Foxilab.dev","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fimage-hover-effects-ultimate.9.11.1.zip",96,8,"2022-12-11 00:00:00",{"attackSurface":134,"codeSignals":287,"taintFlows":303,"riskAssessment":330,"analyzedAt":333},{"hooks":135,"ajaxHandlers":264,"restRoutes":277,"shortcodes":278,"cronEvents":286,"entryPointCount":244,"unprotectedCount":11},[136,142,146,150,155,161,165,170,176,180,184,187,190,194,198,201,205,208,211,215,218,221,224,226,229,231,234,238,241,246,248,251,254,256,259],{"type":137,"name":138,"callback":139,"file":140,"line":141},"action","admin_menu","add_admin_menu","includes\u002Fclass-tada-confetti-celebration-effects-admin.php",50,{"type":137,"name":143,"callback":144,"file":140,"line":145},"admin_init","register_settings",51,{"type":137,"name":147,"callback":148,"file":140,"line":149},"admin_enqueue_scripts","enqueue_admin_assets",52,{"type":137,"name":151,"callback":152,"file":153,"line":154},"wp_enqueue_scripts","enqueue_scripts","includes\u002Fclass-tada-confetti-celebration-effects-frontend.php",43,{"type":156,"name":157,"callback":158,"file":159,"line":160},"filter","tada_localize_config","add_seasonal_config","includes\u002Fclass-tada-confetti-celebration-effects-scheduler.php",62,{"type":137,"name":162,"callback":163,"file":159,"line":164},"tada_admin_settings","render_seasonal_settings",63,{"type":137,"name":166,"callback":167,"file":168,"line":169},"wp_footer","add_submission_script","includes\u002Fintegrations\u002Fclass-cf7.php",53,{"type":137,"name":171,"callback":172,"priority":173,"file":174,"line":175},"gamipress_award_achievement","achievement_earned",10,"includes\u002Fintegrations\u002Fclass-gamipress.php",54,{"type":137,"name":177,"callback":178,"priority":173,"file":174,"line":179},"gamipress_award_points","points_awarded",59,{"type":137,"name":181,"callback":182,"priority":173,"file":174,"line":183},"gamipress_update_user_rank","rank_earned",64,{"type":137,"name":151,"callback":185,"file":174,"line":186},"check_earned_items",68,{"type":137,"name":166,"callback":188,"file":174,"line":189},"add_notification_script",71,{"type":156,"name":191,"callback":192,"priority":173,"file":193,"line":169},"gform_confirmation","add_confetti_to_confirmation","includes\u002Fintegrations\u002Fclass-gravity-forms.php",{"type":137,"name":195,"callback":196,"priority":173,"file":193,"line":197},"gform_enqueue_scripts","enqueue_form_scripts",56,{"type":137,"name":166,"callback":199,"file":193,"line":200},"add_submission_listener_script",57,{"type":137,"name":202,"callback":203,"priority":173,"file":204,"line":175},"learndash_course_completed","course_completed","includes\u002Fintegrations\u002Fclass-learndash.php",{"type":137,"name":206,"callback":207,"priority":173,"file":204,"line":179},"learndash_lesson_completed","lesson_completed",{"type":137,"name":209,"callback":210,"priority":173,"file":204,"line":183},"learndash_topic_completed","topic_completed",{"type":137,"name":212,"callback":213,"priority":173,"file":204,"line":214},"learndash_quiz_completed","quiz_completed",69,{"type":137,"name":166,"callback":216,"file":204,"line":217},"certificate_script",74,{"type":137,"name":151,"callback":219,"file":204,"line":220},"maybe_enqueue_scripts",78,{"type":137,"name":222,"callback":203,"priority":173,"file":223,"line":175},"lifterlms_course_completed","includes\u002Fintegrations\u002Fclass-lifterlms.php",{"type":137,"name":225,"callback":207,"priority":173,"file":223,"line":179},"lifterlms_lesson_completed",{"type":137,"name":227,"callback":228,"priority":173,"file":223,"line":183},"lifterlms_quiz_passed","quiz_passed",{"type":137,"name":230,"callback":172,"priority":173,"file":223,"line":214},"lifterlms_user_earned_achievement",{"type":137,"name":232,"callback":233,"priority":173,"file":223,"line":217},"lifterlms_user_earned_certificate","certificate_earned",{"type":137,"name":235,"callback":236,"priority":173,"file":223,"line":237},"llms_user_enrolled_in_course","user_enrolled",79,{"type":137,"name":151,"callback":239,"file":223,"line":240},"check_completion_pages",83,{"type":137,"name":242,"callback":243,"priority":244,"file":245,"line":175},"woocommerce_thankyou","thankyou_confetti",5,"includes\u002Fintegrations\u002Fclass-woocommerce.php",{"type":137,"name":166,"callback":247,"file":245,"line":179},"add_to_cart_script",{"type":137,"name":249,"callback":250,"priority":173,"file":245,"line":183},"comment_post","review_submitted",{"type":137,"name":252,"callback":253,"file":245,"line":214},"woocommerce_applied_coupon","coupon_applied",{"type":137,"name":166,"callback":167,"file":255,"line":169},"includes\u002Fintegrations\u002Fclass-wpforms.php",{"type":137,"name":257,"callback":258,"priority":173,"file":255,"line":197},"wpforms_process_complete","form_submitted",{"type":137,"name":260,"callback":261,"priority":262,"file":263,"line":175},"plugins_loaded","tada_init",20,"tada-confetti-celebration-effects.php",[265,270,273],{"action":266,"nopriv":267,"callback":268,"hasNonce":269,"hasCapCheck":269,"file":140,"line":169},"tada_save_settings",false,"ajax_save_settings",true,{"action":271,"nopriv":267,"callback":272,"hasNonce":269,"hasCapCheck":269,"file":140,"line":175},"tada_search_pages","ajax_search_pages",{"action":274,"nopriv":267,"callback":275,"hasNonce":269,"hasCapCheck":269,"file":140,"line":276},"tada_load_preset","ajax_load_preset",55,[],[279,284],{"tag":280,"callback":281,"file":282,"line":283},"tada","shortcode_handler","includes\u002Fclass-tada-confetti-celebration-effects-loader.php",127,{"tag":20,"callback":281,"file":282,"line":285},128,[],{"dangerousFunctions":288,"sqlUsage":289,"outputEscaping":291,"fileOperations":11,"externalRequests":11,"nonceChecks":300,"capabilityChecks":301,"bundledLibraries":302},[],{"prepared":32,"raw":11,"locations":290},[],{"escaped":292,"rawEcho":47,"locations":293},251,[294,298],{"file":295,"line":296,"context":297},"includes\u002Fclass-tada-confetti-celebration-effects-integrations.php",280,"raw output",{"file":295,"line":299,"context":297},286,3,4,[],[304,322],{"entryPoint":305,"graph":306,"unsanitizedCount":11,"severity":321},"ajax_save_settings (includes\u002Fclass-tada-confetti-celebration-effects-admin.php:469)",{"nodes":307,"edges":319},[308,313],{"id":309,"type":310,"label":311,"file":140,"line":312},"n0","source","$_POST (x16)",480,{"id":314,"type":315,"label":316,"file":140,"line":317,"wp_function":318},"n1","sink","update_option() [Settings Manipulation]",500,"update_option",[320],{"from":309,"to":314,"sanitized":269},"low",{"entryPoint":323,"graph":324,"unsanitizedCount":11,"severity":321},"\u003Cclass-tada-confetti-celebration-effects-admin> (includes\u002Fclass-tada-confetti-celebration-effects-admin.php:0)",{"nodes":325,"edges":328},[326,327],{"id":309,"type":310,"label":311,"file":140,"line":312},{"id":314,"type":315,"label":316,"file":140,"line":317,"wp_function":318},[329],{"from":309,"to":314,"sanitized":269},{"summary":331,"deductions":332},"The plugin \"tada-confetti-celebration-effects\" v1.0.3 exhibits a strong security posture based on the provided static analysis.  The absence of dangerous functions, file operations, and external HTTP requests, coupled with the comprehensive use of prepared statements for SQL queries and near-perfect output escaping, are significant strengths. The presence of nonce and capability checks on all identified entry points further bolsters its security by ensuring proper authorization and preventing unauthorized actions. Taint analysis revealing no unsanitized paths is also a positive indicator, suggesting that user-supplied data is being handled securely.\n\nWhile the code analysis reveals excellent security practices, it's important to note that the \"Unprotected: 0\" entry point count is highly favorable, indicating all AJAX handlers and REST API routes are appropriately secured. The vulnerability history is also clean, with no recorded CVEs, which suggests a well-maintained and secure development process. However, even with these positive indicators, it's always prudent to maintain vigilance, as new vulnerabilities can emerge. The overall assessment is that this plugin appears to be highly secure, with minimal to no inherent risks based on the data provided.",[],"2026-04-16T15:09:05.668Z",{"wat":335,"direct":342},{"assetPaths":336,"generatorPatterns":339,"scriptPaths":340,"versionParams":341},[337,338],"\u002Fwp-content\u002Fplugins\u002Ftada-confetti-celebration-effects\u002Fassets\u002Fcss\u002Ftada-confetti-celebration-effects-admin.css","\u002Fwp-content\u002Fplugins\u002Ftada-confetti-celebration-effects\u002Fassets\u002Fjs\u002Ftada-confetti-celebration-effects-admin.js",[],[],[],{"cssClasses":343,"htmlComments":344,"htmlAttributes":345,"restEndpoints":346,"jsGlobals":350,"shortcodeOutput":352},[],[],[],[347,348,349],"\u002Fwp-json\u002Ftada\u002Fv1\u002Fsettings","\u002Fwp-json\u002Ftada\u002Fv1\u002Fpages","\u002Fwp-json\u002Ftada\u002Fv1\u002Fpresets",[351],"tada_confetti_settings",[],{"error":269,"url":354,"statusCode":355,"statusMessage":356,"message":356},"http:\u002F\u002Flocalhost\u002Fapi\u002Fplugins\u002Ftada-confetti-celebration-effects\u002Fbundle",404,"no bundle for this plugin yet",{"slug":4,"current_version":6,"total_versions":47,"versions":358},[359,364],{"version":6,"download_url":24,"svn_tag_url":360,"released_at":26,"has_diff":267,"diff_files_changed":361,"diff_lines":26,"trac_diff_url":362,"vulnerabilities":363,"is_current":269},"https:\u002F\u002Fplugins.svn.wordpress.org\u002Ftada-confetti-celebration-effects\u002Ftags\u002F1.0.3\u002F",[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Ftada-confetti-celebration-effects%2Ftags%2F1.0.2&new_path=%2Ftada-confetti-celebration-effects%2Ftags%2F1.0.3",[],{"version":365,"download_url":366,"svn_tag_url":367,"released_at":26,"has_diff":267,"diff_files_changed":368,"diff_lines":26,"trac_diff_url":26,"vulnerabilities":369,"is_current":267},"1.0.2","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Ftada-confetti-celebration-effects.1.0.2.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Ftada-confetti-celebration-effects\u002Ftags\u002F1.0.2\u002F",[],[]]