/** * The published-game panel's CSS and markup, composed into `shell-page.ts`. * * Split out for the reason `asset-detail-panel.ts` was: that file is the busiest in the package and * sits near the repo's 2000-line ceiling. Style and markup carry no closure state, so they can * leave without threading anything across a boundary; the panel's behaviour stays inline there, * because it needs the poll, `readPref`/`writePref` and the enclosing IIFE's element lookups. * * What this surface is for: `bitmagic dev` is the window a creator already has open, and until now * it could not answer "where is this game?". The terminal that published knows, and it has usually * scrolled away — or belongs to an agent the creator never sees. The QR is the second half of the * same thought: the address is most useful on a phone, and a phone cannot copy from a terminal. * * Same template-literal rules as its host: **no backticks**, and a backslash in a regex has to be * doubled to survive the literal. Every colour is a `--bm-*` token; `shell-page.test.ts` fails the * build on a hex that is not black or white. */ /** * Styles for `#publish-overlay`, appended to the shell's stylesheet. * * The backdrop, the card and the pills come from `design.ts` (`.bm-overlay`, `.bm-dialog`, * `.bm-pill`, `.bm-badge`); only this dialog's own layout lives here. */ export declare const PUBLISH_PANEL_CSS = "\n /* Level with #hq-overlay: the two are opened from different controls and never stack. */\n #publish-overlay { z-index: 10; }\n #publish-dialog { width: min(420px, 92vw); padding: 20px; text-align: center; }\n /* The address, styled like #hq-note's command line \u2014 the one thing on this card a creator may\n want to read character by character, and the one thing that has to wrap without pushing the\n card wider. */\n #publish-url { display: block; margin: 0 0 12px; color: var(--bm-aqua);\n font-family: var(--bm-font-mono); font-size: 12px; word-break: break-all;\n text-decoration: none; }\n #publish-url:hover { text-decoration: underline; }\n #publish-meta { display: flex; align-items: center; justify-content: center; gap: 8px;\n margin-bottom: 16px; font-size: 12px; color: var(--bm-text-muted); }\n /* White ground under the code, always: the PNG is dark-on-white and this surface is near-black,\n so without it the quiet zone would be the page and no scanner would find the edges. */\n #publish-qr { display: block; width: 240px; height: 240px; margin: 0 auto;\n background: #ffffff; border-radius: 6px; }\n #publish-hint { margin: 12px 0 0; font-size: 12px; color: var(--bm-text-muted); }\n #publish-actions { display: flex; justify-content: center; gap: 8px; margin-top: 16px; }\n /* An anchor wearing a pill needs the line-height a button gets for free. */\n #publish-manage { display: inline-flex; align-items: center; text-decoration: none; }\n"; /** * Markup for the published-game dialog. * * Everything inside is empty until the poll fills it: the shell is rendered once when the server * starts, and the publish it should show usually happens hours later in another terminal. */ export declare const PUBLISH_PANEL_HTML = "
\n
\n

Your game is live

\n \n
\n \n \n
\n \"QR\n

Scan it to play on your phone.

\n
\n Manage\n \n
\n
\n
\n";