doxa-maps/public
Doxa Maps ea90e9b288 ensureLayers and addPinLayers guard the layers, not just the source
`if (map.getSource('tapestry')) return` returns having added NOTHING whenever the
source outlives the layers — and that state is real, not hypothetical: setStyle()
wipes LAYERS, which is why paintAll is re-armed on 'style.load' at :1625. The
re-add is a genuine code path (the light/dark toggle) and this guard could silently
no-op it, leaving a map with a source, no polygons and no pins.
addPinLayers had the identical bug on getSource('upg'), which is why territories
and pins would disappear together: one mistake, made twice.

ensureSelectionLayers():652 ALREADY HAD THE RIGHT SHAPE — `if (!map ||
!map.getSource('tapestry')) return; if (map.getLayer('upg-sel-fill')) return`. The
correct pattern was sitting in this file and its two siblings did not copy it.
Presence of a source and presence of the layers drawn from it are two properties;
a function whose job is the second must not test the first.

EACH LAYER IS GUARDED SEPARATELY because addLayer THROWS on an id that already
exists — a half-built style is exactly the state this fix is for, so re-adding a
survivor would abort the function and skip everything after it.

⚠ THIS IS NOT THE CAUSE OF THE BLANK ENGLISH README SHOT, and I am recording that
because I diagnosed it as such and was wrong. I had a confident chain — source
survives layers, half-built style, hence en blank while ar painted — and started
fixing it as the cause. rega settled it with the measurement I did not have: the
leaf paints 9.5-16.5 s after load and the screenshot tool waited 7 s. A timeout,
not a defect. The chain explained the symptom without being true of it, and
claiming this commit fixes that shot would be exactly the false attribution I have
been correcting in other people's reports today.

Kept on its own merits. BUNDLE=my-upg-100-list vite build clean.
2026-09-26 08:21:48 +00:00
..
dx-maps ensureLayers and addPinLayers guard the layers, not just the source 2026-09-26 08:21:48 +00:00
README.md Rename the output folder to dx-maps 2026-09-25 19:26:14 +00:00

public/ — the built output

This folder is GENERATED by bun run build; do not edit it by hand. It holds exactly one thing:

  • dx-maps/ — the output folder: 23 plugin bundles and 35 pages, self-contained. Copy this one folder to any web host (or open it from disk) and it works.
    • dx-maps/index.html — the front page: the Plugin Studio, every plugin in one place.
    • dx-maps/<plugin>/<plugin>.js — a plugin's bundle (a custom element; load it with a <script> tag).
    • dx-maps/<plugin>/<page>/index.html — a ready-made page for one plugin view (embed it in an <iframe>).
    • dx-maps/manifest.json — every plugin, page and embed snippet, machine-readable.
    • dx-maps/assets/ — the data, fonts and images the plugins fetch at runtime.

The folder's name comes from name in vite.doxa-maps-build-config.json. Sources live in plugin-designs/, library/ and data/; rm -rf public/ && bun run build recreates all of this.