=== Spectra Blocks – AI Website Builder for the Block Editor ===
Contributors: brainstormforce
Tags: ai website builder, gutenberg blocks, page builder, block editor, website builder
Requires at least: 6.6
Tested up to: 7.0
Requires PHP: 8.1
Stable tag: 0.0.9
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Build a full website with AI, then edit every block natively in Gutenberg. No new editor to learn, no lock-in.

== Description ==

Spectra Blocks is a complete rebuild of Spectra on WordPress's modern core-block APIs - an AI website builder built directly into the Block Editor.

Describe the page you want. Zip AI, our AI companion plugin, generates a complete first draft using Spectra blocks right inside the Block Editor. You install and connect it in a couple of clicks from the AI area in the Spectra Blocks dashboard. From there, you edit everything the normal way - no separate builder, no proprietary layout system, no plugin you have to keep forever just to keep your site working.

That's the whole idea: get the speed of an AI builder without giving up the editor WordPress already gives you.

If you're already using the original Spectra plugin, it hasn't gone anywhere - it's now called **Spectra Legacy**, and it keeps working and keeps getting maintenance updates. Spectra Blocks is a separate, new plugin. You move to it whenever it makes sense, not because you have to.

=== Why not just use a page builder? ===

Page builders like Elementor, Divi, and Beaver Builder wrap the WordPress editor in their own framework. That means their own shortcodes, their own rendering engine, and often their own way of doing things that doesn't go away even if you switch themes or plugins.

Spectra Blocks doesn't do that. It extends Gutenberg - it doesn't replace it. Every layout Zip AI generates is made of real WordPress blocks. Your content is standard block markup in your WordPress database, edited in the same editor WordPress already ships with. No shortcodes, no separate rendering engine, no proprietary interface sitting between you and your content.

=== What you can do with it ===

* Generate a full page from a text prompt
* Generate individual sections (hero, pricing, FAQ, testimonials, etc.) instead of a whole page
* Rewrite or improve copy on an existing page
* Convert an existing HTML page into native Spectra blocks
* Start a new page with AI instead of a blank canvas
* Fine-tune every block afterward using the native block editor - colors, spacing, typography, layout

== Why Spectra Blocks ==

**Rebuilt on core, not built around it.** Spectra Legacy was one of the first block plugins ever built - before many of today's WordPress APIs existed, so it had to build a lot of that groundwork itself. Spectra Blocks takes the opposite approach: it's built directly on WordPress's modern core-block APIs, so it naturally stays in step with WordPress as the platform evolves.

**AI where it actually helps.** Zip AI removes the blank-page problem. You still make the final call on every layout, section, and line of copy - the AI gets you a strong starting point, not a locked-in template.

**Composable, not bloated.** Instead of dozens of single-purpose blocks, Spectra Blocks gives you a smaller set of flexible blocks plus Extensions that add advanced design controls on top of them. Fewer moving parts, less to maintain, more design freedom.

**Native by design.** Everything is built and edited in the WordPress Block Editor, and your content is stored as standard block markup: no shortcodes, no proprietary page format, no separate interface to learn.

== Key Features ==

* **AI page generation** - describe a page, get a full first draft in native blocks
* **AI section generation** - generate individual sections instead of full pages
* **AI content rewriting** - improve or rewrite existing copy in place
* **HTML-to-blocks conversion** - turn an existing HTML page into native Spectra blocks
* **Extensions** - advanced spacing, border, shadow, and responsive controls for Spectra blocks
* **Container block** - build any custom layout by nesting core, Spectra, or third-party blocks inside it
* **Design Library** - ready-made patterns (info boxes, testimonials, pricing tables, comparisons, and more) built entirely from Spectra blocks, so you're not starting from scratch
* **Global Styles** - set colors, typography, and spacing once, apply them site-wide
* **Popup Builder** - build popups using the same native blocks
* **Animations** - fade, slide, zoom, flip, and more, applied directly to blocks

== Build with Zip AI ==

Zip AI is the AI companion for Spectra Blocks, and it's how most people will start a page. You install and connect it from the AI area in the Spectra Blocks dashboard, then generate right inside the editor.

Here's what it actually does:

* **Full-page generation** - give it a prompt, get a complete page draft
* **Section generation** - generate just a hero, pricing table, FAQ, or any other section
* **Content improvement** - ask it to tighten, rewrite, or expand existing copy
* **HTML conversion** - upload an existing HTML page and get it back as native blocks
* **Global Styles setup** - when you build with AI, Zip AI sets up your site's colors, typography, and spacing as Global Styles automatically, so everything stays organized and editable afterward

