=== Event Companion for Event Espresso ===
Contributors: mmulligan
Tags: event espresso, companion app, pwa, schedule, announcements
Requires at least: 6.4
Tested up to: 6.7
Requires PHP: 8.1
Stable tag: 0.6.0
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Attendee-facing on-site companion PWA for Event Espresso events: schedule, maps, announcements, feedback, and push notifications.

== Description ==

Event Companion adds an attendee-facing progressive web app (PWA) to any Event Espresso event. Attendees access the companion via a QR code or short link, authenticate with a magic link tied to their registration, and get a mobile-native experience with:

* **Schedule / agenda** with per-entry location pins on an uploaded venue map.
* **Static pages** for event info, house rules, or sponsor acknowledgements.
* **Announcements** with optional timed publication and web push notifications.
* **Feedback forms** with configurable fields per event.
* **Venue maps** with positioned pins and panzoom navigation.
* **Branding** per event (theme, icon, splash screen).

All configuration is per-event from wp-admin under the Event Espresso menu. The companion is general-purpose and organization-agnostic.

**Self-contained on Event Espresso.** The companion works on a plain Event Espresso install. No additional plugins are required.

== Installation ==

1. Install and activate Event Espresso 4.
2. Upload this plugin to `wp-content/plugins/` and activate it. Activation creates the companion tables.
3. Navigate to Event Espresso > Event Companion in wp-admin to configure the companion for an event.

== Frequently Asked Questions ==

= Does this require any other plugins? =

Only Event Espresso 4. The companion is fully self-contained.

= How do attendees access the companion? =

Via a magic link sent to the email on their registration, or by scanning a QR code at the event.

== Changelog ==

= 0.6.0 =
* Web push notifications: attendees can opt in from the News tab to be notified when an announcement is published (deep-linking to the linked session when set). Generate the signing key under App Settings → Web Push. Self-contained — no extra service required; iOS install-gated.
* The home "Happening now / next" ribbon now flags a live or upcoming session that has linked announcements with a 📣 count.

= 0.5.0 =
* Announcement ↔ session linking: an announcement can point at one schedule session. The attendee app shows a tap-through session chip on the announcement card and a "Related updates" list on the session page; set the link from the new "Related session" picker in wp-admin (grouped by schedule, times in the event timezone). Deleting a session cleanly unlinks its announcements.

= 0.4.0 =
* Installed PWA branding: the home-screen icon, iOS splash, and theme color now follow the live event's branding (cascade: live event → a new site-wide default → plugin default), instead of the static default. New "Default App Branding" controls on the App Settings tab set the site-wide fallback. Manifest is cache-busted (versioned link + ETag) so changes reach installed apps within the cache window.
* Import / Export: package an event's whole companion config as a hand-authorable ZIP and import it (merge or replace) into another event — pages, schedules, maps/pins, app/design, shortlinks, feedback form, with bodies and images carried as asset tokens. wp-admin tab + WP-CLI (`wp eea-ec export|import`); untrusted-ZIP hardened; fully atomic.
* Fixed: the `home` short link no longer mints a duplicate on repeat calls.

= 0.3.0 =
* Attendee PWA: event-aware landing (hero + "Happening now/next" across schedules), bottom-nav + drawer, multi-floorplan maps, named multi-schedules with per-session detail pages, announcements, location-scoped feedback, and "you are here" QR cards.
* Device-first identity: feedback with no sign-in; optional email magic-link verification creates/links an attendee.
* Per-event OKLCH theme engine: accent + neutral + style dials derive contrast-guarded tokens; 10 presets; light/dark/dark-luxe; live preview in wp-admin. Branded boot splash, hero, and motion.
* Offline support: after one online load the app works in a venue dead zone (cached data + floorplans); QR codes resolve client-side; offline indicator.
* Self-hosted updates via the foh-updates channel.

= 0.1.0 =
* Foundation release: plugin activation, DB schema (11 tables), admin page shell with stub tabs, self-hosted updater, release workflow.
