=== JOC Blockora Morph - Professional Blocks ===
Contributors: jayoncode
Tags: blocks, gutenberg, landing-page, shortcode, block library
Requires at least: 6.4
Tested up to: 7.0
Requires PHP: 8.0
Stable tag: 0.3.15
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Build better WordPress websites with Gutenberg using professional, reusable blocks you can customize, brand, and reuse—without a page builder.

== Description ==

**Blockora Morph helps you build beautiful WordPress websites using professional Gutenberg blocks and reusable website sections.**

Import a design from the Blockora library, customize it to match your brand, and insert it directly into the WordPress Block Editor or reuse it anywhere with a shortcode—all without installing a page builder.

= Why you’ll love Blockora Morph =

* **Build faster** — Start with professionally designed website sections instead of building every layout from scratch.
* **Native Gutenberg** — Designed for the WordPress Block Editor with a familiar editing experience.
* **Lightweight** — Clean, fast-loading blocks without page-builder bloat.
* **Responsive** — Preview and customize layouts for desktop, tablet, and mobile.
* **Fully customizable** — Adjust colors, typography, spacing, media, buttons, and more.
* **Reusable** — Insert as Gutenberg blocks or publish as reusable Content Block shortcodes.

= Website sections included =

Professional website sections ready to import, brand, and reuse:

**Hero**

* Simple
* Media Left
* Media Right
* Slider
* Video Background

**Banner**

* Simple

**Cards**

* Blog Grid
* Simple Grid

**Marketing**

* Pricing
* Testimonials
* FAQ
* Tabs
* Buttons

Browse the Library, preview on Desktop/Tablet/Mobile, then import into **My Blocks**.

= Why Blockora? =

Unlike traditional page builders, Blockora Morph is built specifically for Gutenberg.

* Native WordPress editing experience
* Lightweight front-end output
* Theme-friendly styling
* Reusable designs
* No vendor lock-in

= Perfect for =

* Business websites
* Landing pages
* Agencies
* Freelancers
* Portfolios
* Blogs
* SaaS websites
* Startups
* Anyone building with Gutenberg

= How it works =

1. Install Blockora Morph.
2. Browse the design library.
3. Import a website section.
4. Customize colors, spacing, typography, and media.
5. Insert it into Gutenberg or reuse it as a shortcode.

Optionally open **Global Settings** to set brand tokens (fonts/colors) and icon libraries used across your Blockora Morph library.

= Built for Modern WordPress =

* Plugin-owned CSS variables
* Theme-safe styling
* Native Gutenberg support
* Block themes & Classic themes
* Local assets by default
* No external account required

Under the hood:

* Styles use plugin-owned CSS custom properties (`--bm-*`) under `uploads/joc-blockora-morph/` — theme-safe branding that does **not** replace your theme’s palette.
* Optional Gutenberg presets use `bm-` slugs; your theme’s own presets stay intact.
* **Editor Blocks** appear in the inserter; **Content Blocks** expose fixed content via `[jocbm_blockora_morph id="…"]` (legacy `[joc_blockora_morph id="…"]` still works).
* Built-in Dashicons; optional Font Awesome / Material Icons via a stylesheet URL you provide.
* Local placeholders for hero/media defaults — no third-party image CDN required out of the box.

= Privacy & Security =

**Privacy first** — Blockora Morph keeps your data on your website.

* No tracking
* No telemetry
* No mandatory account
* No remote services by default
* Local assets

Technical details:

* **Admin capabilities** — REST and settings actions require appropriate WordPress capabilities (`edit_posts` for library/import flows; `manage_options` for theme tokens, icon libraries, system reset, and icon stylesheet scans).
* **Sanitized output** — block attributes and markup go through plugin sanitizers / allowed-HTML rules before save and front-end render.
* **Safe optional remotes** — if you add a custom font or icon stylesheet URL, the server validates it with `wp_http_validate_url` and fetches via `wp_safe_remote_get`. Visitors only load those assets when you enable them.
* **Data erasure helper** — Global Settings → System can permanently delete Blockora Morph blocks, shortcodes, generated CSS, and brand settings (admin only). This is plugin data cleanup, not a substitute for a full site privacy program.
* **Optional third parties you configure** — embedding YouTube/Vimeo, or loading Google Fonts / CDN icon CSS, causes the visitor’s browser to contact those services. Disclose that in your site privacy policy if you use those options. Defaults use local Inter (admin) and local placeholders — no Google Fonts CDN out of the box.

