Skip to content

fix(web): make widget/embed mode hermetic; pin the docs demo defaults#33

Merged
beetlebugorg merged 1 commit into
mainfrom
fix/docs-embed-clean-defaults
Jun 27, 2026
Merged

fix(web): make widget/embed mode hermetic; pin the docs demo defaults#33
beetlebugorg merged 1 commit into
mainfrom
fix/docs-embed-clean-defaults

Conversation

@beetlebugorg

Copy link
Copy Markdown
Owner

Several embeds share one origin on the docs site (the intro demo + the Chart 1 reference page), so persisting display state in localStorage let one clobber another — e.g. the reference page's dataQuality:true and its lat-15 view leaking onto the intro demo.

Make widget (embed) mode HERMETIC for display settings: it neither reads nor writes the shared keys chartplotter:mariner/:scheme/:basemap/:view. Embeds boot from DEFAULT_MARINER and the scheme/basemap/center/zoom attributes, and set their own state via applyMariner/applyScheme at ready. Read-gating (not just write) is what fixes already-polluted browsers. Widget mode also skips the auto-frame paths so the pinned center/zoom always wins. The real app is server mode (not widget) and persists via /api/settings, so it is unaffected.

Pin the intro demo (LiveChart) defaults now that the embed must force its own state: Annapolis (38°58.5′N 076°28.9′W) at 1:6090, Display category Other on, and chart scale boundaries on.

Several <chart-plotter widget> embeds share one origin on the docs site
(the intro demo + the Chart 1 reference page), so persisting display
state in localStorage let one clobber another — e.g. the reference
page's dataQuality:true and its lat-15 view leaking onto the intro demo.

Make widget (embed) mode HERMETIC for display settings: it neither reads
nor writes the shared keys chartplotter:mariner/:scheme/:basemap/:view.
Embeds boot from DEFAULT_MARINER and the scheme/basemap/center/zoom
attributes, and set their own state via applyMariner/applyScheme at
ready. Read-gating (not just write) is what fixes already-polluted
browsers. Widget mode also skips the auto-frame paths so the pinned
center/zoom always wins. The real app is server mode (not widget) and
persists via /api/settings, so it is unaffected.

Pin the intro demo (LiveChart) defaults now that the embed must force
its own state: Annapolis (38°58.5′N 076°28.9′W) at 1:6090, Display
category Other on, and chart scale boundaries on.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@beetlebugorg beetlebugorg merged commit 266f3ef into main Jun 27, 2026
4 checks passed
@beetlebugorg beetlebugorg deleted the fix/docs-embed-clean-defaults branch June 27, 2026 03:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant