=== A360 Panorama Hero ===
Contributors: a360pl
Tags: panorama, 360, hero, gutenberg, webgl
Requires at least: 6.0
Tested up to: 7.0
Requires PHP: 7.4
Stable tag: 1.3.14
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Turn the first screen of your website into an immersive 360° experience—while keeping the familiar WordPress editor.

== Description ==

A flat image can introduce a page. A panorama can pull people into it.

A360 Panorama Hero provides a dynamic Gutenberg block for building memorable Hero sections with an interactive equirectangular 360-degree image in the background. It is ideal for hotels, real estate, architecture, showrooms, tourism, events, creative portfolios, and any website where space and atmosphere help tell the story.

The foreground content uses native InnerBlocks. Headings, paragraphs, buttons, groups, columns, and other supported WordPress blocks remain editable with standard block editor controls. There is no separate page builder and no unfamiliar content workflow.

Build the Hero your way, invite visitors to look around, and make the most valuable part of the page impossible to ignore.

= Lightweight by design =

A360 Panorama Hero keeps its footprint focused. Panorama styles and scripts are loaded only on pages where the block or shortcode is used, so the plugin does not add an unnecessary site-wide script payload. It also uses no tracking and requires no external rendering service.

Features include:

* Native dynamic Gutenberg block with InnerBlocks content.
* Lightweight assets loaded only on pages that use a panorama.
* Equirectangular 2:1 panorama images from the Media Library.
* Multiple panoramas with a configurable automatic switching interval.
* Optional poster image displayed while WebGL initializes.
* Automatic rotation with configurable speed and restart delay.
* Adjustable field of view, overlay opacity, and block height.
* Horizontal and vertical content alignment controls.
* Adjustable content padding.
* Keyboard, pointer, and touch interaction.
* A shortcode for displaying a standalone panorama.

No external service or user tracking is used by this plugin.

== Installation ==

1. Upload the `a360-panorama-hero` directory to `/wp-content/plugins/`, or install the plugin through the WordPress Plugins screen.
2. Activate A360 Panorama Hero.
3. Add the A360 Panorama Hero block in the block editor.
4. Select a 2:1 equirectangular panorama from the Media Library and edit the foreground content with native blocks.

== Shortcode ==

Use an attachment ID, an absolute image URL, or a filename placed in the plugin's `panoramas` directory:

`[a360_panorama images="123,124,125" interval="8" height="600" speed="1.5" fov="75" resume="5"]`

The existing single-image syntax remains supported: `[a360_panorama image="123"]`

Supported attributes:

* `image` - a single attachment ID, image URL, or local filename (backward compatible).
* `images` - comma-separated attachment IDs, image URLs, or local filenames.
* `interval` - panorama change interval in seconds.
* `poster` - optional poster image.
* `height` - viewer height in pixels.
* `speed` - automatic rotation speed.
* `fov` - initial field of view.
* `resume` - delay before rotation resumes after interaction.
* `autoplay` - `always`, `respect`, or `off`.
* `label` - accessible viewer label.

== Frequently Asked Questions ==

= Which image format should I use? =

Use a 2:1 equirectangular panorama. WebP or JPEG usually provides a good balance between image quality and file size.

= Can I edit the Hero text and buttons normally? =

Yes. The Hero foreground is built with native WordPress blocks through InnerBlocks.

= Does the plugin send data to an external service? =

No. The panorama is rendered in the visitor's browser and the plugin does not add analytics or external service requests.

== Screenshots ==

1. A360 Panorama Hero displayed on the front end.
2. Panorama and content controls in the block editor.
3. Native WordPress blocks placed over the panorama.

== Changelog ==

= 1.3.14 =

* Adds multiple panorama support to the shortcode through the `images` and `interval` attributes.

= 1.3.13 =

* Changes source strings to English and adds Polish, German, French, and Spanish translations for PHP and the block editor.

= 1.3.12 =

* Replaces the circular panorama removal control with a simple red X.

= 1.3.11 =

* Makes Change image replace the panorama selected with the editor thumbnail instead of always replacing the first panorama.

= 1.3.10 =

* Makes panorama-link hotspots open their target panorama with the configured transition and target hotspot set.

= 1.3.9 =

* Animates both panorama canvases directly for a guaranteed two-second crossfade.

= 1.3.8 =

* Uses retained WebGL frames for a simultaneous two-layer crossfade without a blank or black frame.

= 1.3.7 =

* Replaces the WebGL snapshot crossfade with a reliable two-second fade-out and fade-in transition.

= 1.3.6 =

* Ensures the outgoing WebGL frame is captured before the two-second panorama crossfade.

= 1.3.5 =

* Restores automatic rotation after closing a hotspot modal while preserving an earlier manual pause.

= 1.3.4 =

* Pauses the panorama-switch timer during user interaction and restarts it from zero when automatic rotation resumes.

= 1.3.3 =

* Adds a two-second crossfade when switching panoramas and their hotspot layers.

= 1.3.2 =

* Fixes hotspot replacement when automatically switching between panoramas.

= 1.3.1 =

* Adds independent hotspot sets for every panorama and a thumbnail scene selector in the block editor.

= 1.3.0 =

* Adds multiple panoramas to the Hero block, thumbnail management in the editor, and configurable automatic switching.
* Preserves compatibility with existing blocks that contain a single panorama.

= 1.2.3 =

* Adds a per-hotspot Visible setting for showing or hiding its title label.

= 1.2.1 =

* Updates nadir logo rotation and size live without resetting the panorama view.

= 1.2.0 =

* Adds a per-panorama nadir logo with adjustable rotation and size.

= 1.1.6 =

* Ensures every block renders its own saved panorama URL, even when a stale attachment ID is retained after duplication or translation.

= 1.1.5 =

* Keeps multiple panorama instances visually independent and resets a copied poster when the panorama image changes.

= 1.1.4 =

* Keeps hotspot lists separate when a block is assigned a different panorama image.

= 1.1.3 =

* Smoothly returns the panorama to the natural horizon when automatic rotation starts or resumes.

= 1.0 =

* Initial public release.