Site owners remain responsible for their own privacy notices, consent banners, and lawful basis when processing personal data in WordPress content.

= Compatibility =

* **Requires WordPress 6.4+** and **PHP 8.0+**. Older environments cannot activate and show a clear admin message.
* **Tested up to WordPress 7.0.** If your WordPress version is newer than our **Tested up to** value, the directory may show *“Untested with your version of WordPress”* until we verify that release.
* Classic and block themes are both supported. Wide/full alignment includes a Blockora Morph-scoped fallback for classic themes.

= License =

* Licensed under **GPLv2 or later** (see `license.txt`).
* Copyright (C) 2026 JayOnCode — see `copyright.txt`.
* Human-readable JavaScript sources ship under `src/`; runtime assets are in `build/`.
* Third-party notices (Inter font, Splide) are listed in `copyright.txt`.
* WordPress® is a registered trademark of the WordPress Foundation. This plugin is not affiliated with or endorsed by the WordPress Foundation.

= Looking Ahead =

Blockora Morph will continue growing with optional Pro features while keeping the free plugin fully functional.

Future enhancements may include:

* More website sections
* Advanced design controls
* Premium templates
* Additional integrations

Any WordPress-dependent Pro code will remain GPL-compatible.

== Installation ==

= Automatic installation =

1. In your WordPress admin, go to **Plugins → Add New**.
2. Search for **JOC Blockora Morph**.
3. Click **Install Now**, then **Activate**.
4. Open **Blockora Morph** in the admin menu and follow the welcome screen.

= Manual installation =

1. Download the plugin ZIP from WordPress.org (or your release package).
2. Go to **Plugins → Add New → Upload Plugin**, choose the ZIP, and click **Install Now**.
   Alternatively, extract the ZIP and upload the `joc-blockora-morph` folder to `/wp-content/plugins/` via FTP/SFTP.
3. Activate **JOC Blockora Morph** under **Plugins → Installed Plugins**.
4. Open **Blockora Morph** in the admin menu.

= After activation =

1. Complete the welcome screen (shown once on a fresh install).
2. Open the **Library**, preview a variant, and click **Import block**.
3. Customize the imported design under **My Library** (style editor), then:
   * Insert it from the Gutenberg block inserter on posts and pages, or
   * Create a **shortcode** Content Block for reuse in templates, widgets, or builders.
4. Optionally open **Global Settings** to set brand tokens (fonts/colors) and icon libraries.

**Requirements:** WordPress **6.4+** and PHP **8.0+**. The plugin will not activate on older environments and shows a clear compatibility message.

== Screenshots ==

1. Browse professionally designed website sections.
2. Customize every detail in the style editor.
3. Preview responsive layouts.
4. Insert sections directly into Gutenberg.
5. Reuse designs anywhere with Content Blocks.
6. Style editor (Mobile) — responsive overrides for tablets and phones.
7. Dashboard — three-step path from Library to Gutenberg blocks and shortcodes.
8. Global Settings Brand tab — fonts and color tokens with live preview.
9. Global Settings Icons tab — enable Dashicons and optional Font Awesome / Material.
10. Global Settings System tab — frontend editor toggle and data cleanup.

== Frequently Asked Questions ==

= What is JOC Blockora Morph? =

JOC Blockora Morph (Blockora Morph) helps you build better WordPress websites with Gutenberg using professional, reusable blocks you can customize, brand, and reuse—without a page builder. Import website sections from the library, brand them, use them in the Block Editor, and optionally publish fixed content as shortcodes.

= Is this plugin GPL? =

Yes. GPLv2 or later. See `license.txt` and `copyright.txt`.

= What WordPress versions are supported? =

WordPress **6.4 or newer** and **PHP 8.0 or newer** are required. The plugin will not activate below those versions and shows a compatibility notice explaining what to update.

= Why does the plugin directory say “Untested with your version of WordPress”? =

That message appears when your WordPress version is newer than our **Tested up to** value (currently **7.0**). After each major WordPress release we re-test Blockora Morph. Until that work is done, wordpress.org shows the standard untested label. It does **not** mean the plugin is incompatible — only that that release is not fully verified yet.

= Will Blockora Morph break if I change my theme? =

No. Block markup and styles use plugin-owned CSS variables (`--bm-*`) and stylesheets. Brand settings add optional Gutenberg presets with `bm-` slugs and leave your theme’s own presets in place.

