=== AxcelersBlocks ===
Contributors:      axcelershub
Tags:              gutenberg, block, blocks, editor, page builder
Requires at least: 6.8
Tested up to:      7.1
Requires PHP:      7.4
Stable tag:        2.1.5
License:           GPL-2.0-or-later
License URI:       https://www.gnu.org/licenses/gpl-2.0.html

Custom Gutenberg blocks to help build modern WordPress layouts faster.

== Description ==

AxcelersBlocks is a simple starter block plugin that helps you build beautiful and functional sections for any page and post. Each block has full style control for responsive design. 

We differentiate our blocks with the **AXB** prefix.

It is a free version. We will release the Pro version soon with more blocks, features and patterns.

== Features ==

- **Dynamic Tags** is one of the powerful features. It will help you to display dynamic content inside your blocks
  - Post title
  - Post excerpt
  - Post Permalink
  - Post Date
  - Post Meta
  - Comments Count
  - Comments URL
  - Term List
  - Author
  - Term Name
  - Term Description
  - Term Meta
  - ACF Field

- **HTML Tag** is a useful one for SEO

- **Responsive Design** control is another powerful feature. It enables you to control your style based on different viewports.

- **Performance** is our main focus. We follow the best practices for structuring the HTML. We use **block-based** style to avoid any unnecessary CSS loading on the page.

- We ensure our code standards for **security, stability and future compatibility**.

== Installation ==

There’s two ways to install AxcelersBlocks.

1. Go to “Plugins > Add New” in your Dashboard and search for: AxcelersBlocks
2. Download the .zip from WordPress.org, and upload the folder to the /wp-content/plugins/ directory via FTP.

== Frequently Asked Questions ==

= How to add your blocks to my page? =

- Create a new page/post or Edit any existing new page/post
- Add a new block and search by **AXB**
- Choose your block. Start adding content and style

= Does the Video block use any third-party services? =

