=== Max Interactive Maps ===
Contributors: wpgeared
Donate link: https://wpgeared.com/donate
Tags: map, svg, interactive map, location marker, world map
Requires at least: 5.8
Tested up to: 7.1
Stable tag: 1.2.0
Requires PHP: 8.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Interactive SVG world maps with draggable pins, custom colors and shortcode embedding. No map-service API key required.

== Description ==

**Max Interactive Maps** adds a bundled SVG world map to WordPress. Place pins with a visual editor, choose their labels, destination URLs, colors and icons, then embed the published map using its shortcode. Maps do not require a third-party map service, map tiles or an API key.

= Key Features =

* **Drag-and-Drop Pin Placement** - Add and position pins on the bundled world map
* **Percentage-Based Positioning** - Pin anchors scale with the map's SVG canvas
* **5 Pin Icon Styles** - Choose from Simple Dot, Teardrop, Star, Flag, or Pushpin designs
* **Custom Color Controls** - Set land color, water/background color, border color, and individual pin colors
* **Responsive Maps** - Maps resize with their container and use smaller icons on narrower screens; crowded labels may need author adjustments
* **Place Structured Data** - Labeled pins contribute Place entries to ItemList JSON-LD, with optional latitude/longitude you enter per pin; coordinates are never generated automatically
* **No Map-Service API** - The map is bundled locally; WordPress supplies the editor libraries
* **Keyboard Controls** - Focus and edit pins from the keyboard, including arrow-key positioning and a managed settings dialog
* **Save Feedback** - Clear warnings for rejected or conflicting map edits and protected damaged records

= Use Cases =

* Travel blogs showing visited destinations
* Business locations and branch offices
* Event locations
* Real estate property maps
* Tourism and attraction maps
* Educational geography content

= How It Works =

1. Create a new map from the Max Interactive Maps admin menu
2. Add pins by clicking "Add Pin" and drag them to your desired locations
3. Double-click pins, or focus a pin and press Enter or Space, to set its URL, label, color, icon and font options
4. Publish and copy the shortcode
5. Paste the shortcode into a post, page or widget that processes WordPress shortcodes

== Installation ==

1. Upload the `max-interactive-maps` folder to the `/wp-content/plugins/` directory
2. Activate the plugin through the 'Plugins' menu in WordPress
3. Go to 'Max Interactive Maps' in your admin menu to create your first map

== Frequently Asked Questions ==

= Does this plugin require an API key? =

No. The bundled map does not require a map-service API key, tile server or geocoding service.

= Are the maps responsive? =

Maps resize with their container and pins use percentage anchors. Long labels, closely spaced pins and theme styles can affect the final layout; review the map in its intended page layout.

= Can I customize the map colors? =

You can customize land, water/background and border colors. Each pin can also have its own color.

= How many pins can I add? =

The plugin does not enforce a pin limit. Readability and responsiveness depend on the map's content and layout; no universal performance threshold has been established.

= What does an embedded map add to a page? =

Each embed includes the inline world SVG and its pin markup. Map pages also load the plugin's frontend CSS and JavaScript. Page size and rendering cost depend on the number of embeds, pins and labels as well as the surrounding site. No fixed page-speed or zero-impact guarantee is made.

= Will existing maps and shortcodes keep working after this update? =

Existing maps and `[mximap_map id="123"]` shortcodes need no migration or bulk resave. Back up your site before updating and reload any open map editors afterward. If a save is rejected or a damaged record is protected, review the warning rather than clearing or repeatedly resaving the map.

= What licence and map data does the plugin use? =

The plugin retains its GNU GPL version 2 or later licence; the full version 2 text is included in `LICENSE.txt`. The bundled map's country geometry numerically matches Natural Earth's public-domain data. Source evidence and the unknown original SVG conversion history are recorded in `NOTICE.txt`.

== Screenshots ==

1. Public map with styled markers and a hover label, shown with example locations
2. Field Notes Map Builder with named palettes, pin labels, label display options, and shortcode copying below the map
3. Pin settings with a live icon preview, link and label options, colors, typography, and optional coordinates

== Changelog ==

