doxa-maps/library/composables
doxa-maps-88655c70 056942b33f engineFor(map): build markers, popups and poster maps with the map's OWN engine
Every generated leaf <head> preloaded mapbox-gl.js whatever the provider, so code that used the
bare `mapboxgl` global always found one, even on a MapLibre map. Removing that peer (it sends
every visitor's IP to Mapbox under provider=maplibre) turns each such site into an error.
engineFor(map), next to isMapboxMap in useMapProvider.js, asks the map which engine built it:
  - useSelectedPin: the selected-pin Marker
  - useMapEvents: the pin-fallback and region Popups
  - useMapPoster: main already builds the hidden map with the source map's engine (1cbfb3aa);
    its choice now goes through this one helper instead of a second inline sniff
  - pplr-data-maps: glFor is now this helper; the geocoder awaits ensureEngineScript first
  - key-cities: ensureEngineScript('mapbox') before reading the global
Measured with every api.mapbox.com tag stripped from the served leaf (no peer at all for
key-cities), before -> after:
  pin select under MapLibre, on cities-internet, country-posters, doxa-research-map and
  doxa-simple-map: "reading 'Marker'" -> marker drawn; country-posters region popup: none ->
  popup; PPLR search: no input -> suggestions (both engines); key-cities: "mapbox-gl not
  loaded" -> map loaded. Mapbox rows unchanged (they passed before and after).
The poster UI could not be driven: PosterDialog never opens in country-posters or
doxa-research-map (they pass props it does not declare and no modelValue/getMap), reported
separately. useMapPoster itself was rendered from a real map with only its engine on the page:
MapLibre "mapboxgl global not found" on the pre-1cbfb3aa library -> a 400x300 PNG with 88 colours.
2026-09-25 18:38:17 +00:00
..
legends Complete app-profiles->plugin-designs sweep across comments/docs; build green; layouts kept at root (load-bearing) 2026-09-17 18:18:19 +00:00
poster engineFor(map): build markers, popups and poster maps with the map's OWN engine 2026-09-25 18:38:17 +00:00
.gitkeep doxa-maps — portable bundler for embeddable JAMstack maps 2026-09-10 01:53:07 +00:00
printInPlace.js Prayer Walk Planner: full-page dev mount + agent-triggerable in-place print 2026-09-24 00:58:10 +00:00
retryableAsyncComponent.js Search tier 2: a misspelled country resolves to THE country (best match, 2-edit cap) 2026-09-24 00:34:19 +00:00
useAvatarGenerator.js Keep the prayer yellow to the prayer palette; other palettes keep their orange 2026-09-16 21:21:07 -05:00
useCountryOutline.js MapLibre drops a layer whose paint it does not recognise 2026-09-24 05:38:29 +00:00
useDocumentFont.js Vendor Oswald, because Bebas Neue cannot render Russian at all 2026-09-24 21:05:12 +00:00
useEdgeScrollAffordance.js doxa-maps — portable bundler for embeddable JAMstack maps 2026-09-10 01:53:07 +00:00
useGeocoderSearch.js Brand-neutral shared VerticalTabsLayout with lazy nested-element hosting; fix cap-5 prayer tab leaf path; neutralize library identifiers; add Forgejo CI build-gate workflow 2026-09-19 17:24:30 +00:00
useMapAttribution.js doxa-maps — portable bundler for embeddable JAMstack maps 2026-09-10 01:53:07 +00:00
useMapClustering.js Map labels ask for a font the engine's glyph server has: one shared helper 2026-09-25 13:48:10 +00:00
useMapData.js Public builds carry zero platform surface + copy-embed on staging 2026-09-16 05:13:44 +00:00
useMapEvents.js engineFor(map): build markers, popups and poster maps with the map's OWN engine 2026-09-25 18:38:17 +00:00
useMapFly.js Give fitBounds a duration, because FLY_CONFIG alone leaves it instant 2026-09-23 05:01:53 +00:00
useMapInstance.js Cities with Internet: the map's stylesheet reaches its shadow root 2026-09-25 14:28:42 +00:00
useMapLayers.js MapLibre drops a layer whose paint it does not recognise 2026-09-24 05:38:29 +00:00
useMapPacket.js doxa-maps — portable bundler for embeddable JAMstack maps 2026-09-10 01:53:07 +00:00
useMapProvider.js engineFor(map): build markers, popups and poster maps with the map's OWN engine 2026-09-25 18:38:17 +00:00
useMapSelection.js doxa-maps — portable bundler for embeddable JAMstack maps 2026-09-10 01:53:07 +00:00
useMapTheme.js Research map: religion joins prayer, adoption and engagement on the night look; only people, regions and languages are monochrome day 2026-09-16 21:01:37 -05:00
usePosterPrints.js Print a UPG-100 list straight from the map legend 2026-09-25 07:10:23 +00:00
usePplrInstance.js legend: open on the UPG-100 list, which is what the Driver asked for first 2026-09-24 17:59:57 +00:00
usePrayedLocally.js Public builds carry zero platform surface + copy-embed on staging 2026-09-16 05:13:44 +00:00
usePrayerStatistics.js doxa-maps — portable bundler for embeddable JAMstack maps 2026-09-10 01:53:07 +00:00
useSearch.js Brand-neutral shared VerticalTabsLayout with lazy nested-element hosting; fix cap-5 prayer tab leaf path; neutralize library identifiers; add Forgejo CI build-gate workflow 2026-09-19 17:24:30 +00:00
useSelectedPin.js engineFor(map): build markers, popups and poster maps with the map's OWN engine 2026-09-25 18:38:17 +00:00
useShadowStyles.js doxa-maps — portable bundler for embeddable JAMstack maps 2026-09-10 01:53:07 +00:00
useSharedMapToken.js One page, one map token — and the nested search bar comes back 2026-09-24 01:14:37 +00:00