Mobile has had a fold control since the narrow layout existed; desktop had none, so a reader who wanted to see the map underneath had no way to move the legend off it. The state was already there — every section read "not narrow OR open", so on desktop the OR was always satisfied and the flag governed nothing. Now the flag alone decides at both widths. The control is deliberately not a new one. Same 22x20 caret, same rotation, same aria contract as the shared SemanticTreeLegend's collapse button, which the mobile legend also copies. Matching it costs nothing and means a reader who has met one of these legends has met this one. Collapsed, the panel shrinks to the caret. Hiding the contents alone would have left a 380px box of empty background over the map: the reader presses collapse and gets a blank panel instead of their map, which is worse than having no control at all. The choice is remembered for the session, so it survives working with the map but not a fresh visit, and a remembered choice beats the width default — otherwise dragging a window across the breakpoint would silently reopen a legend that had been deliberately closed, undoing a decision rather than responding to one. Storage access is wrapped: a sandboxed embed throws on it, and a legend that cannot remember is much better than a map that will not load. |
||
|---|---|---|
| .. | ||
| dx-maps | ||
| README.md | ||
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: 24 plugin bundles and 36 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.