= 1.2.0 =
* Make labeled informational pins keyboard-focusable in hover mode so Tab reveals their labels, including with JavaScript disabled. Existing native links and always-visible labels keep their behavior.
* New clean design for the public map: a flat, lightly outlined frame, refined pin markers with a white keyline and shadow, and label chips with a pin-color accent and a link arrow.
* New per-map "Pin labels" setting: show labels as hover/focus tooltips (default for new maps) or keep them always visible. Existing maps keep always-visible labels until changed; touch screens always show labels.
* Tooltips open inward near the map's edges, and labels never widen the page on small screens.
* Field Notes Map Builder: terracotta accents, editable title, pin count, empty-state hint, label tags, grouped pin dialog with a live icon preview, named palettes and one-click shortcode copy below the map. On small screens the map comes before the publishing/style panels.
* Palette selection follows the actual colors, including custom edits and reopening. Button icons stay aligned with their text.
* New maps start with blue land and pale water. Cleared colors retain the slate defaults. Saved map colors, pin positions, icon sizes and shortcodes are preserved.

= 1.1.4 =
* Add optional latitude and longitude fields to the pin settings dialog for Place structured data. Values are range-checked; leaving both blank keeps the pin without coordinates.
* Include coordinates that lie on the equator or prime meridian (one value of zero) in structured data. Pins without coordinates, including existing pins stored as 0, 0, still omit them.
* Remove unused editor template and script data, and share one map loader between the editor and frontend. No change to maps, pins or shortcodes.
* Tested up to WordPress 7.1.

= 1.1.3 =
* Correct editor rendering of quoted labels and preserve encoded URLs and other pin-field round trips.
* Add clear rejected-save feedback and stale/concurrent-save protection for map pins and colors.
* Protect damaged or ambiguous stored records without automatically repairing, clearing or renumbering them.
* Correct mobile icon sizing and improve pin names, native link semantics and keyboard/dialog behavior.
* Give repeated shortcode embeds unique request-local DOM IDs while retaining each map's first legacy ID.
* Align cleared map-color defaults and palette previews between editor and frontend.
* Include missing frontend assets for late-footer and WordPress AJAX map rendering.
* Correct screenshot captions, prepare separate listing banners and clarify licence and listing information.

= 1.1.2 =
* Fix residual prefixes on server and version bump.

= 1.1.1 =
* Pre-release version bump for WordPress upload.

= 1.1.0 =
* Complete plugin rebrand to Max Interactive Maps
* Renamed all files, classes, and CSS prefixes from ism to mximap
* Updated shortcode from [ism_map] to [mximap_map]
* Changed text domain to max-interactive-maps

= 1.0.4 =
* Fixed pin icon visibility when labels are present
* Changed icon positioning to use translateY(-100%) for reliable anchoring

= 1.0.1 =
* Fixed pin alignment issues on frontend
* Restructured CSS for better anchor point stability
* Decoupled pin icon position from label height

= 1.0.0 =
* Initial release
* Custom Post Type for map management
* Drag-and-drop pin placement
* 5 pin icon styles
* Custom color controls
* Shortcode embedding
* Schema.org JSON-LD output
* Responsive design
* Accessibility features

== Upgrade Notice ==

= 1.2.0 =
Visual redesign of maps and the Map Builder. Saved maps, colors, pin positions and shortcodes keep working; existing maps keep always-visible labels. Choose "Show on hover" under Map Style to switch a map to tooltips.

= 1.1.4 =
Adds optional pin coordinates for structured data and fixes omitted zero-axis coordinates. Existing maps and [mximap_map] shortcodes need no migration; reload open map editors after updating.

= 1.1.3 =
Includes save-integrity, stale-save and damaged-record safeguards, rendering, mobile and keyboard fixes. Existing maps and [mximap_map] shortcodes need no migration. Back up first and reload open map editors after updating.

= 1.1.2 =
Final fix for residual prefixes.

= 1.1.1 =
Version bump for WordPress compliance.

= 1.1.0 =
Major update: Plugin rebranded to Max Interactive Maps. Shortcode changed from [ism_map] to [mximap_map]. Please update your shortcodes after upgrading.

= 1.0.4 =
Fixed pin visibility issues with labels.

= 1.0.1 =
Improvements to pin positioning accuracy.

= 1.0.0 =
Initial release of Max Interactive Maps.
