fix(studio): imported dark pages no longer render on white; language picker in the toolbar

Pages such as potidaea.asm put their background on <html> and leave
<body> transparent; the editor's base stylesheet paints <body> white,
so the imported page showed light text on white. The canvas body now
stays transparent, which also matches the exported page.

The gateway's public name route sends Access-Control-Allow-Origin so
Studio on sirius.x can fetch a page's stylesheets and inline them
instead of falling back to links; the route only serves public content.

The language picker had no toolbar to attach to in Studio and floated
over the blocks panel; pages can now mark a slot for it and Studio does.
This commit is contained in:
Local Dev 2026-09-20 15:56:29 +02:00
parent 527cae9d32
commit f49c7c244a

View file

@ -360,6 +360,9 @@ function proxyToUrl(upstreamUrl, reqPath) {
// Sia-per-subdomain owners: if they omit `ip` from the parent, the fallback
// still tries `s3` first as before.
async function serve(res, name, reqPath, baseHref) {
// Public content: let pages on other origins (sirius.x, theseus.x) read a
// name's files with fetch(), e.g. Sirius Studio inlining a stylesheet.
res.setHeader("access-control-allow-origin", "*");
let entry;
try { entry = await resolve(name); } catch (e) { res.writeHead(502); return res.end("resolve error: " + e.message); }
if (!entry) { res.writeHead(404, { "content-type": "text/html" }); return res.end(nx(name)); }