Skip to content

feat(web): read-only "widget" mode + embeddable Annapolis demo#14

Merged
beetlebugorg merged 1 commit into
mainfrom
feat/widget-mode
Jun 25, 2026
Merged

feat(web): read-only "widget" mode + embeddable Annapolis demo#14
beetlebugorg merged 1 commit into
mainfrom
feat/widget-mode

Conversation

@beetlebugorg

Copy link
Copy Markdown
Owner

Add a static, embeddable, read-only build of — the "widget" mode — and ship it as a live demo on the docs site.

Renames the old prebaked "prod" mode to "widget" (attribute / ?widget / :host([widget]) / make serve-widget) and hardens it into a pure viewer: hides the Charts and Share buttons, drops the Advanced settings tab, and keeps only the client-side display settings (General/Text/Units/Depths), all local. No backend, no in-browser baking, no connections/dev tools (already prod-gated).

Tooling + hosting:

  • make demo assembles a self-contained static bundle (per-band Annapolis .pmtiles + manifest, emitted S-101 client assets, the frontend) via the new scripts/fetch-demo-cells.sh; make serve-demo previews it.
  • docs CI builds the bundle into docs/static/demo and deploys it at /chartplotter/demo/; the intro page embeds it live via a component. New Widget docs page covers packaging, deploying, and CORS.

Fixes:

  • serve: emitted S-101 assets are now a fallback, not a replacement, so an explicit --assets bundle serves its own index.html / manifest / .pmtiles (also fixes serve-widget).
  • downloader: resolve manifest archive (and aux) paths against the manifest URL, not the page — so a widget embedded on a page in a different directory finds its tiles instead of 404ing.

Add a static, embeddable, read-only build of <chart-plotter> — the "widget"
mode — and ship it as a live demo on the docs site.

Renames the old prebaked "prod" mode to "widget" (attribute / ?widget /
:host([widget]) / make serve-widget) and hardens it into a pure viewer: hides
the Charts and Share buttons, drops the Advanced settings tab, and keeps only
the client-side display settings (General/Text/Units/Depths), all local. No
backend, no in-browser baking, no connections/dev tools (already prod-gated).

Tooling + hosting:
- `make demo` assembles a self-contained static bundle (per-band Annapolis
  .pmtiles + manifest, emitted S-101 client assets, the frontend) via the new
  scripts/fetch-demo-cells.sh; `make serve-demo` previews it.
- docs CI builds the bundle into docs/static/demo and deploys it at
  /chartplotter/demo/; the intro page embeds it live via a <LiveChart/>
  component. New Widget docs page covers packaging, deploying, and CORS.

Fixes:
- serve: emitted S-101 assets are now a fallback, not a replacement, so an
  explicit --assets bundle serves its own index.html / manifest / .pmtiles
  (also fixes serve-widget).
- downloader: resolve manifest archive (and aux) paths against the manifest
  URL, not the page — so a widget embedded on a page in a different directory
  finds its tiles instead of 404ing.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@beetlebugorg beetlebugorg merged commit baab42f into main Jun 25, 2026
4 checks passed
@beetlebugorg beetlebugorg deleted the feat/widget-mode branch June 25, 2026 20:41
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