= What is the difference between Editor Blocks and Content Blocks? =

**Editor Blocks** are registered for the Gutenberg inserter so you can place and edit them while building a page. **Content Blocks** store a fixed content snapshot and expose it via a shortcode (`[jocbm_blockora_morph id="…"]`) for reuse in templates, widgets, or classic layouts. The legacy tag `[joc_blockora_morph id="…"]` remains supported.

= Can I use it commercially? =

Yes, under the terms of the GPL. You may charge for distribution or services, but you must keep the software free (as in freedom) for recipients, including source availability as required by the GPL.

= Do you load Google Fonts by default? =

No. Defaults use system font stacks plus the bundled Inter font for the admin UI. Optional remote font stylesheet URLs are only loaded when you configure them in Theme Configuration, and you are responsible for having rights to use those fonts.

= Where is customized CSS stored? =

In your uploads directory under `/wp-content/uploads/joc-blockora-morph/`.

= Does the plugin require an account or send data off-site? =

No. There is no signup wall and no phone-home telemetry. Optional remote URLs (for example a custom icon stylesheet) are only requested when you explicitly configure them.

= Is JOC Blockora Morph GDPR compliant? =

The plugin itself does not collect personal data from visitors or send data to JayOnCode. Content you store (copy, images, shortcodes) lives in your WordPress database and uploads. If you enable remote fonts, icon CDNs, or video embeds, those third parties may process visitor IPs — document that in your site privacy policy. Administrators can wipe plugin data from Global Settings → System.

= Is there a Pro version? =

Blockora Morph will continue growing with optional Pro features while keeping the free plugin fully functional. Advanced features may arrive later as a separate Pro extension.

= How can I get support? =