Every layout Zip AI produces is made entirely of Spectra Blocks. That means it's fully editable afterward - nothing is locked behind an AI-only interface.

**A note on pricing:** the core plugin, all blocks, and all Extensions are completely free and don't require an account. AI features come from Zip AI, a separate free plugin you install and connect from the Spectra Blocks dashboard. Using AI requires a ZipWP account and runs on credits, including for Spectra Blocks Pro users. AI requests are processed by the ZipWP service. See [ZipWP's terms of service](https://zipwp.com/terms-and-conditions/) and [privacy policy](https://zipwp.com/privacy-policy/).

== How Spectra Blocks Works ==

Spectra Blocks doesn't ship dozens of single-purpose blocks the way Spectra Legacy did. Instead, it gives you a small set of flexible blocks, plus Extensions that add advanced styling to WordPress's own core blocks.

* **Core Spectra blocks** (Paragraph, Heading, Image, Buttons) enhanced with Extensions for spacing, borders, shadows, and responsive design
* **Container** - the foundation for custom layouts; nest any block inside it, including core WordPress blocks and other plugins' blocks
* **Accordion** - build FAQs and any expandable content
* **Design Library** - pre-built patterns for testimonials, info boxes, pricing tables, and comparisons, all built from core blocks and Containers

Missing a block you used in Spectra Legacy? It's probably not gone - it's just built differently now. A testimonial is a Container with Image, Heading, and Paragraph inside it. A pricing table works the same way. If you'd rather use the original dedicated block exactly as it was, Spectra Legacy still has it.

== Who It's For ==

* **WordPress beginners** who want AI to remove the blank-page problem, without locking them into a proprietary builder
* **Freelancers and agencies** building client sites faster, without adding a page-builder dependency clients will be stuck maintaining
* **Bloggers and creators** who want well-designed pages without hand-building every section
* **WooCommerce store owners** building product and landing pages that load fast
* **Marketers** who need landing pages shipped quickly
* **Anyone leaving Elementor, Divi, or Beaver Builder** who wants page-builder speed without the page-builder framework
* **Existing Spectra users** ready to move to the actively-developed version, whenever that makes sense for them

== Performance ==

Spectra Blocks is built directly on WordPress's core block APIs - not layered on top of them the way Spectra Legacy had to be, since many of those APIs didn't exist yet when Legacy was built.

* Lighter editor overhead and a more responsive editing experience
* Cleaner, more semantic front-end code
* Loads only the CSS a page actually uses
* No proprietary rendering engine sitting between your content and your theme
* Built to stay in step with WordPress as the platform evolves, reducing the update-related breakage some users saw with Legacy's custom controls

== Compatibility ==

**Works well with these themes:**

* Astra
* Spectra One
* Kadence
* GeneratePress
* Blocksy
* Neve
* Flatsome

**Works well with these plugins:**

* WooCommerce
* SureCart
* Gravity Forms
* Fluent Forms
* LearnDash
* Tutor LMS
* Yoast SEO
* The Events Calendar
* GiveWP
* PrestoPlayer
* SureMembers
* MemberPress
* Easy Digital Downloads

Spectra Blocks works with any standards-compliant WordPress theme. It has been tested for compatibility with WPML.

== Coming from Spectra Legacy? ==

If you're already using Spectra (the original plugin, published under the "Ultimate Addons for Gutenberg" slug), here's what you need to know:

* **Spectra Legacy isn't going anywhere.** It keeps receiving maintenance updates, compatibility fixes, and security patches. There are no plans to remove it, and if that ever changes, we'll give plenty of advance notice.
* **Your existing site keeps working exactly as it does now.** Nothing about the plugin you're currently running changes.
* **Spectra Blocks is a separate, new plugin.** It's not an update to your current install - it's a different product, built for AI-first, composable page building.
* **New features are being built in Spectra Blocks going forward.** Zip AI and future capabilities are exclusive to this plugin.
* **Running both at once is normal, not a mistake.** Most people transitioning will run Spectra Legacy and Spectra Blocks side by side for a while - existing pages keep working on Legacy while new pages are built in Blocks. Each plugin only loads assets for the blocks a page actually uses, so this isn't a heavy tax. It's just not meant to be permanent - once a site no longer uses any Legacy blocks, you can deactivate Spectra Legacy.
* **Global settings don't carry over automatically.** Global Colors, Global Typography, and default block settings are separate between the two plugins. You'll set these up fresh in Spectra Blocks; your Legacy settings stay untouched.
* **Custom CSS and code may need updating.** Spectra Blocks uses new block markup, so custom CSS or code written against Legacy's classes will need to be updated for any sections you rebuild in Spectra Blocks. Legacy pages are unaffected as long as Spectra Legacy stays active.
* **Rebuilding a page won't change its URL.** Your links, menus, and SEO stay intact. The output is cleaner, more semantic HTML, which is generally a plus for SEO - just keep headings and URLs consistent as you rebuild.
* **There's no deadline to switch.** Move whenever it makes sense for your workflow. For brand-new projects, we recommend starting with Spectra Blocks, since it's the actively developed version - unless a specific block you need only exists in Legacy.

In short: Spectra Legacy is stable and supported. Spectra Blocks is where we're building next. Both are safe choices - one just goes further.

== Support ==

Need help? We're here for it.

* **Support forum:** use the Support tab on this page
* **Documentation:** available from your WordPress dashboard once the plugin is installed
* **Community:** Facebook Group - Web Creators by Astra

Found a security issue? Please report it responsibly through our security disclosure process rather than in a public forum post - see the FAQ below for details.

== Installation ==

1. From your WordPress dashboard, go to **Plugins → Add New**.
2. Search for **Spectra Blocks**.
3. Click **Install Now**, then **Activate**.
4. Open any page or post in the block editor to start building with Spectra blocks.
5. To enable AI features, install and connect Zip AI from the AI area in the Spectra Blocks dashboard.

You can also download the plugin from WordPress.org and upload it manually via **Plugins → Add New → Upload Plugin**.

We recommend testing on a staging site (or a new page) and keeping a recent backup before making major changes to a live site - good practice any time you add something new.

== Frequently Asked Questions ==

= What is Spectra Blocks? =

An AI website builder built on the native WordPress Block Editor. You describe a page, Zip AI, our companion AI plugin, generates a first draft using Spectra blocks in the native editor, and you refine it from there.

= What is Zip AI? =

Zip AI is a free companion plugin from ZipWP that powers the AI features in Spectra Blocks. You install and connect it from the AI area in the Spectra Blocks dashboard. It generates full pages, individual sections, rewrites existing content, and converts existing HTML pages into blocks you can edit afterward.

= Is Spectra Blocks a page builder? =

Not in the traditional sense. It doesn't replace the WordPress editor or add a separate builder interface. It works inside Gutenberg, adding a focused set of blocks with advanced design controls, a Container block for custom layouts, and AI-assisted generation.

= Is it better than Elementor? =

It depends what you're optimizing for. If you want page-builder speed without adopting a separate editing framework, Spectra Blocks is a lighter, more native option. If you specifically need Elementor's ecosystem of templates and add-ons, that's a different trade-off.

= Do I need coding knowledge? =

No. Zip AI generates layouts from plain-language prompts, and the block editor is fully visual.

= Is this the same plugin as Spectra? =

No. "Spectra Legacy" is the original plugin. Spectra Blocks is a new, separate plugin built for AI-first, composable page building. They have different WordPress.org listings.

= Should I move from Spectra Legacy? =

There's no requirement to. Spectra Legacy stays maintained, so your existing site is fine as-is. For new projects, we recommend starting with Spectra Blocks since it's the actively developed, more future-proof version - unless your project depends on a specific block that only exists in Legacy, in which case Legacy is the better fit for that project.

= Will my existing website break? =

No. Installing Spectra Blocks doesn't affect Spectra Legacy or any site currently using it. They're independent plugins.

= Can I use both plugins at the same time? =

Yes - and during a transition, most people do. Existing pages keep working on Spectra Legacy while you build new pages in Spectra Blocks. Each plugin only loads assets for the blocks a given page uses, so running both isn't a heavy performance tax. It's not meant to be a permanent setup, though: once a site no longer has any Legacy blocks on it, you can deactivate Spectra Legacy.

= Will installing or removing a plugin delete my content? =

No. Your content lives in your WordPress database, and deactivating a plugin never erases it. Just keep in mind a block needs its plugin active to render and stay editable - so keep Spectra Legacy active for as long as any page still uses Legacy blocks.

= Is Spectra Blocks free? =

Yes, the core plugin, all blocks, and all Extensions are free and don't require an account. AI features come from Zip AI, a separate free plugin, and require a ZipWP account with AI credits, including for Spectra Blocks Pro users.

= Does it work with WooCommerce? =

Yes, Spectra Blocks is compatible with WooCommerce for building product pages, shop pages, and landing pages.

= Does it slow down websites? =

Spectra Blocks only loads the CSS a given page needs and is built directly on core WordPress block APIs, so overhead is minimal. Actual performance still depends on your host, theme, and overall setup.

= What themes are supported? =

Spectra Blocks works with any standards-compliant WordPress theme. It's tested closely with Astra, Spectra One, Kadence, GeneratePress, Blocksy, Neve, and Flatsome.

= Can I use it on client websites? =

Yes, there's no restriction on using Spectra Blocks for client work.

= Will rebuilding a page in Spectra Blocks hurt my SEO? =

No. Rebuilding a page's content doesn't change its URL, so your links and rankings stay intact. The output is cleaner, more semantic HTML, which is generally a plus for SEO - just keep your headings and URLs consistent as you go.

= Some blocks I used in Spectra Legacy aren't in Spectra Blocks. Were they removed? =

Nothing's been removed - Spectra Legacy still has them, and your existing Legacy pages keep working as long as it's active. In Spectra Blocks, layouts like testimonials or info boxes are built by combining the Container block with core blocks like Image, Heading, and Paragraph, or by starting from a ready-made pattern in the Design Library.

= How do I report a security issue? =

Please report security issues responsibly through our security disclosure process rather than posting them publicly. Details are available on the plugin's support page.

== Screenshots ==

1. Generate a full page draft from a text prompt using Zip AI.
2. Refine an AI-generated layout using native Gutenberg blocks.
3. Build a custom layout using the Container block and core WordPress blocks.
4. Generate an individual section (e.g. pricing, FAQ) instead of a full page.
5. Browse ready-made patterns in the Design Library.
6. Global Styles controls for consistent colors, typography, and spacing site-wide.
7. Popup Builder using native blocks.
8. Coming Soon mode enabled on a single page.

== Source Code ==

This plugin's JavaScript and CSS are built from source files using standard WordPress build tools.

= Plugin Source =

* Block source files are located in the `src/` directory (excluded from the distribution zip for size).
* Admin dashboard source files are located in `admin/assets/src/` (also excluded from distribution).
* The compiled, production-ready assets are in `build/` and `admin/assets/build/` respectively.
* Source code is available on GitHub: [https://github.com/brainstormforce/wp-spectra-blocks](https://github.com/brainstormforce/wp-spectra-blocks)

To build from source:

1. `npm install && npm run build` — compiles block JavaScript and CSS.
2. `cd admin && npm install && npm run build` — compiles the admin dashboard React app.

= Third-Party Libraries =

The following pre-compiled third-party libraries are bundled in `assets/`:

* **Swiper** (slider functionality) — Source: [https://github.com/nolimits4web/swiper](https://github.com/nolimits4web/swiper) — License: MIT
* **AOS** (Animate on Scroll) — Source: [https://github.com/michalsnik/aos](https://github.com/michalsnik/aos) — License: MIT

= Bundled Library Source =

Source code for each bundled library and third-party utility used by this plugin:

* `lib/gutenberg-templates/dist/` and `lib/gutenberg-templates/inc/block/dist/` — Source: [https://github.com/brainstormforce/bsf-gutenberg-templates](https://github.com/brainstormforce/bsf-gutenberg-templates) (build: `npm install && npm run build`)
* `lib/nps-survey/dist/` — Source: [https://github.com/brainstormforce/bsf-nps-survey](https://github.com/brainstormforce/bsf-nps-survey) (build: `npm install && npm run build`)
* `lib/zipwp-images/dist/` — Source: [https://github.com/brainstormforce/bsf-zipwp-images](https://github.com/brainstormforce/bsf-zipwp-images) (build: `npm install && npm run build`)
* `lib/astra-notices/` — Source: [https://github.com/brainstormforce/astra-notices](https://github.com/brainstormforce/astra-notices) (plain PHP, ships unbuilt)
* `vendor/enshrined/svg-sanitize/` — Source: [https://github.com/darylldoyle/svg-sanitizer](https://github.com/darylldoyle/svg-sanitizer) (plain PHP, ships unbuilt)
* `admin/assets/build/dashboard-app.js` — bundles the `@bsf/force-ui` admin UI components — Source: [https://github.com/brainstormforce/bsf-admin-ui](https://github.com/brainstormforce/bsf-admin-ui) (build: `npm install && npm run build` in the `admin/` directory)


== External Services ==

This plugin connects to the following third-party services under certain conditions:

= Google Maps (maps.google.com) =
The Google Map block embeds a map on the frontend using the public Google Maps embed URL (`https://maps.google.com/maps?q=...&output=embed`). No API key is required and no data is sent from the server. The request is made by the visitor's browser each time a page containing the block is rendered; the address entered in the block is included in the URL so Google can return the matching map tile.
* Service URL: `https://maps.google.com/maps`
* [Terms of Service](https://developers.google.com/maps/terms)
* [Privacy Policy](https://policies.google.com/privacy)

= ZipWP API =
When the AI features are enabled and authorized, the plugin communicates with the ZipWP API for AI-powered content generation and template library features. User site URL and content prompts are sent to generate suggestions.
* Service URL: `https://api.zipwp.com/`
* [Terms of Service](https://zipwp.com/terms-and-conditions/)
* [Privacy Policy](https://zipwp.com/privacy-policy/)

= ZipWP (app.zipwp.com) =
When the user clicks "Authorize", "Sign Up", "Manage Plan", or "Buy Credits" in the Spectra Blocks AI dashboard, the browser is redirected to the ZipWP web app for authentication, account management, or billing. The redirect is user-initiated; no plugin-originated data is sent until the user interacts with the linked pages.
* Service URL: `https://app.zipwp.com/`
* Data sent: only the data the user enters on the ZipWP web app itself (login credentials, billing details); the plugin passes a site identifier in the return URL so the ZipWP dashboard can complete the round-trip after sign-up.
* When: only after the user clicks an authorization / billing link in the plugin's admin dashboard.
* [Terms of Service](https://zipwp.com/terms-and-conditions/)
* [Privacy Policy](https://zipwp.com/privacy-policy/)

= Starter Templates Credit Server =
When AI features are enabled, the plugin checks the credit balance for AI content generation features.
* Service URL: `https://credits.startertemplates.com/`
* [Terms of Service](https://www.brainstormforce.com/terms-and-conditions/)
* [Privacy Policy](https://startertemplates.com/privacy-policy/)

= Brainstorm Force Store =
When the "Get Spectra Pro" upsell is displayed in the admin dashboard, pricing information is fetched from the Brainstorm Force store. This request is made by the administrator's browser, not the plugin server.
* Service URL: `https://store.brainstormforce.com/`
* [Terms of Service](https://www.brainstormforce.com/terms-and-conditions/)
* [Privacy Policy](https://www.brainstormforce.com/privacy-policy/)

= Unsplash =
When using the AI-powered image library, images may be fetched from Unsplash. The bundled ZipWP Images library downloads free stock photos based on user-selected keywords. Image URLs and attribution data are retrieved from the Unsplash API.
* Service URL: `https://unsplash.com/`
* [Terms of Service](https://unsplash.com/terms)
* [Privacy Policy](https://unsplash.com/privacy)

= WordPress.org =
When installing recommended plugins or themes from the admin dashboard, the plugin uses the standard WordPress.org API to download packages.
* Service URL: `https://downloads.wordpress.org/`
* [Privacy Policy](https://wordpress.org/about/privacy/)

= WebsiteDemos.net =
When the Starter Templates library is enabled, template data may be synced from the WebsiteDemos.net service.
* Service URL: `https://websitedemos.net/`
* [Terms of Service](https://www.brainstormforce.com/terms-and-conditions/)
* [Privacy Policy](https://startertemplates.com/privacy-policy/)

= YouTube =
The admin dashboard settings page embeds tutorial videos from YouTube using the privacy-enhanced mode (youtube-nocookie.com). Videos are loaded only when a user clicks play on the admin dashboard. No user data is sent until playback is initiated.
* Service URL: `https://www.youtube-nocookie.com/`
* [Terms of Service](https://www.youtube.com/t/terms)
* [Privacy Policy](https://policies.google.com/privacy)

= BSF Analytics =
When the user opts in to share anonymous usage data, the bundled BSF Analytics library sends non-personal site environment data (WordPress version, theme, active plugins) to help improve the plugin.
* Service URL: `https://analytics.brainstormforce.com/`
* [Privacy Policy](https://www.brainstormforce.com/privacy-policy/)

= BSF Metrics =
When the user submits an NPS (Net Promoter Score) survey response from the admin dashboard, the bundled NPS Survey library sends the feedback to the BSF Metrics service.
* Service URL: `https://metrics.brainstormforce.com/`
* [Terms of Service](https://www.brainstormforce.com/terms-and-conditions/)
* [Privacy Policy](https://www.brainstormforce.com/privacy-policy/)

= Brainstorm Force Support =
When verifying plugin license status, the bundled Starter Templates library may communicate with the Brainstorm Force support portal.
* Service URL: `https://support.brainstormforce.com/`
* [Terms of Service](https://www.brainstormforce.com/terms-and-conditions/)
* [Privacy Policy](https://www.brainstormforce.com/privacy-policy/)

= Spectra Blocks News (wpspectra.com) =
The admin dashboard "What's New" panel fetches an RSS feed from wpspectra.com to display plugin announcements and release notes. This request is made by the administrator's browser, not the plugin server.
* Service URL: `https://wpspectra.com/whats-new/feed/`
* Data sent: None (standard GET request with no user data)
* [Terms of Service](https://www.brainstormforce.com/terms-and-conditions/)
* [Privacy Policy](https://wpspectra.com/privacy-policy/)

== Changelog ==

= 0.0.9 =
* New: MCP server integration with WordPress Abilities API — AI assistants can now read and modify page content via registered abilities.
* New: Added Create Post and Display Conditions abilities to the AI toolset.
* New: ZIP AI connect flow with install/activate button states in the AI dashboard.
* New: WPML translation compatibility (wpml-config.xml rebuilt for all block attributes).

= 0.0.8 =
* New: Added Display Conditions extension for login state visibility control.
* New: Added Post, SVG Animator, and Mega Menu blocks to the admin dashboard.
* Fix: Popup Builder — legacy spectra-popup posts now appear in the spectra-blocks popup list with full column support.
* Fix: Popup Builder — skip uagb/ block popups when UAGB is inactive to prevent broken frontend output.
* Fix: SVG Animator responsive controls now correctly use the spectra-pro/svg-animator block name.
* Fix: SVG Animators flex layout delegated to WordPress layout support for correct justification in editor.
* Fix: Design Library toggle shows correctly for sites with UAGB v2 and spectra-blocks both active.
* Fix: Spectra Blocks category icon now displays correctly in the block inserter.
* Update: Tested up to WordPress 7.0.

= 0.0.7 =
* Fix: Duplicate Enable/Disable column on Spectra Classic Popup Builder when UAGB beta is active.
* Fix: Slider — exposed window.Swiper for ES module editor bundle compatibility.

= 0.0.6 =
* Fix: Removed server-side IP geolocation lookups (WordPress.org compliance).
* Fix: Hardened the SVG upload sanitizer to fail closed when the sanitizer library is unavailable.
* Update: Documented all external services accessed by the plugin in readme.txt.

= 0.0.5 =
* Fix: Externalized Swiper library from webpack build.
* Fix: Improved Swiper asset loading via block.json declarations for proper editor iframe and frontend support.
* Fix: Updated GitHub repository URLs for source repositories.

= 0.0.4 =
* Fix: Updated Swiper library to v12.1.3.
* Fix: Added wp_kses() escaping at render output point in HtmlSanitizer.
* Fix: Wired lib-abspath-guard into grunt zip build pipeline.

= 0.0.3 =
* Fix: Added ABSPATH guards to all generated .asset.php files via webpack plugin.
* Fix: Added wp_unslash() before sanitization on all superglobal accesses.
* Fix: Added function_exists() guards around core file includes.
* Fix: Added capability check to SVG upload filter.
* Fix: Updated all shared libraries to latest versions.

= 0.0.2 =
* Fix: Address WordPress.org plugin review compliance issues.
* Fix: Sanitize all input data and escape all output.
* Fix: Use wp_print_inline_script_tag() for inline scripts.
* Fix: Prefix all global variables and class names.
* Fix: Bundle learn section images locally.
* Fix: Remove direct plugin activation and theme switching.
* Fix: Document all external services in readme.txt.
* Update: Tested up to WordPress 6.9.

= 0.0.1 =
* Initial release.


