What's New
Added
- PMTiles POI sources —
poiSourcesnow supportstype: 'pmtiles'in addition to'geojson'. PMTiles sources are rendered natively by MapLibre via HTTP range requests — no tile server required. RequiressourceLayerto identify the vector layer inside the archive. - Source type label in layer legend — The layer control panel now shows
GEOJSONorPMTILESnext to each layer name so editors know what kind of data they are toggling. - Improved field layout below map — Fields below the map use a native CSS flex layout: Address/POI Name (50%) + Longitude (25%) + Latitude (25%) on the first row; Full Address (100%) on a second row when a POI with address is selected.
Fixed
- Layer control panel closes on toggle — Clicking a layer item to show/hide it no longer closes the panel. Root cause was a combination of
document.addEventListener('click')accumulating across re-renders, an unstablehandleLayerTogglereference causing the control to be recreated on every toggle, andstopPropagation()interfering with MapLibre's event system. Fixed by registering the outside-click listener once inonAdd()usingmousedowninstead ofclick, wrappinghandleLayerToggleinuseCallback, and removing allstopPropagation()calls.
Changed
- Field layout uses native flex — Replaced Strapi
Grid.Root/Grid.Itemwith a plaindivflex container to avoidgridColssizing inconsistencies inside the edit view.
PMTiles POI Example
poiSources: [
{
id: "skatespots",
name: "Skatespots",
apiUrl: "https://api.example.com/skatespots.geojson",
color: "#cc0000",
enabled: true,
},
{
id: "skateparks",
name: "Skateparks (World)",
apiUrl: "https://cdn.example.com/pmtiles/skateparks-world.pmtiles",
type: "pmtiles",
sourceLayer: "skateparks",
color: "#1dbff0",
enabled: true,
},
]See the POI Integration Guide and Configuration Guide for full documentation.