Use the [WordPress.org support forum](https://wordpress.org/support/plugin/joc-blockora-morph/) for the free plugin, or visit [jayoncode.com](https://www.jayoncode.com/) for more information.

== Changelog ==

= 0.3.15 =
* Hero/banner media Object fit options (cover, contain, fill, scale-down, none)
* Fix hero/banner button box-shadows stripped by WordPress safecss rgba() filter
* Allow button shadows to paint outside hero overflow

= 0.3.14 =
* Library and Gutenberg list previews: larger buttons and zoomed non-hero/banner thumbs
* Auto-slide through Original and Owner variants on list cards (loops while visible)

= 0.3.13 =
* Smooth button hover transitions for color, background/gradients, border, and shadow
* New button library templates (bordered, rounded, light/dark, gradient, and hover variants)

= 0.3.12 =
* New animated brand logo (GIF) in admin, editor, and WordPress.org icons

= 0.3.11 =
* Hero/banner Badge border radius, border, and shadow honor inspector controls
* Banner min-height works in the block editor (removed 70vh clamp)
* Lucide button icons resolve reliably on new Owner Library blocks
* Variant insert preview scrolls for tall blocks
* Duplicate buttons in Fields and Styles
* Color picker Default tab shows JBM colors; Theme tab shows active theme palette
* Per-element Class name and ID fields in Design panel

= 0.3.10 =
* Editor block browser: left panel with JBM Library and My Blocks, live thumbs, search, category filter, and drag-to-insert
* Variant sidebar tab with confirm before switching variants
* Accordion General Surface radius inherits Card Surface when empty or corner off; explicit 0 stays sharp
* Admin menu icon polish and toolbar logo placement outside NavigableToolbar (fixes WP deprecation)

= 0.3.9 =
* Accordion and tabs: per-item button repeater at the bottom of content
* Show/Hide toggle for accordion and tabs buttons
* Library accordion preview fills height like hero/banner
* Editor shows a clear 404 when a My Block ID is missing

= 0.3.8 =
* Accordion: selectable arrow element with Arrow, Plus/Minus, and Plus/Close (X) indicators
* Plus/Minus and Plus/Close use crisp whole-pixel animation across all sizes
* Custom mode keeps separate closed and open icon pickers
* Pricing: Align buttons at end defaults on and no longer jumps when toggled off

= 0.3.7 =
* Pricing: reorder card elements (button pinned), checklist features, tag background/border/radius/shadow
* Card surface spacing and button pin layout improvements
* Catalog seed sync for pricing and card templates

= 0.3.6 =
* Leaner frontend CSS: skip default element order rules, omit button hover CSS when a block has no buttons, and avoid duplicating preset tokens in per-instance output.
* Library and user block stylesheets regenerate with schema-aware element order defaults.

= 0.3.5 =
* Remove restricted Gutenberg trademark term from the plugin name.

= 0.3.4 =
* Shorten WordPress.org plugin title to JOC Blockora Morph - Professional Gutenberg Blocks.

= 0.3.3 =
* Update WordPress.org plugin title to include the professional Gutenberg blocks tagline.

= 0.3.2 =
* Revamp readme for WordPress.org: user-first copy, clearer sections, and removed beta notice
* Button Border panel: full border picker plus per-corner radius controls
* Editor and template improvements across heroes, cards, testimonials, icons, and library UX

= 0.3.1 =
* Author URI set to https://www.jayoncode.com/

= 0.3.0 =
* Rename product to JOC Blockora Morph / joc-blockora-morph for WordPress.org trademark compliance
* Use blockora_morph_boc_* database table prefix
* Shortcode tag is [jocbm_blockora_morph]

= 0.2.4 =
* Fix Plugin Check PreparedSQL.NotPrepared on multi-table queries (inline SQL in prepare calls)

= 0.2.3 =
* SQL: every database query now uses $wpdb->prepare() with %i for table identifiers

= 0.2.2 =
* Sanitize inline CSS before wp_add_inline_style
* Rename JOCBM namespace and JOCBM constants
* Rename JS localize objects to jocbmAdmin/jocbmEditor/jocbmFront
* Legacy shortcode rewritten via content filter
* Harden SQL with wpdb prepare %i for table identifiers

= 0.2.1 =
* Security: wp_kses allow-list for shortcode, block, and frontend-edit HTML output
* Prefix: renamed hooks/options/functions to jocbm_* (4+ characters); legacy shortcode alias retained
* SQL: hardened queries; plugin table names from Schema::table() only
* Fix: removed invalid Donate URL from readme; support links point to WordPress.org
* Fix: uninstall.php parse error and safe DB access during plugin deletion

= 0.2.0 =
* Renamed plugin to **JOC Blockora Morph** (slug `joc-blockora-morph`) for trademark-safe distribution
* Local hero placeholders; hardened CSS/attribute sanitization; theme/system settings require `manage_options`
* Compatibility notices for unsupported WordPress/PHP and for newer untested major WordPress releases
* Clarified wordpress.org “Tested up to” / untested messaging in the readme

= 0.1.0 =
* Initial release: Blocks Library, import/style editor, Gutenberg sidebar, Content Blocks/shortcodes, Theme Configuration
* Authorship, GPLv2+, and WordPress.org-oriented license documentation

== Upgrade Notice ==

= 0.3.15 =
Update to 0.3.15.

= 0.3.14 =
Update to 0.3.14.

= 0.3.13 =
Update to 0.3.13.

= 0.3.12 =
Update to 0.3.12.

= 0.3.11 =
Update to 0.3.11.

= 0.3.10 =
Update to 0.3.10.

= 0.3.9 =
Update to 0.3.9.

= 0.3.8 =
Update to 0.3.8.

= 0.3.7 =
Update to 0.3.7.

= 0.3.6 =
Recommended update: smaller CSS output on the frontend with the same block styling and customization behavior.

= 0.3.5 =
Updates the plugin directory title to comply with WordPress.org naming guidelines.

= 0.3.4 =
Updates the plugin directory title.

= 0.3.3 =
Updates the plugin directory title display.

= 0.3.2 =
Update recommended: refreshed Blockora Morph library experience, stronger button border controls, and updated WordPress.org listing copy.

= 0.3.1 =
Author URI updated to https://www.jayoncode.com/.

= 0.3.0 =
Renamed to JOC Blockora Morph (slug joc-blockora-morph). Update recommended.

= 0.2.4 =
Plugin Check SQL fixes for category, system block, and button library queries.

= 0.2.3 =
Full wpdb::prepare() compliance for all plugin SQL queries.

= 0.2.2 =
Review fixes for escaping, prefixes, and SQL hardening.

= 0.2.1 =
Review and security hardening release. Existing shortcodes continue to work; options migrate automatically from joc_blockora_morph_* to jocbm_* on upgrade.

= 0.2.0 =
Plugin renamed to JOC Blockora Morph. Requires WordPress 6.4+ and PHP 8.0+.

= 0.1.0 =
Initial release.