Only if you choose to embed a streaming video. The Video block plays self-hosted videos with no external service. If you paste a YouTube, Vimeo, or Dailymotion URL (or any other oEmbed URL), the visitor's browser loads that provider's player directly, which sends the visitor's IP address, user agent, and request to the provider; nothing is sent unless you add such a URL. See each provider's terms and privacy policy: YouTube (https://www.youtube.com/t/terms, https://policies.google.com/privacy), Vimeo (https://vimeo.com/terms, https://vimeo.com/privacy), and Dailymotion (https://www.dailymotion.com/legal/terms, https://www.dailymotion.com/legal/privacy).

== Screenshots ==

1. Example blocks inside the editor.
2. Example blocks output on the frontend.

== Changelog ==

= 2.1.5 =
* Tested up to WordPress 7.1.
* Fixed the editor canvas sitting slightly narrower than the editor's own resize handles in tablet and mobile previews. WordPress 7.1 sizes the preview from a resizable wrapper around the canvas rather than from the canvas itself, so the custom device widths from the AxcelersBlocks settings page are now applied to that wrapper. Older WordPress versions are unaffected.
* Added the `axcelersblocks_is_plugin_block` filter so official addons can opt their own block namespace into the shared render pipeline (Custom CSS, Interactions, ARIA label extras).
* No block settings or defaults changed — existing content is unaffected.

= 2.1.4 =
* Added pattern placeholder images so Hero, Media with Text, Testimonials, and Featured Post patterns no longer show broken images on insert.
* Updated the minimum PHP requirement to 7.4 to match WordPress 7.0 and the plugin codebase.
* Added the Comments URL dynamic tag to the Bodycopy block, matching the Heading block.
* Sanitized table column width and background-color output in the Table block render callback.
* Added validation and admin notices for device width settings; invalid values now fall back to defaults and mobile width must stay smaller than tablet width.
* Synced the AxcelersBlocks style panel device switcher with WordPress's native Desktop, Tablet, and Mobile preview buttons.
* Restricted SVG uploads to administrators while keeping SVG sanitization for inline rendering.
* Removed unused dynamic-content modal code and fixed React hooks usage in the editor.

= 2.1.3 =
* Prefixed the global variables in the uninstall routine to follow WordPress coding standards. No functional change — existing content is unaffected.

= 2.1.2 =
* Removed leftover debug console messages from the Background layer controls so the editor console stays clean.
* Custom SVG icons in the Heading and Bodycopy blocks are now sanitized in the editor preview, matching the Button block and the sanitized front-end output.
* Added an uninstall routine that removes the plugin's stored settings when the plugin is deleted (including on multisite).
* Housekeeping: synced version metadata across plugin files. No block settings or defaults changed — existing content is unaffected.

= 2.1.1 =
* Fixed the block style controls (the AxcelersBlocks side panel) appearing unstyled in the editor on block themes. The inspector control styles were loaded as a block style asset, which only reaches the editor canvas iframe; they are now loaded with the editor assets so the side panel renders correctly for every block on all themes.

= 2.1.0 =
This release adds six new block patterns in two new pattern categories, refines the existing patterns, and improves the editor experience. Existing blocks are not affected by this update — no block settings or defaults changed.

New patterns
* Added an AXB: List pattern category with three new patterns: Feature Checklist, Two-Column Checklist, and Numbered Steps.
* Added an AXB: Table pattern category with three new patterns: Pricing Comparison, Product Specs, and Schedule.

Pattern improvements
* Updated the existing Hero, CTA, Media with Text, Featured Post, and Testimonials patterns so their layout spacing is written explicitly into the pattern markup, making inserted patterns independent of block default values.

Editor improvements
* Block identity badges (Box, Column, Columns, Heading, Bodycopy, Button, Image, Video, List, List Item) now appear only while hovering that specific block, so the canvas stays clean. When blocks are nested, only the innermost hovered block shows its badge.
* Refined the block icons in the inserter with tighter artwork.

= 2.0.0 =
This is a major release that adds a new Video block, a new link styling model, a mobile-first responsive system, page templates, and a rebuilt styling engine. Your existing blocks remain intact after updating; because the responsive system is now mobile-first, please review and re-check the responsive (tablet/mobile) settings on content built with earlier versions — see the upgrade notice below.

New blocks
* Added a new AXB Video block: a semantic figure/video element with multiple sources, caption tracks, and a poster image, plus playback options (autoplay, loop, muted, controls, playsinline, preload), self-hosted and dynamic video sources, optional streaming-platform embeds (YouTube, Vimeo, Dailymotion) with WordPress oEmbed fallback, and the full AxcelersBlocks style controls.

New styling and controls
* Added a complete link styling model to the Bodycopy, Heading, and Image blocks, letting you style the link across its default, hover, focus, and active states — typography, text and background color, border, border radius, spacing, display, and effects.
* Added focus and active interaction states to the Button block alongside the existing hover state across all style controls.
* Added dedicated icon-container styling (background, border, border radius, padding, margin, alignment) to the Bodycopy, Heading, and Button blocks.
* Added SVG element styling controls (sizing, positioning, display, and effects) for inline SVG icons.
* Added content styling controls and an Outline control to the relevant blocks.
* Expanded the Image block with flexbox and grid layout controls, dedicated image-element sizing (width, height, min, max, and border radius), and an optional empty-state placeholder.

Responsive system
* Switched the responsive system to mobile-first: device styles now use min-width media queries (base styles apply to mobile and scale up to tablet and desktop) instead of the previous desktop-first max-width approach. Content built with earlier versions keeps its blocks and settings, but because the cascade direction changed, its responsive (tablet/mobile) appearance should be reviewed and adjusted after updating.
* Fixed the per-block responsive controls so they stay in sync with WordPress's native Desktop, Tablet, and Mobile preview buttons in both directions, by reading WordPress's current stable device-type API. Switching device in either place now updates the other and resizes the editor canvas to your configured breakpoints.

Performance, SEO, and accessibility
* Added image priority loading: mark your largest above-the-fold image (the LCP) to load it eagerly with fetchpriority="high", plus an explicit loading control (lazy, eager, auto).
* Added link rel attributes (nofollow, sponsored, ugc) and a link title field for links across the relevant blocks.
* Added ARIA label support across blocks for improved accessibility.

Page templates
* Added Blank and Full-Width page templates that work in both classic and block (FSE) themes, so you can build full-page layouts without theme chrome.

Dynamic content
* Added support for ACF (Advanced Custom Fields) values as dynamic content sources.

Architecture
* Rebuilt block CSS generation on a shared PHP engine with dedicated per-block render helpers for cleaner, more consistent editor and frontend output, and minified the generated inline CSS.
* Added shared editor and frontend stylesheets for consistent styling across all blocks.

Table
* Redesigned the Table block family: streamlined the table data model and added per-cell column span, row span, scope, and vertical alignment, configurable border spacing, and improved section, row, and cell structure handling.

Fixes
* Fixed responsive positioning so absolutely-positioned elements keep their intended per-breakpoint offsets after the move to the mobile-first system. Previously, a side (top/right/bottom/left) set only on a wider breakpoint could inherit a narrower breakpoint's value, shifting or stretching positioned elements; each breakpoint's position is now self-contained.
* Fixed the Columns block child synchronization so adding, removing, or duplicating columns from the block toolbar stays in sync with the column count, with reliable two-way updates that are no longer affected by editor timing issues.

Compatibility
* Your existing blocks update without block recovery — no block shows an "unexpected or invalid content" notice. Because the responsive system moved from desktop-first to mobile-first, the tablet/mobile appearance of content built with earlier versions may differ and should be reviewed and adjusted after updating; your content and settings are not deleted.
* The block-level hover styling previously available on the Bodycopy and Heading blocks has been replaced by the new link styling model; those blocks update safely, but any block-level hover styling set on them will no longer be applied.

= 1.4.3 =
* Added a new UnitValueControl component that replaces plain text inputs with a smart unit-selector (px, em, rem, %, vw, vh, ch) across all style controls — Padding, Margin, Border, Border Radius, Box Shadow, Text Shadow, Filter, Transform, Icon Size, Flex, Grid, Position, Dimensions, and Typography.
* Added a dedicated editor script that serves as the single authority for the editor canvas preview width, reading tablet and mobile breakpoint values from the AxcelersBlocks settings page.
* Improved the per-block ResponsiveControl so switching between Desktop, Tablet, and Mobile in the inspector stays in sync with WordPress's own top-right preview device buttons, and vice versa.
* Improved DeviceContext to read device names and widths from the AxcelersBlocks settings REST API so responsive controls always reflect the configured breakpoints.

= 1.4.2 =
* Fixed AXB Columns so changing the column count preserves existing inner column content instead of rebuilding sibling columns.
* Fixed the Columns control to stay in sync when columns are duplicated or removed from the block toolbar.
* Refined shared icon control internals for Bodycopy, Button, Heading, List, and List Item.

= 1.4.1 =
* Updated the SVG allowed elements.

= 1.4.0 =
* Added new branded AxcelersBlocks block icons for every AXB block, using shared brand colors and sizing so the inserter, list view, and editor toolbar all match the plugin identity.
* Added dedicated block icons for the Table Cell, Table Row, and Table Section blocks.
* Added responsive image sources to the Image block, with per-device tablet and mobile overrides that render a semantic `<picture>` element with `<source>` breakpoints on the frontend.
* Added RGBA/transparency support to the Background Color control, including a swatch preview and an alpha-enabled color picker that saves hex or rgba() values automatically.
* Added separate Width and Height inputs to the Icon Size control, with a Link/Unlink toggle and Reset button; legacy single-value icon sizes continue to work.
* Added an image thumbnail preview (with media title) inside the Media controls so editors can see the selected image directly in the sidebar.
* Improved transform effects by consolidating the style generator into shared JavaScript and PHP helpers, keeping editor previews, hover styles, and frontend output consistent and correctly emitting `translate3d()` when a Z-axis value is set.
* Improved Padding and Margin controls so toggling between the "All Sides" and "Vertical / Horizontal" modes seeds the newly active mode from the existing side values instead of clearing them.
* Improved spacing rendering in both the editor and frontend by back-filling missing linked or axial values from individual side values, so toggling modes or opening older content still applies the correct spacing.
* Improved the List block's custom marker rendering to handle both legacy string and new object-based icon size values.
* Fixed the Transform control's inherited-value handling so responsive cascades fall back to safe defaults and no longer produce undefined values.
* Updated every block's default `transform` attribute to include the full 3D value set (translateZ, rotateX, rotateY, rotateZ) alongside the existing 2D values.

= 1.3.1 =
* Added SVG upload support to the Image block, plus an option to render uploaded or local SVG files inline instead of through an img tag.
* Added safer SVG sanitization for uploaded files and inline SVG rendering in the Image block.
* Updated translation template strings for the new Image block SVG controls and validation messages.

= 1.3.0 =
* Improved the AxcelersBlocks settings page icon so it renders with the plugin SVG and matches WordPress admin menu behavior more cleanly.
* Expanded icon controls with custom SVG upload/paste support, dedicated Icon and Icon Hover styling tabs, and better icon color handling.
* Improved icon hover behavior so hover CSS is only generated when hover values are explicitly set.
* Fixed Bodycopy links to inherit the block text color instead of falling back to theme link colors.
* Improved responsive controls to show inherited desktop and tablet values more clearly without generating unnecessary responsive CSS.
* Added Z-axis transform support for Translate and Rotate effects while keeping Skew on X and Y only.

= 1.2.0 =
* Added AXB Table, Table Section, Table Row, and Table Cell blocks for semantic table layouts with header and footer support.
* Added hover style tabs, hover attributes, and frontend hover style output for Heading, Bodycopy, Box, Column, List, and List Item blocks.
* Added live editor previews for dynamic Heading and Bodycopy content, plus live dynamic image previews in the Image block.
* Added list style type controls and richer marker styling options for the AXB List block.
* Improved AXB List Item rendering with per-item marker overrides and better ordered-list marker output.
* Fixed Box additional CSS class names so custom classes entered in the editor render on the frontend.
* Fixed Columns block custom HTML tag output so the selected semantic tag is used on the frontend instead of always rendering a div.
* Fixed Button dynamic permalink handling when a specific post is selected as the dynamic source.
* Fixed Button SVG icon rendering by sanitizing the final output with a complete SVG allowlist.
* Fixed Bodycopy excerpt and term description rendering to avoid invalid nested paragraph markup on the frontend.
* Fixed nested block icon and SVG rendering inside container blocks, and improved frontend icon sizing for Heading and Bodycopy.
* Fixed Bodycopy icon-only output so it no longer falls back to the “No content provided” message.
* Improved shared hover effect handling, selector previews, and table block rendering for better WordPress.org Plugin Check compatibility.

= 1.1.0 =
* Added AXB List block.
* Added AXB List Item block with nested list support.
* Added ordered and unordered list support.
* Added custom marker/icon support and list spacing controls.
* Improved shared editor settings and extensibility.
* Improved Columns and Heading editor behavior.

= 1.0.0 =
Welcome to AxcelersBlocks 1.0!
AxcelersBlocks is a starter collection for the Gutenberg editor. There are more and more block plugins emerging, but this one is different.
Instead of building a plugin with a collection of blocks you have to sort your way through, we built one with only 7 blocks. And with these seven blocks you can build almost all the sections you need for a page. 
With this approach you do not need to rely on the plugin’s limitation of features. You can just combine these 7 blocks and build your desired sections.
We will continue to improve this plugin and already have a plan to release a pro version which will have more features like integrating AI and Figma.
If you need help using the plugin, check out our [documentation](https://axcelersblocks.com/). If something is missing from the documentation, or you need more help, please don’t hesitate to [contact us](mailto:contact@axcelershub.com).

== Upgrade Notice ==

= 2.1.5 =
Compatibility release for WordPress 7.1. Aligns the editor canvas with the resize handles in tablet and mobile previews, and adds a filter for official addons. Existing content is unaffected.

= 2.1.4 =
Quality and compatibility release: pattern images, PHP 7.4 requirement, Bodycopy Comments URL dynamic tag, device settings validation, editor device sync, and security hardening. Existing content is unaffected.

= 2.1.3 =
Minor maintenance: coding-standards cleanup in the uninstall routine. No functional change.

= 2.1.2 =
Maintenance release: removes leftover debug console messages, sanitizes custom SVG icons in the Heading and Bodycopy editor previews, and adds an uninstall cleanup routine. No block settings or defaults changed — existing content is unaffected.

= 2.1.0 =
Adds six new List and Table block patterns in two new pattern categories, refines the existing patterns, and shows block identity badges only on hover for a cleaner editor canvas. Existing blocks are not affected.

= 2.0.0 =
Major update: new Video block, link styling model, mobile-first responsive system, page templates, rebuilt styling engine. Blocks update with no block recovery. As the responsive system is now mobile-first, review tablet/mobile settings on older content after updating.

= 1.4.3 =
Adds a unit-selector to all dimension inputs across every style control, syncs the editor canvas preview width with the AxcelersBlocks settings page breakpoints, and keeps the per-block device switcher in sync with WordPress's native preview buttons.

= 1.4.0 =
Adds new branded block icons, responsive tablet/mobile sources for the Image block, RGBA background colors, separate width/height icon sizing, shared transform helpers, and improved spacing mode behavior.

= 1.3.1 =
Adds Image block SVG upload and inline SVG rendering, safer SVG sanitization, and translation updates for the new SVG controls.

= 1.3.0 =
Adds improved icon controls and hover styling, cleaner responsive inheritance behavior, Bodycopy link color inheritance, and Z-axis support for Translate and Rotate effects.

= 1.2.0 =
Adds the new AXB Table block family, hover style controls, dynamic content preview improvements, and multiple frontend rendering fixes.

= 1.1.0 =
Adds new AXB List and List Item blocks, nested list support, and editor improvements.
