doxa-maps/library/composables
doxa-maps-88655c70 4350113041 my-upg-100-list joins the provider switch, and drops its search bar
The last plugin on the rollout list, and the only one the switch could not
reach: it builds its map RAW (new gl.Map on window.mapboxgl) instead of
through useMapInstance, so resolving the provider inside the factory --
which fixed every other bundle for free -- did nothing here. MEASURED at
?provider=maplibre before this: still Mapbox, 19 requests to api.mapbox.com,
while five sibling leaves swapped cleanly.

Three things blocked the keyless engine, not one:

  - the engine was hardcoded to window.mapboxgl. It now loads whatever the
    provider selects, through ensureEngineScript/engineGlobal EXPORTED from
    useMapInstance. Imported, not copied: a second ENGINES table living in a
    profile is how two copies of one fact drift apart.
  - a `if (!token) return` early exit. A token is a MAPBOX requirement, not
    a map requirement -- left in place it would have refused to draw the
    engine that needs no token, turning the keyless option into a blank
    cell. Now mapbox-only.
  - a hardcoded mapbox://styles/mapbox/light-v11. Now paired through
    resolveNamedStyle('paper'), the registry entry that already pairs
    light-v11 with OpenFreeMap positron, so both engines show one intent.

And the search bar follows the standing decision -- deferred to Mapbox,
because GeocoderComponent's maplibre path still geocodes through Mapbox, so
a keyless map with a search bar is not keyless. MapToolbar collapses its
reserved gap and the legend rises into the vacated space.

MEASURED on the built tree, both engines:
  mapbox    search@12   legend@58   19 mapbox requests   (all unchanged)
  maplibre  search@NONE legend@8     5 mapbox requests   maplibregl loaded
The remaining 5 are the leaf's own static preloads -- already filed, and
not something this file can reach.

Screenshot read, not just counted: positron basemap, region polygons, all
2107 pins, legend flush at the top, no gap and no collision.

22/22 bundles, 7/7 pre, 18/18 post, browser sweep of five StackLayout
consumers and all seven studio dashboards.
2026-09-24 03:04:11 +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 doxa-maps — portable bundler for embeddable JAMstack maps 2026-09-10 01:53:07 +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 doxa-maps — portable bundler for embeddable JAMstack maps 2026-09-10 01:53:07 +00:00
useDocumentFont.js Vendor Poppins: the body face every line of text on these pages uses 2026-09-24 02:05:56 +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 consolidate docs into documentation/ and deployment shells into deployment/ 2026-09-21 23:23:23 +00:00
useMapData.js Public builds carry zero platform surface + copy-embed on staging 2026-09-16 05:13:44 +00:00
useMapEvents.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
useMapFly.js Give fitBounds a duration, because FLY_CONFIG alone leaves it instant 2026-09-23 05:01:53 +00:00
useMapInstance.js my-upg-100-list joins the provider switch, and drops its search bar 2026-09-24 03:04:11 +00:00
useMapLayers.js Maps stop running Mapbox's render loop through Vue's reactive proxy; prayer glow throttled 2026-09-16 14:11:55 -05:00
useMapPacket.js doxa-maps — portable bundler for embeddable JAMstack maps 2026-09-10 01:53:07 +00:00
useMapProvider.js consolidate docs into documentation/ and deployment shells into deployment/ 2026-09-21 23:23:23 +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
usePplrInstance.js doxa-maps — portable bundler for embeddable JAMstack maps 2026-09-10 01:53:07 +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 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
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