=== Lnsel Post Gallery Lightbox ===
Contributors: team-lnsel
Tags: gallery, lightbox, masonry, grid, images
Requires at least: 5.8
Tested up to: 7.0
Requires PHP: 7.4
Stable tag: 1.0.4
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Upload images per-post and display them as a responsive Grid or Masonry lightbox gallery using the [lnsel_gallery] shortcode.

== Description ==

**Lnsel Post Gallery Lightbox** lets you upload a dedicated set of gallery images to any post or page via a custom meta box in the WordPress editor. Those images are then displayed on the front end using the `[lnsel_gallery]` shortcode — with a smooth lightbox, keyboard navigation, touch swipe support, and a choice of Grid or Masonry layout.

**Key Features:**

* 📷 Custom "Post Gallery Images" meta box on every post/page edit screen
* 🖼 Drag-and-drop image reordering in the editor
* ⚡ Choose between **Grid** (uniform tiles) or **Masonry** (Pinterest-style) layout
* 🔍 Built-in lightbox with arrow navigation, keyboard (← → Esc), and touch swipe
* 📱 Fully responsive — 4 → 3 → 2 → 1 columns at breakpoints
* 🙈 Gallery section is **completely hidden** when no images are uploaded
* 🔌 Works with Elementor via the Shortcode widget
* No jQuery dependency on the front end — pure vanilla JS

== Installation ==

1. Upload the `lnsel-post-gallery-lightbox` folder to `/wp-content/plugins/`, or install via the WordPress Plugins screen.
2. Activate the plugin through the **Plugins** screen in WordPress.
3. Edit any post or page — you will see a **"📷 Post Gallery Images"** meta box below the content editor.
4. Click **"Add / Edit Images"** to select one or more images from your Media Library.
5. Add the shortcode `[lnsel_gallery]` to your post content or to an Elementor **Shortcode widget**.

== Usage ==

**Basic:**
`[lnsel_gallery]`

**Grid layout, 3 columns:**
`[lnsel_gallery layout="grid" columns="3"]`

**Masonry layout, 3 columns:**
`[lnsel_gallery layout="masonry" columns="3"]`

**All available attributes:**

* `layout` — `grid` or `masonry` (default: `grid`)
* `columns` — `2`, `3`, or `4` (default: `3`)
* `size` — `thumbnail`, `medium`, `large`, or `full` (default: `large`)
* `gap` — gap between images in px, number only (default: `10`)

== Frequently Asked Questions ==

= The gallery section does not appear on my post. =

Make sure you have added at least one image in the **"📷 Post Gallery Images"** meta box on the post edit screen, then also added the `[lnsel_gallery]` shortcode to your post content or Elementor template. The section is intentionally hidden when no images are uploaded.

= Can I use this with Elementor? =

Yes. Add an Elementor **Shortcode** widget and paste `[lnsel_gallery]` into it.

= What is the difference between Grid and Masonry? =

**Grid** displays all images at a fixed 4:3 aspect ratio in uniform rows. **Masonry** preserves each image's natural height, creating a Pinterest-style staggered layout using CSS columns — no JavaScript library required.

= Can I set a different gallery for each post? =

Yes. Each post or page has its own independent gallery managed through the meta box.

= Does this work without Elementor? =

Yes. The shortcode works in the Gutenberg block editor via a Shortcode block, or in the Classic Editor.

== Screenshots ==

1. The "Post Gallery Images" meta box in the WordPress post editor.
2. Front-end Grid layout with lightbox overlay.
3. Front-end Masonry layout.
4. Lightbox open with navigation arrows and caption.

== Changelog ==

= 1.0.4 = 
*Plugin Name Update

= 1.0.3 =
* Updated Author URI to correct WordPress.org profile.
* Minor internal improvements and version bump.

= 1.0.2 =
* Fixed lightbox spinner stuck when show_title is disabled (null-guard caption/counter elements).
* Fixed show_title checkbox defaulting to unchecked — now correctly defaults to checked on new posts.
* Improved show_title resolution: only explicit '0' means hidden; unset defaults to shown.

= 1.0.1 =
* Fixed lightbox image not loading when show_title disabled (JS null reference).
* Fixed admin checkbox default state.
* Version bump to bust browser cache for frontend.js.

= 1.0.0 =
* Initial release.
* Custom meta box for per-post gallery image management.
* Grid and Masonry layout options via shortcode attribute.
* Drag-and-drop reordering in the editor.
* Responsive lightbox with keyboard and touch swipe support.
* All CSS and JS in properly enqueued external files.
* Full output escaping throughout.
* Unique `lnsel_pgl_` prefix on all functions, hooks, meta keys, and handles.

== Upgrade Notice ==

= 1.0.0 =
Initial release.
