{
  "slug": "bw-map-magnet",
  "name": "BW Map Magnet",
  "version": "1.2.1",
  "download_url": "https://plugins.bowden.works/wp-content/uploads/plugin-updates/bw-map-magnet-1.2.1.zip",
  "download_hash": "sha256:ccaeb6102ac0e252acb1e88b9cda4acf59f808b02949e23d7f9e7b58438b3512",
  "download_size": 217735,
  "requires": "6.0",
  "tested": "",
  "requires_php": "7.4",
  "last_updated": "2026-05-14",
  "homepage": "https://plugins.bowden.works/bw-map-magnet/",
  "author": "Bowden Works",
  "description": "Showcase locations on a map with hover-to-zoom interaction for activities, restaurants, attractions and more.",
  "changelog": "## [1.2.1] - 2026-05-14\n\n### Fixed\n- \"Fetch by Google Maps URL\" was dropping the pin on the map correctly but writing `NaN` to the Latitude / Longitude inputs, so the location was lost on save. Root cause: the JS `sync()` helper only read `.lat`/`.lng` properties from Leaflet `LatLng` objects, but the new Google Maps fetch path (and the existing manual lat/lng-input handler) called it with a `[lat, lng]` array. Reading `.lat` from an array yields `undefined` → `Number(undefined).toFixed(6)` → `\"NaN\"`. Added a `normalizeLatLng()` helper that accepts both arrays and `{lat, lng}` objects, and made `sync()` refuse to overwrite the inputs with bad input (returns silently instead of writing `NaN`).\n- Same fix also restores manual lat/lng editing — typing into the Latitude or Longitude field and blurring no longer wipes the value via the `change` handler."
}
