=== HeartApproval ===
Contributors: genij91
Tags: photo proofing, gallery, image selection, client gallery
Requires at least: 5.8
Tested up to: 7.0
Requires PHP: 7.4
Stable tag: 1.4.1
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Private client photo proofing galleries with favorites, per-image comments, final approval, and ZIP/CSV exports.

== Description ==
HeartApproval adds a complete client photo proofing workflow to WordPress. Create a gallery, upload your images, and send your client a private access link. Clients can review the gallery on desktop or mobile, mark their favorite images, and leave precise comments directly on individual photos.

When the selection is complete, the client can finalize the gallery to prevent further changes. You can then export the selected images as a ZIP archive or download the selection data as CSV.

= A simple workflow for photographers and clients =

1. Create and configure a client gallery in the WordPress admin area.
2. Upload images from the Media Library or your computer.
3. Share the gallery using its private, token-protected link.
4. Let the client select favorites and add per-image feedback.
5. Finalize the approved selection and export the results.

= Key features =

* WordPress-native gallery management.
* Private gallery links protected by individual access tokens.
* Responsive client galleries with configurable grid or masonry layouts.
* Full-screen PhotoSwipe lightbox with navigation, zoom, and touch gestures.
* Favorite selection directly in the gallery and lightbox.
* Comments attached to individual images.
* Final approval that locks the completed selection.
* ZIP export of selected images and CSV export of selection data.
* Configurable gallery layout, spacing, thumbnail quality, and finalization texts.
* Locally bundled lightbox assets with no external CDN dependency.

HeartApproval is designed for photographers, designers, agencies, and other visual professionals who need a focused approval process without sending clients to a separate proofing platform.

== Screenshots ==

1. Responsive client gallery with favorite selection and final approval.
2. Full-screen image review with navigation, zoom, and favorite controls.
3. Per-image comments for clear client feedback and retouching requests.
4. WordPress gallery editor with client access settings and image management.

== Changelog ==

= 1.4.1 =
* Fix: Selected hearts in the PhotoSwipe lightbox are shown in red.

= 1.4.0 =
* Fix: Harden REST argument validation/sanitization.
* Fix: Replace legacy finalize option keys with hearli_ prefixed keys (with migration).
* Fix: Remove inline admin styles in favor of admin stylesheet classes.

= 1.3.1 =
* Fix: WP.org compliance updates (prefixing, REST token permission checks, REST namespace update).
* Fix: i18n cleanup (removed load_plugin_textdomain, no manual language switch).
* Change: Remove plugin directory icons from plugin ZIP; update .distignore exclusions.
* Change: PhotoSwipe vendor files updated to stable release + MIT license notices.

= 1.3.0 =
* Fix: WP.org compliance updates (plugin naming/slug and cleanup).
* Fix: PhotoSwipe/Lightbox scripts loaded correctly (no console module errors).
* Fix: Persist selection and comments across reload.
* Fix: i18n – follow WordPress system language; removed manual language switch; English default with German translations.
* Security: Hardened escaping and nonce checks in admin/front-end.

= 1.2.0 =
* Feature: Kommentar-Funktion pro Bild in der Proofing-Galerie eingeführt.
* Fix: Stabilisierung der PhotoSwipe-Lightbox (kein JS-Abbruch mehr bei fehlenden UI-Elementen).
* Fix: Auswahl-Status (Herz/Favorit) bleibt nach Seiten-Reload erhalten.
* Improvement: Initiale State-Synchronisation aus dem DOM reduziert UI-Flackern beim Laden.
* Improvement: Robustere Verarbeitung von REST-Statusdaten (selected/comment) ohne unbeabsichtigtes Zurücksetzen.

= 1.1.5 =
* Improvement: Plugin-Icon für die WordPress-Pluginliste ergänzt (assets/icon-128x128.png, assets/icon-256x256.png).
* Improvement: WordPress-Kompatibilitäts-Metadaten (Tested up to / Requires / Requires PHP) für Update-Anzeige ergänzt.

= 1.1.4 =
* Change: Plugin-Beschreibung aktualisiert (sichtbar in der WordPress-Pluginliste).
* Change: Dokumentations-Link ergänzt (https://gross-macht.de/heartapproval-dokumentation/).

= 1.1.3 =
* Change: Third-Party-Nachweise für gebündelte PhotoSwipe-Assets ergänzt.
* Improvement: Lizenz-/Notice-Dateien werden im Plugin-Paket mitgeliefert (THIRD-PARTY-NOTICES, PhotoSwipe LICENSE).

= 1.1.2 =
* Fix: Touch-Swipe-Navigation in der Lightbox (Mobile) funktioniert wieder zuverlässig.
* Fix: Lightbox überdeckt auf mobilen Geräten den kompletten Bildschirm; Hintergrund/Seite darunter ist nicht mehr sichtbar bzw. scrollbar.
* Fix: Mobile UI-Positionierung/Visibility der Lightbox-Steuerelemente (Safe-Area/Z-Index/Overlay).

= 1.1.1 =
* Fix: Lightbox-UI verbessert: Dateiname/Caption wird unten mittig unter dem Bild angezeigt.
* Feature: Lightbox zeigt oben links einen Bildzähler (z. B. "1 von 20").
* Fix: Navigation in der Lightbox: "Zurück" wird beim ersten Bild ausgeblendet, "Weiter" beim letzten Bild (bei deaktiviertem Loop).
* Fix: Auswahl-Heart in der Lightbox synchronisiert den Status beim ersten Öffnen korrekt (kein Weiß-Zustand trotz Auswahl).

= 1.1.0 =
* Fix: Entfernt externe CDN-Abhängigkeit (cdnjs.cloudflare.com) für die Lightbox. Assets werden lokal aus dem Plugin geladen.
* Change: Lightbox von Fancybox auf PhotoSwipe umgestellt (gebündelte lokale Ressourcen).
* Fix: Auswahl-Heart in der Lightbox aktualisiert sofort nach Klick (kein Bildwechsel mehr nötig).
* Improvement: UI/Styles gegen Theme-Overrides gehärtet (CSS-Variable für Heart-Aktivfarbe).

= 1.0.4 =
* Fix/Change: Fancybox wird standardmäßig lokal aus dem Plugin geladen (keine CDN-Requests zu cdnjs.cloudflare.com mehr).
* Feature: Option unter „Einstellungen → Diagnose & Info“ hinzugefügt, um Fancybox auf Wunsch explizit wieder über CDN zu laden (Default: AUS = lokal).

= 1.0.3 =
* Change: Nicht benötigten Lizenz-/Plan-Block aus den Einstellungen entfernt.

= 1.0.2 =
* Fix: Abschlussgalerie-Upload zeigt den Fortschritt korrekt mit nur einem Prozentzeichen (z. B. "100%" statt "100%%").

= 1.0.1 =
* Fix: Heart-Icon (Bildauswahl) im Grid wird auch bei Theme-Button-Styles zuverlässig angezeigt (Padding/Line-Height/Font-Size Reset + SVG-Fill abgesichert).

= 1.0.0 =
* Initial release.
