@bitmagic/cli 0.1.41 → 0.1.43
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +23 -1
- package/dist/commands/publish.js +54 -3
- package/dist/commands/publish.js.map +1 -1
- package/dist/editor/asset-detail-panel.d.ts +8 -3
- package/dist/editor/asset-detail-panel.js +31 -25
- package/dist/editor/asset-detail-panel.js.map +1 -1
- package/dist/editor/asset-preview-page.js +15 -6
- package/dist/editor/asset-preview-page.js.map +1 -1
- package/dist/editor/design.d.ts +59 -0
- package/dist/editor/design.js +217 -0
- package/dist/editor/design.js.map +1 -0
- package/dist/editor/shell-page.js +111 -100
- package/dist/editor/shell-page.js.map +1 -1
- package/dist/publish/client.d.ts +60 -0
- package/dist/publish/client.js +16 -0
- package/dist/publish/client.js.map +1 -1
- package/dist/publish/fingerprint.d.ts +19 -13
- package/dist/publish/fingerprint.js +72 -68
- package/dist/publish/fingerprint.js.map +1 -1
- package/dist/publish/source-zip.d.ts +38 -0
- package/dist/publish/source-zip.js +131 -0
- package/dist/publish/source-zip.js.map +1 -0
- package/dist/scaffold/project-files.js +7 -1
- package/dist/scaffold/project-files.js.map +1 -1
- package/package.json +3 -2
package/README.md
CHANGED
|
@@ -115,6 +115,8 @@ my-game/
|
|
|
115
115
|
build/
|
|
116
116
|
index.html # bitmagic build's output bundle
|
|
117
117
|
manifest.json # engineVersion, fingerprint, bytes, sha256, builtAt
|
|
118
|
+
publish/
|
|
119
|
+
source.zip # the source archive each publish uploads (see Publishing)
|
|
118
120
|
verify/
|
|
119
121
|
result.json # bitmagic verify's verdict — ok, failures, warnings, fingerprint, at, renderer, settle, snapshot
|
|
120
122
|
screenshot.png # the publish thumbnail when there is no cover art (not written by --fast runs)
|
|
@@ -355,13 +357,33 @@ before `--force` has anything to work with.
|
|
|
355
357
|
stick — and note that writing them into `game.json` yourself would change the fingerprint and
|
|
356
358
|
invalidate the verify you just checked.
|
|
357
359
|
|
|
360
|
+
### The source archive
|
|
361
|
+
|
|
362
|
+
Every publish also uploads a **source archive** — `.bitmagic/publish/source.zip` — alongside the
|
|
363
|
+
bundle. It carries your game's source (`src/work/`, `index.html`, the configs, `bitmagic.json`,
|
|
364
|
+
`GAME-DESIGN.md`, `mechanics-plan.md`) plus a manifest of file hashes. The vendored `engine/` tree
|
|
365
|
+
is hashed but not included: it is platform code, identical for everyone on your engine version, and
|
|
366
|
+
shipping ~14MB of it on every publish would serve nobody.
|
|
367
|
+
|
|
368
|
+
**The archive is uploaded to a publicly readable URL.** The address contains a random component, so
|
|
369
|
+
it cannot be guessed from your game's id or its play URL, but anyone given the link can download it.
|
|
370
|
+
Files that look like credentials — `.env*`, `*.pem`, `*.key`, `id_rsa*`, `.npmrc`,
|
|
371
|
+
`.git-credentials`, `*service-account*.json`, `.claude/settings.local.json` — are **never** put in
|
|
372
|
+
the archive, and publish prints a line naming any it left out. That list will never be exhaustive:
|
|
373
|
+
if your project directory holds a secret in some other shape, move it out before publishing.
|
|
374
|
+
|
|
375
|
+
Bitmagic uses the archive to sanity-check publishes: that the source matches the fingerprint the
|
|
376
|
+
verify gate checked, and that the engine you built against has not been modified. Findings are
|
|
377
|
+
advisory and printed as `warning:` lines — they never block a publish. The one thing that *is*
|
|
378
|
+
refused is a bundle that is not a Bitmagic engine build at all (exit 1).
|
|
379
|
+
|
|
358
380
|
### Exit codes
|
|
359
381
|
|
|
360
382
|
`bitmagic publish` uses these to let a script or agent branch without parsing the message:
|
|
361
383
|
|
|
362
384
|
| Code | Meaning |
|
|
363
385
|
|---|---|
|
|
364
|
-
| 1 | Build failed |
|
|
386
|
+
| 1 | Build failed, or the uploaded bundle was not a Bitmagic engine build (check `vite.publish.config.js`). Not retryable — republishing the same bytes gets the same refusal. |
|
|
365
387
|
| 2 | Not logged in |
|
|
366
388
|
| 3 | Verify missing, stale, or failed |
|
|
367
389
|
| 5 | Not the game's owner, or the account/game is banned |
|
package/dist/commands/publish.js
CHANGED
|
@@ -40,12 +40,13 @@ import { coverImagePath } from './cover.js';
|
|
|
40
40
|
import { resolveEnvironment, resolveAuth0ClientId } from '../config/environments.js';
|
|
41
41
|
import { readDefaultEnvironment } from '../config/credentials.js';
|
|
42
42
|
import { getAccessToken } from '../auth/session.js';
|
|
43
|
-
import {
|
|
43
|
+
import { buildSourceIndex } from '../publish/fingerprint.js';
|
|
44
|
+
import { buildSourceArchive } from '../publish/source-zip.js';
|
|
44
45
|
import { readVerifyRecord } from '../verify/result.js';
|
|
45
46
|
import { readFaviconOverride } from '../publish/favicon.js';
|
|
46
47
|
import { checkVerifyGate, injectMetaBlock } from '../publish/meta-block.js';
|
|
47
48
|
import { runBuild as runBuildImpl, readBuildManifest as readBuildManifestImpl, buildBundlePaths, } from '../publish/bundle.js';
|
|
48
|
-
import { beginPublish, completePublish, putBundle, requestThumbnailUploadUrl, putThumbnail, } from '../publish/client.js';
|
|
49
|
+
import { beginPublish, completePublish, putBundle, putSourceArchive, requestThumbnailUploadUrl, putThumbnail, } from '../publish/client.js';
|
|
49
50
|
/** Where `bitmagic verify` writes its record and screenshot — see `commands/verify.ts`. */
|
|
50
51
|
function verifyArtifactDir(root) {
|
|
51
52
|
return path.join(root, '.bitmagic', 'verify');
|
|
@@ -153,7 +154,10 @@ export async function runPublish(args, deps = defaultDeps()) {
|
|
|
153
154
|
...(args.description !== undefined ? { description: args.description } : {}),
|
|
154
155
|
};
|
|
155
156
|
const context = loadProjectContext(deps.startDir);
|
|
156
|
-
|
|
157
|
+
// One walk, two consumers: the staleness gate below and the source archive further down. Walking
|
|
158
|
+
// twice would let an edit land between them and would give the exclusion rules two call sites.
|
|
159
|
+
const sourceIndex = buildSourceIndex(context.root);
|
|
160
|
+
const fingerprint = sourceIndex.fingerprint;
|
|
157
161
|
const gate = checkVerifyGate(readVerifyRecord(verifyArtifactDir(context.root)), fingerprint, force);
|
|
158
162
|
if (!gate.ok)
|
|
159
163
|
throw new CliError(gate.message, 3);
|
|
@@ -173,6 +177,28 @@ export async function runPublish(args, deps = defaultDeps()) {
|
|
|
173
177
|
// routes through the Output seam that `--json` redirects to stderr.
|
|
174
178
|
const thumbnail = await uploadThumbnail(context, environment, token, apiDeps, log);
|
|
175
179
|
const thumbnailUrl = thumbnail.url;
|
|
180
|
+
// The source archive is built BEFORE begin, because its hash is what begin binds into the meta
|
|
181
|
+
// block — see BeginPublishRequest.sourceSha256. Best-effort throughout: this is a notification
|
|
182
|
+
// and audit artifact, and a game that builds and verifies must still ship when zipping fails.
|
|
183
|
+
let archive = null;
|
|
184
|
+
try {
|
|
185
|
+
archive = await buildSourceArchive({
|
|
186
|
+
root: context.root,
|
|
187
|
+
index: sourceIndex,
|
|
188
|
+
gameId: context.metadata.gameId,
|
|
189
|
+
engineVersion: context.metadata.engineVersion,
|
|
190
|
+
genre: context.metadata.genre,
|
|
191
|
+
});
|
|
192
|
+
if (archive.secretsOmitted.length > 0) {
|
|
193
|
+
// Named, not silently dropped. A creator who keeps a credential in the project should learn
|
|
194
|
+
// that the archive skipped it — both so they trust the archive's contents and so they know
|
|
195
|
+
// the file was there to begin with.
|
|
196
|
+
log(`Source archive: left out ${archive.secretsOmitted.length} credential-shaped file(s): ${archive.secretsOmitted.join(', ')}`);
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
catch (error) {
|
|
200
|
+
log(`Source archive could not be built (${error instanceof Error ? error.message : String(error)}) — publishing without it.`);
|
|
201
|
+
}
|
|
176
202
|
// No bundleBytes/sha256 sent here — see BeginPublishRequest's doc comment in publish/client.ts.
|
|
177
203
|
// The only honest number for those fields is the size/hash of the bundle AFTER the meta block
|
|
178
204
|
// below is injected, and that block (and the publishVersion inside it) isn't known until THIS
|
|
@@ -184,6 +210,7 @@ export async function runPublish(args, deps = defaultDeps()) {
|
|
|
184
210
|
engineVersion: context.metadata.engineVersion,
|
|
185
211
|
thumbnailUrl,
|
|
186
212
|
faviconSourceUrl: readFaviconOverride(context.root),
|
|
213
|
+
...(archive ? { sourceSha256: archive.sha256 } : {}),
|
|
187
214
|
}, apiDeps);
|
|
188
215
|
const { htmlPath } = buildBundlePaths(context.root);
|
|
189
216
|
let builtHtml;
|
|
@@ -213,6 +240,19 @@ export async function runPublish(args, deps = defaultDeps()) {
|
|
|
213
240
|
// signed PUT whose headers don't match what was signed. Omitting it does not produce a stale
|
|
214
241
|
// cache — it produces a 403 on upload. `cli-uploads.ts` established the same pattern.
|
|
215
242
|
await putBundle(begun.signedUrl, publishedHtml, begun.cacheControl, apiDeps);
|
|
243
|
+
// The archive rides the same signed-PUT pattern as the bundle. Uploaded AFTER the bundle so a
|
|
244
|
+
// failure here cannot cost a publish that was otherwise complete, and swallowed for the same
|
|
245
|
+
// reason the build was: `complete` reports "no archive to audit" as a warning, not a refusal.
|
|
246
|
+
let sourceUploaded = false;
|
|
247
|
+
if (archive && begun.sourceSignedUrl && begun.sourceCacheControl) {
|
|
248
|
+
try {
|
|
249
|
+
await putSourceArchive(begun.sourceSignedUrl, fs.readFileSync(archive.filePath), begun.sourceCacheControl, apiDeps);
|
|
250
|
+
sourceUploaded = true;
|
|
251
|
+
}
|
|
252
|
+
catch (error) {
|
|
253
|
+
log(`Source archive upload failed (${error instanceof Error ? error.message : String(error)}) — the game still publishes.`);
|
|
254
|
+
}
|
|
255
|
+
}
|
|
216
256
|
// `visibility`, `name`, `description`, and `thumbnailUrl` are all re-sent, not implied.
|
|
217
257
|
// `complete` re-authorizes against its OWN body — `begin` writes nothing, so nothing it
|
|
218
258
|
// validated is bound — and an absent visibility defaults to private. Omitting them here would
|
|
@@ -234,6 +274,12 @@ export async function runPublish(args, deps = defaultDeps()) {
|
|
|
234
274
|
// are declarative (logged, never verified) and why engineVersion here is not a second gate.
|
|
235
275
|
engineVersion: context.metadata.engineVersion,
|
|
236
276
|
fingerprint,
|
|
277
|
+
// Only claimed when the archive actually landed — declaring a key the server would then fail
|
|
278
|
+
// to read turns a best-effort artifact into a warning about our own plumbing.
|
|
279
|
+
...(sourceUploaded && archive && begun.sourceKey
|
|
280
|
+
? { sourceKey: begun.sourceKey, sourceSha256: archive.sha256 }
|
|
281
|
+
: {}),
|
|
282
|
+
fingerprintAlgo: sourceIndex.algo,
|
|
237
283
|
}, apiDeps);
|
|
238
284
|
// Nudge, never a gate — and printed BEFORE the publish result so it does not read as a
|
|
239
285
|
// failure of the publish that just succeeded.
|
|
@@ -244,6 +290,10 @@ export async function runPublish(args, deps = defaultDeps()) {
|
|
|
244
290
|
if (done.visibility === 'private') {
|
|
245
291
|
log('Not listed. Publish with --visibility public when you are ready.');
|
|
246
292
|
}
|
|
293
|
+
// Advisory only — the publish already succeeded, and none of these change the exit code. Printed
|
|
294
|
+
// in the same ` warning:` shape the smoke check uses below so one prose convention covers both.
|
|
295
|
+
for (const warning of done.sourceChecks?.warnings ?? [])
|
|
296
|
+
log(` warning: ${warning}`);
|
|
247
297
|
output.result({
|
|
248
298
|
ok: true,
|
|
249
299
|
url: done.url,
|
|
@@ -251,6 +301,7 @@ export async function runPublish(args, deps = defaultDeps()) {
|
|
|
251
301
|
publishVersion: done.publishVersion,
|
|
252
302
|
gameId: context.metadata.gameId,
|
|
253
303
|
thumbnailSource: thumbnail.source,
|
|
304
|
+
...(done.sourceChecks ? { sourceChecks: done.sourceChecks } : {}),
|
|
254
305
|
});
|
|
255
306
|
// Everything below runs AFTER the game is live. `complete` has written the bytes and the row,
|
|
256
307
|
// so nothing here can un-publish anything — this stage only decides what we tell the creator.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"publish.js","sourceRoot":"","sources":["../../src/commands/publish.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"publish.js","sourceRoot":"","sources":["../../src/commands/publish.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACpC,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAExC,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAuB,MAAM,uBAAuB,CAAC;AAChF,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAoB,MAAM,2BAA2B,CAAC;AACvG,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAsB,MAAM,0BAA0B,CAAC;AAClF,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC5E,OAAO,EACL,QAAQ,IAAI,YAAY,EACxB,iBAAiB,IAAI,qBAAqB,EAC1C,gBAAgB,GAEjB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,YAAY,EACZ,eAAe,EACf,SAAS,EACT,gBAAgB,EAChB,yBAAyB,EACzB,YAAY,GAEb,MAAM,sBAAsB,CAAC;AAE9B,2FAA2F;AAC3F,SAAS,iBAAiB,CAAC,IAAY;IACrC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;AAChD,CAAC;AAED;mFACmF;AACnF,MAAM,UAAU,iBAAiB,CAAC,GAAuB;IACvD,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACxC,IAAI,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,GAAG,CAAC;IACtD,MAAM,IAAI,QAAQ,CAAC,mDAAmD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAChG,CAAC;AAyBD,SAAS,WAAW;IAClB,OAAO;QACL,KAAK,EAAE,UAAU,CAAC,KAAK;QACvB,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACtE,QAAQ,EAAE,YAAY;QACtB,iBAAiB,EAAE,qBAAqB;QACxC,8FAA8F;QAC9F,2FAA2F;QAC3F,iFAAiF;QACjF,aAAa,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;YAC/B,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,CAAC;YAC1D,OAAO,aAAa,CAAC,OAAO,CAAC,CAAC;QAChC,CAAC;KACF,CAAC;AACJ,CAAC;AAuBD;;;;;;;;;GASG;AACH,MAAM,UAAU,sBAAsB,CACpC,IAAY,EACZ,WAAqC,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC;IAEpE,IAAI,CAAC;QACH,OAAO;YACL,KAAK,EAAE,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;YACrC,QAAQ,EAAE,gBAAgB;YAC1B,WAAW,EAAE,YAAY;YACzB,KAAK,EAAE,qBAAqB;YAC5B,SAAS,EAAE,IAAI;SAChB,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,gGAAgG;IAClG,CAAC;IACD,IAAI,CAAC;QACH,OAAO;YACL,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,gBAAgB,CAAC,CAAC;YACrE,QAAQ,EAAE,eAAe;YACzB,WAAW,EAAE,WAAW;YACxB,KAAK,EAAE,mBAAmB;YAC1B,SAAS,EAAE,KAAK;SACjB,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,eAAe,CAC5B,OAAuB,EACvB,WAAwB,EACxB,KAAa,EACb,OAAgB,EAChB,GAA8B;IAE9B,MAAM,MAAM,GAAG,sBAAsB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACpD,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACpB,4FAA4F;QAC5F,8FAA8F;QAC9F,kBAAkB;QAClB,MAAM,IAAI,QAAQ,CAChB,oCAAoC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO;YACrE,GAAG,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,gBAAgB,CAAC,WAAW;YAC1E,sFAAsF,EACxF,CAAC,CACF,CAAC;IACJ,CAAC;IAED,GAAG,CAAC,cAAc,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC;IACnC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;QACtB,0FAA0F;QAC1F,oCAAoC;QACpC,GAAG,CAAC,2EAA2E,CAAC,CAAC;IACnF,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,yBAAyB,CAC5C,WAAW,EACX,KAAK,EACL,EAAE,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,EAC/F,OAAO,CACR,CAAC;IACF,MAAM,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IACtE,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC;AACtF,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,IAAiB,EACjB,OAAuB,WAAW,EAAE;IAEpC,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;IAChD,wFAAwF;IACxF,kEAAkE;IAClE,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC;IACpC,MAAM,UAAU,GAAG,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACtD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC;IAElC,8FAA8F;IAC9F,gGAAgG;IAChG,+DAA+D;IAC/D,MAAM,SAAS,GAAG;QAChB,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvD,GAAG,CAAC,IAAI,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC7E,CAAC;IAEF,MAAM,OAAO,GAAG,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAClD,iGAAiG;IACjG,+FAA+F;IAC/F,MAAM,WAAW,GAAG,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACnD,MAAM,WAAW,GAAG,WAAW,CAAC,WAAW,CAAC;IAE5C,MAAM,IAAI,GAAG,eAAe,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;IACpG,IAAI,CAAC,IAAI,CAAC,EAAE;QAAE,MAAM,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAElD,yFAAyF;IACzF,+FAA+F;IAC/F,0FAA0F;IAC1F,8BAA8B;IAC9B,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACtD,IAAI,QAAQ,EAAE,WAAW,KAAK,WAAW,EAAE,CAAC;QAC1C,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IAC9D,CAAC;IAED,MAAM,WAAW,GAAG,kBAAkB,CAAC,EAAE,aAAa,EAAE,sBAAsB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAChG,MAAM,QAAQ,GAAG,oBAAoB,CAAC,WAAW,CAAC,CAAC;IACnD,MAAM,KAAK,GAAG,MAAM,cAAc,CAChC,WAAW,EACX,QAAQ,EACR,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,EACxC,IAAI,CAAC,OAAO,CACb,CAAC;IACF,MAAM,OAAO,GAAY,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;IAE/C,6FAA6F;IAC7F,oEAAoE;IACpE,MAAM,SAAS,GAAG,MAAM,eAAe,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;IACnF,MAAM,YAAY,GAAG,SAAS,CAAC,GAAG,CAAC;IAEnC,+FAA+F;IAC/F,+FAA+F;IAC/F,8FAA8F;IAC9F,IAAI,OAAO,GAAyB,IAAI,CAAC;IACzC,IAAI,CAAC;QACH,OAAO,GAAG,MAAM,kBAAkB,CAAC;YACjC,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,KAAK,EAAE,WAAW;YAClB,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,MAAM;YAC/B,aAAa,EAAE,OAAO,CAAC,QAAQ,CAAC,aAAa;YAC7C,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC,KAAK;SAC9B,CAAC,CAAC;QACH,IAAI,OAAO,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtC,4FAA4F;YAC5F,2FAA2F;YAC3F,oCAAoC;YACpC,GAAG,CAAC,4BAA4B,OAAO,CAAC,cAAc,CAAC,MAAM,+BAA+B,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACnI,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,GAAG,CAAC,sCAAsC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;IAChI,CAAC;IAED,gGAAgG;IAChG,8FAA8F;IAC9F,8FAA8F;IAC9F,gBAAgB;IAChB,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,WAAW,EAAE,KAAK,EAAE;QACnD,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,MAAM;QAC/B,UAAU;QACV,GAAG,SAAS;QACZ,aAAa,EAAE,OAAO,CAAC,QAAQ,CAAC,aAAa;QAC7C,YAAY;QACZ,gBAAgB,EAAE,mBAAmB,CAAC,OAAO,CAAC,IAAI,CAAC;QACnD,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACrD,EAAE,OAAO,CAAC,CAAC;IAEZ,MAAM,EAAE,QAAQ,EAAE,GAAG,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACpD,IAAI,SAAiB,CAAC;IACtB,IAAI,CAAC;QACH,SAAS,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACjD,CAAC;IAAC,MAAM,CAAC;QACP,6FAA6F;QAC7F,4FAA4F;QAC5F,mEAAmE;QACnE,MAAM,IAAI,QAAQ,CAChB,uBAAuB,QAAQ,0DAA0D,EACzF,CAAC,CACF,CAAC;IACJ,CAAC;IAED,6FAA6F;IAC7F,4FAA4F;IAC5F,iGAAiG;IACjG,kFAAkF;IAClF,EAAE;IACF,2FAA2F;IAC3F,+FAA+F;IAC/F,2FAA2F;IAC3F,2EAA2E;IAC3E,MAAM,aAAa,GAAG,gBAAgB,CACpC,eAAe,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,EAC3C,KAAK,CAAC,UAAU,CACjB,CAAC;IACF,MAAM,cAAc,GAAG,MAAM,CAAC,UAAU,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IACjE,MAAM,eAAe,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAE1F,0FAA0F;IAC1F,yFAAyF;IACzF,6FAA6F;IAC7F,sFAAsF;IACtF,MAAM,SAAS,CAAC,KAAK,CAAC,SAAS,EAAE,aAAa,EAAE,KAAK,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IAE7E,8FAA8F;IAC9F,6FAA6F;IAC7F,8FAA8F;IAC9F,IAAI,cAAc,GAAG,KAAK,CAAC;IAC3B,IAAI,OAAO,IAAI,KAAK,CAAC,eAAe,IAAI,KAAK,CAAC,kBAAkB,EAAE,CAAC;QACjE,IAAI,CAAC;YACH,MAAM,gBAAgB,CACpB,KAAK,CAAC,eAAe,EACrB,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,EACjC,KAAK,CAAC,kBAAkB,EACxB,OAAO,CACR,CAAC;YACF,cAAc,GAAG,IAAI,CAAC;QACxB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,iCAAiC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;QAC9H,CAAC;IACH,CAAC;IAED,wFAAwF;IACxF,wFAAwF;IACxF,8FAA8F;IAC9F,uFAAuF;IACvF,6FAA6F;IAC7F,0FAA0F;IAC1F,8EAA8E;IAC9E,MAAM,IAAI,GAAG,MAAM,eAAe,CAAC,WAAW,EAAE,KAAK,EAAE;QACrD,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,MAAM;QAC/B,GAAG,EAAE,KAAK,CAAC,GAAG;QACd,cAAc,EAAE,KAAK,CAAC,cAAc;QACpC,UAAU;QACV,GAAG,SAAS;QACZ,YAAY;QACZ,WAAW,EAAE,cAAc;QAC3B,MAAM,EAAE,eAAe;QACvB,0FAA0F;QAC1F,2FAA2F;QAC3F,4FAA4F;QAC5F,aAAa,EAAE,OAAO,CAAC,QAAQ,CAAC,aAAa;QAC7C,WAAW;QACX,6FAA6F;QAC7F,8EAA8E;QAC9E,GAAG,CAAC,cAAc,IAAI,OAAO,IAAI,KAAK,CAAC,SAAS;YAC9C,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,YAAY,EAAE,OAAO,CAAC,MAAM,EAAE;YAC9D,CAAC,CAAC,EAAE,CAAC;QACP,eAAe,EAAE,WAAW,CAAC,IAAI;KAClC,EAAE,OAAO,CAAC,CAAC;IAEZ,uFAAuF;IACvF,8CAA8C;IAC9C,MAAM,OAAO,GAAG,kBAAkB,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,EAAE,KAAK,CAAC,oBAAoB,CAAC,CAAC;IAC/F,IAAI,OAAO,KAAK,IAAI;QAAE,GAAG,CAAC,OAAO,CAAC,CAAC;IAEnC,GAAG,CAAC,aAAa,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IACjD,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QAClC,GAAG,CAAC,kEAAkE,CAAC,CAAC;IAC1E,CAAC;IACD,iGAAiG;IACjG,iGAAiG;IACjG,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,YAAY,EAAE,QAAQ,IAAI,EAAE;QAAE,GAAG,CAAC,cAAc,OAAO,EAAE,CAAC,CAAC;IACtF,MAAM,CAAC,MAAM,CAAC;QACZ,EAAE,EAAE,IAAI;QACR,GAAG,EAAE,IAAI,CAAC,GAAG;QACb,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,cAAc,EAAE,IAAI,CAAC,cAAc;QACnC,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,MAAM;QAC/B,eAAe,EAAE,SAAS,CAAC,MAAM;QACjC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAClE,CAAC,CAAC;IAEH,8FAA8F;IAC9F,8FAA8F;IAC9F,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,IAAI,EAAE,CAAC;QAChC,0FAA0F;QAC1F,4FAA4F;QAC5F,0CAA0C;QAC1C,GAAG,CAAC,mEAAmE,CAAC,CAAC;QACzE,OAAO;IACT,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;IAC/D,GAAG,CAAC,sCAAsC,CAAC,CAAC;IAC5C,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC1F,KAAK,MAAM,OAAO,IAAI,KAAK,CAAC,QAAQ;QAAE,GAAG,CAAC,cAAc,OAAO,EAAE,CAAC,CAAC;IACnE,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;QACd,6FAA6F;QAC7F,+FAA+F;QAC/F,MAAM,IAAI,QAAQ,CAChB,6BAA6B,IAAI,CAAC,GAAG,kDAAkD;YACrF,qBAAqB,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;YACzE,cAAc,QAAQ,IAAI;YAC1B,kFAAkF,EACpF,CAAC,CACF,CAAC;IACJ,CAAC;IACD,GAAG,CAAC,kDAAkD,CAAC,CAAC;AAC1D,CAAC;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,aAAa,CAAC;IAC1C,IAAI,EAAE;QACJ,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,gFAAgF;KAC9F;IACD,IAAI,EAAE;QACJ,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,4EAA4E;SAC1F;QACD,IAAI,EAAE;YACJ,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,iFAAiF;SAC/F;QACD,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,wFAAwF;SACtG;QACD,KAAK,EAAE;YACL,IAAI,EAAE,SAAS;YACf,WAAW,EAAE,oFAAoF;SAClG;QACD,YAAY,EAAE;YACZ,IAAI,EAAE,SAAS;YACf,WAAW,EACT,qGAAqG;SACxG;QACD,IAAI,EAAE;YACJ,IAAI,EAAE,SAAS;YACf,WAAW,EAAE,kEAAkE;SAChF;KACF;IACD,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE;QAChB,MAAM,UAAU,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;CACF,CAAC,CAAC"}
|
|
@@ -10,8 +10,13 @@
|
|
|
10
10
|
* Same template-literal rules as its host: **no backticks**, and a backslash in a regex has to be
|
|
11
11
|
* doubled to survive the literal.
|
|
12
12
|
*/
|
|
13
|
-
/**
|
|
14
|
-
|
|
13
|
+
/**
|
|
14
|
+
* Styles for `#asset-overlay`, appended to the shell's stylesheet.
|
|
15
|
+
*
|
|
16
|
+
* The surface, the pills and the modal backdrop come from `design.ts` (`.bm-overlay`,
|
|
17
|
+
* `.bm-dialog`, `.bm-pill`); only what is specific to this dialog's layout lives here.
|
|
18
|
+
*/
|
|
19
|
+
export declare const ASSET_DETAIL_CSS = "\n /* Above #hq-overlay, which sits at 10 \u2014 a preview opened from a row must cover it. */\n #asset-overlay { z-index: 11; }\n #asset-dialog { display: flex; width: min(1100px, 94vw); height: min(760px, 88vh);\n overflow: hidden; }\n /* The viewer takes the room. Everything else is a caption. The near-black ground is the\n brand's: a creation is the only thing on this surface that carries colour. */\n #asset-view { flex: 1; min-width: 0; position: relative; background: var(--bm-bg); }\n #asset-view iframe { display: block; width: 100%; height: 100%; border: 0; }\n #asset-view img { display: block; width: 100%; height: 100%; object-fit: contain;\n background: var(--bm-bg); }\n #asset-view audio { position: absolute; left: 50%; top: 50%; width: min(420px, 80%);\n transform: translate(-50%, -50%); }\n /* A note here is always a failure or a wait that has gone on too long \u2014 the negative accent. */\n #asset-note { position: absolute; inset: auto 0 0 0; padding: 10px 12px;\n background: var(--bm-scrim); color: var(--bm-pink-hover); font-size: 12px; }\n #asset-note.hidden, #asset-view > .hidden { display: none; }\n /* Wide enough for the three action pills to sit on one row: uppercase tracked labels are\n wider than the sentence-case ones this panel used to have. */\n #asset-meta { width: 360px; flex: none; padding: 16px; overflow-y: auto;\n border-left: 1px solid var(--bm-border-muted); }\n #asset-meta h2 { margin: 0 0 4px; word-break: break-word; }\n #asset-meta .sub { color: var(--bm-text-dim); font-size: 12px; margin-bottom: 16px; }\n #asset-facts { display: grid; grid-template-columns: auto 1fr; gap: 6px 12px; font-size: 12px; }\n #asset-facts dt { color: var(--bm-text-dim); }\n #asset-facts dd { margin: 0; color: var(--bm-text); word-break: break-word; }\n #asset-facts dd.mono { font-family: var(--bm-font-mono); }\n #asset-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; }\n #asset-close { margin-left: auto; }\n";
|
|
15
20
|
/**
|
|
16
21
|
* The overlay itself.
|
|
17
22
|
*
|
|
@@ -19,4 +24,4 @@ export declare const ASSET_DETAIL_CSS = "\n /* Modelled on #hq-overlay, deliber
|
|
|
19
24
|
* controls because its player sits in a 46px row, and here there is a whole dialog. A creator
|
|
20
25
|
* checking a sound effect wants the scrubber.
|
|
21
26
|
*/
|
|
22
|
-
export declare const ASSET_DETAIL_HTML = "\n <div id=\"asset-overlay\">\n <div id=\"asset-dialog\">\n <div id=\"asset-view\">\n <iframe id=\"asset-frame\" class=\"hidden\" title=\"Asset preview\"></iframe>\n <img id=\"asset-image\" class=\"hidden\" alt=\"\">\n <audio id=\"asset-audio\" class=\"hidden\" controls preload=\"none\"></audio>\n <div id=\"asset-note\" class=\"hidden\"></div>\n </div>\n <aside id=\"asset-meta\">\n <h2 id=\"asset-name\"></h2>\n <div class=\"sub\" id=\"asset-sub\"></div>\n <dl id=\"asset-facts\"></dl>\n <div id=\"asset-actions\">\n <button id=\"asset-reset\" type=\"button\" title=\"Back to the angle the thumbnail uses\">Reset view</button>\n <button id=\"asset-copy\" type=\"button\" title=\"Copy this asset's id\">Copy id</button>\n <button id=\"asset-close\" type=\"button\">Close</button>\n </div>\n </aside>\n </div>\n </div>\n";
|
|
27
|
+
export declare const ASSET_DETAIL_HTML = "\n <div id=\"asset-overlay\" class=\"bm-overlay\">\n <div id=\"asset-dialog\" class=\"bm-dialog\">\n <div id=\"asset-view\">\n <iframe id=\"asset-frame\" class=\"hidden\" title=\"Asset preview\"></iframe>\n <img id=\"asset-image\" class=\"hidden\" alt=\"\">\n <audio id=\"asset-audio\" class=\"hidden\" controls preload=\"none\"></audio>\n <div id=\"asset-note\" class=\"hidden\"></div>\n </div>\n <aside id=\"asset-meta\">\n <h2 id=\"asset-name\"></h2>\n <div class=\"sub\" id=\"asset-sub\"></div>\n <dl id=\"asset-facts\"></dl>\n <div id=\"asset-actions\">\n <button id=\"asset-reset\" class=\"bm-pill\" type=\"button\" title=\"Back to the angle the thumbnail uses\">Reset view</button>\n <button id=\"asset-copy\" class=\"bm-pill\" type=\"button\" title=\"Copy this asset's id\">Copy id</button>\n <button id=\"asset-close\" class=\"bm-pill bm-pill--ghost\" type=\"button\">Close</button>\n </div>\n </aside>\n </div>\n </div>\n";
|
|
@@ -10,34 +10,40 @@
|
|
|
10
10
|
* Same template-literal rules as its host: **no backticks**, and a backslash in a regex has to be
|
|
11
11
|
* doubled to survive the literal.
|
|
12
12
|
*/
|
|
13
|
-
/**
|
|
13
|
+
/**
|
|
14
|
+
* Styles for `#asset-overlay`, appended to the shell's stylesheet.
|
|
15
|
+
*
|
|
16
|
+
* The surface, the pills and the modal backdrop come from `design.ts` (`.bm-overlay`,
|
|
17
|
+
* `.bm-dialog`, `.bm-pill`); only what is specific to this dialog's layout lives here.
|
|
18
|
+
*/
|
|
14
19
|
export const ASSET_DETAIL_CSS = `
|
|
15
|
-
/*
|
|
16
|
-
#asset-overlay {
|
|
17
|
-
align-items: center; justify-content: center; z-index: 11; }
|
|
18
|
-
#asset-overlay.show { display: flex; }
|
|
20
|
+
/* Above #hq-overlay, which sits at 10 — a preview opened from a row must cover it. */
|
|
21
|
+
#asset-overlay { z-index: 11; }
|
|
19
22
|
#asset-dialog { display: flex; width: min(1100px, 94vw); height: min(760px, 88vh);
|
|
20
|
-
background: #17171d; border: 1px solid #34343f; border-radius: 8px;
|
|
21
23
|
overflow: hidden; }
|
|
22
|
-
/* The viewer takes the room. Everything else is a caption.
|
|
23
|
-
|
|
24
|
+
/* The viewer takes the room. Everything else is a caption. The near-black ground is the
|
|
25
|
+
brand's: a creation is the only thing on this surface that carries colour. */
|
|
26
|
+
#asset-view { flex: 1; min-width: 0; position: relative; background: var(--bm-bg); }
|
|
24
27
|
#asset-view iframe { display: block; width: 100%; height: 100%; border: 0; }
|
|
25
28
|
#asset-view img { display: block; width: 100%; height: 100%; object-fit: contain;
|
|
26
|
-
background:
|
|
29
|
+
background: var(--bm-bg); }
|
|
27
30
|
#asset-view audio { position: absolute; left: 50%; top: 50%; width: min(420px, 80%);
|
|
28
31
|
transform: translate(-50%, -50%); }
|
|
29
|
-
|
|
30
|
-
|
|
32
|
+
/* A note here is always a failure or a wait that has gone on too long — the negative accent. */
|
|
33
|
+
#asset-note { position: absolute; inset: auto 0 0 0; padding: 10px 12px;
|
|
34
|
+
background: var(--bm-scrim); color: var(--bm-pink-hover); font-size: 12px; }
|
|
31
35
|
#asset-note.hidden, #asset-view > .hidden { display: none; }
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
#asset-meta
|
|
35
|
-
|
|
36
|
-
#asset-
|
|
37
|
-
#asset-
|
|
38
|
-
#asset-facts
|
|
39
|
-
#asset-facts
|
|
40
|
-
#asset-
|
|
36
|
+
/* Wide enough for the three action pills to sit on one row: uppercase tracked labels are
|
|
37
|
+
wider than the sentence-case ones this panel used to have. */
|
|
38
|
+
#asset-meta { width: 360px; flex: none; padding: 16px; overflow-y: auto;
|
|
39
|
+
border-left: 1px solid var(--bm-border-muted); }
|
|
40
|
+
#asset-meta h2 { margin: 0 0 4px; word-break: break-word; }
|
|
41
|
+
#asset-meta .sub { color: var(--bm-text-dim); font-size: 12px; margin-bottom: 16px; }
|
|
42
|
+
#asset-facts { display: grid; grid-template-columns: auto 1fr; gap: 6px 12px; font-size: 12px; }
|
|
43
|
+
#asset-facts dt { color: var(--bm-text-dim); }
|
|
44
|
+
#asset-facts dd { margin: 0; color: var(--bm-text); word-break: break-word; }
|
|
45
|
+
#asset-facts dd.mono { font-family: var(--bm-font-mono); }
|
|
46
|
+
#asset-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; }
|
|
41
47
|
#asset-close { margin-left: auto; }
|
|
42
48
|
`;
|
|
43
49
|
/**
|
|
@@ -48,8 +54,8 @@ export const ASSET_DETAIL_CSS = `
|
|
|
48
54
|
* checking a sound effect wants the scrubber.
|
|
49
55
|
*/
|
|
50
56
|
export const ASSET_DETAIL_HTML = `
|
|
51
|
-
<div id="asset-overlay">
|
|
52
|
-
<div id="asset-dialog">
|
|
57
|
+
<div id="asset-overlay" class="bm-overlay">
|
|
58
|
+
<div id="asset-dialog" class="bm-dialog">
|
|
53
59
|
<div id="asset-view">
|
|
54
60
|
<iframe id="asset-frame" class="hidden" title="Asset preview"></iframe>
|
|
55
61
|
<img id="asset-image" class="hidden" alt="">
|
|
@@ -61,9 +67,9 @@ export const ASSET_DETAIL_HTML = `
|
|
|
61
67
|
<div class="sub" id="asset-sub"></div>
|
|
62
68
|
<dl id="asset-facts"></dl>
|
|
63
69
|
<div id="asset-actions">
|
|
64
|
-
<button id="asset-reset" type="button" title="Back to the angle the thumbnail uses">Reset view</button>
|
|
65
|
-
<button id="asset-copy" type="button" title="Copy this asset's id">Copy id</button>
|
|
66
|
-
<button id="asset-close" type="button">Close</button>
|
|
70
|
+
<button id="asset-reset" class="bm-pill" type="button" title="Back to the angle the thumbnail uses">Reset view</button>
|
|
71
|
+
<button id="asset-copy" class="bm-pill" type="button" title="Copy this asset's id">Copy id</button>
|
|
72
|
+
<button id="asset-close" class="bm-pill bm-pill--ghost" type="button">Close</button>
|
|
67
73
|
</div>
|
|
68
74
|
</aside>
|
|
69
75
|
</div>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"asset-detail-panel.js","sourceRoot":"","sources":["../../src/editor/asset-detail-panel.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH
|
|
1
|
+
{"version":3,"file":"asset-detail-panel.js","sourceRoot":"","sources":["../../src/editor/asset-detail-panel.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6B/B,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG;;;;;;;;;;;;;;;;;;;;;CAqBhC,CAAC"}
|
|
@@ -18,6 +18,7 @@
|
|
|
18
18
|
*/
|
|
19
19
|
import { CDN_IMPORTS } from '../scaffold/project-files.js';
|
|
20
20
|
import { importMapEntries } from '../scaffold/aliases.js';
|
|
21
|
+
import { BITMAGIC_FONT_LINK, BITMAGIC_TOKENS_CSS } from './design.js';
|
|
21
22
|
/** Attribute- and script-safe: these land inside a `<script type="importmap">` block. */
|
|
22
23
|
function importMapFor(gamePort) {
|
|
23
24
|
const origin = `http://localhost:${gamePort}`;
|
|
@@ -31,17 +32,25 @@ export function renderAssetPreviewPage(options) {
|
|
|
31
32
|
<head>
|
|
32
33
|
<meta charset="utf-8">
|
|
33
34
|
<title>Asset preview</title>
|
|
35
|
+
${BITMAGIC_FONT_LINK}
|
|
34
36
|
<style>
|
|
35
|
-
|
|
36
|
-
|
|
37
|
+
${BITMAGIC_TOKENS_CSS}
|
|
38
|
+
/* The ground before the canvas exists, and the type over it once it does. Brand near-black, so
|
|
39
|
+
a viewer that is still loading looks like part of the dialog around it rather than a blank
|
|
40
|
+
window. The RENDER surface stays the slate asset-viewer.ts clears to — that is the colour the
|
|
41
|
+
engine bakes the thumbnails on, and a tile and its preview must not disagree. */
|
|
42
|
+
html, body { margin: 0; height: 100%; background: var(--bm-bg); overflow: hidden;
|
|
43
|
+
font: 400 12px/1.5 var(--bm-font); color: var(--bm-text-muted); }
|
|
37
44
|
#stage { position: absolute; inset: 0; }
|
|
38
45
|
#stage canvas { display: block; width: 100%; height: 100%; }
|
|
39
46
|
/* Sits over the canvas rather than beside it: the dialog gives this iframe every pixel, and a
|
|
40
47
|
status line that reserved space would shrink the thing being looked at. */
|
|
41
|
-
#status { position: absolute; left: 0; right: 0; top: 0; padding:
|
|
42
|
-
background: linear-gradient(
|
|
43
|
-
|
|
44
|
-
#
|
|
48
|
+
#status { position: absolute; left: 0; right: 0; top: 0; padding: 12px;
|
|
49
|
+
background: linear-gradient(var(--bm-scrim), transparent);
|
|
50
|
+
pointer-events: none; }
|
|
51
|
+
#status.failed { color: var(--bm-pink-hover); }
|
|
52
|
+
#hint { position: absolute; left: 12px; bottom: 12px; color: var(--bm-text-dim);
|
|
53
|
+
pointer-events: none; }
|
|
45
54
|
#hint.hidden, #status.hidden { display: none; }
|
|
46
55
|
</style>
|
|
47
56
|
</head>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"asset-preview-page.js","sourceRoot":"","sources":["../../src/editor/asset-preview-page.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"asset-preview-page.js","sourceRoot":"","sources":["../../src/editor/asset-preview-page.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAQtE,yFAAyF;AACzF,SAAS,YAAY,CAAC,QAAgB;IACpC,MAAM,MAAM,GAAG,oBAAoB,QAAQ,EAAE,CAAC;IAC9C,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,CAC/B,MAAM,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,GAAG,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC,CACzF,CAAC;IACF,OAAO,EAAE,GAAG,WAAW,EAAE,GAAG,MAAM,EAAE,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,OAAgC;IACrE,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACrF,OAAO;;;;;EAKP,kBAAkB;;EAElB,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;EA0BnB,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+CR,CAAC;AACF,CAAC"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The Bitmagic design system, for the pages `bitmagic dev` serves.
|
|
3
|
+
*
|
|
4
|
+
* The dev view is a Bitmagic product surface — for a pro-lane creator it is the only one they ever
|
|
5
|
+
* look at — so it follows `creator/DESIGN.md` the way the Creator and the in-engine editor do.
|
|
6
|
+
* It cannot import the Creator's `BitmagicDesign.css`: this package ships on npm on its own, and
|
|
7
|
+
* both pages are strings assembled in TypeScript rather than bundled documents. So it re-declares
|
|
8
|
+
* the same tokens, exactly as `game/src/editor/editor-styles.ts` does for the engine's editor
|
|
9
|
+
* dialogs — three copies of the palette, one source of truth in DESIGN.md.
|
|
10
|
+
*
|
|
11
|
+
* **No backticks in anything exported here.** These constants are interpolated into the pages'
|
|
12
|
+
* template literals, and a backtick would end the literal somewhere else entirely (there is a test
|
|
13
|
+
* for it: `__tests__/shell-page.test.ts`).
|
|
14
|
+
*/
|
|
15
|
+
/** Hex tokens for TS-side use — the same set `game/src/editor/editor-styles.ts` exposes. */
|
|
16
|
+
export declare const BM: {
|
|
17
|
+
readonly bg: "#0b0b0b";
|
|
18
|
+
readonly surface: "#181818";
|
|
19
|
+
readonly surfaceAlt: "#1f1f1f";
|
|
20
|
+
readonly surfaceCard: "#252525";
|
|
21
|
+
readonly textPrimary: "#ffffff";
|
|
22
|
+
readonly textMuted: "#b3b3b3";
|
|
23
|
+
readonly textDim: "#7c7c7c";
|
|
24
|
+
readonly textOnAccent: "#000000";
|
|
25
|
+
readonly border: "#4d4d4d";
|
|
26
|
+
readonly borderMuted: "#2a2a2a";
|
|
27
|
+
readonly aqua: "#A0DAB9";
|
|
28
|
+
readonly aquaHover: "#B8E4CA";
|
|
29
|
+
readonly aquaPressed: "#7DC29C";
|
|
30
|
+
readonly pink: "#E0218A";
|
|
31
|
+
readonly pinkHover: "#F04AA4";
|
|
32
|
+
readonly pinkPressed: "#B3176D";
|
|
33
|
+
readonly pumpkin: "#FF8200";
|
|
34
|
+
readonly canary: "#F9E547";
|
|
35
|
+
readonly shadowDialog: "0 8px 24px rgba(0, 0, 0, 0.5)";
|
|
36
|
+
readonly shadowCard: "0 8px 8px rgba(0, 0, 0, 0.3)";
|
|
37
|
+
readonly glowAqua: "0 0 24px rgba(160, 218, 185, 0.45)";
|
|
38
|
+
readonly glowPink: "0 0 24px rgba(224, 33, 138, 0.4)";
|
|
39
|
+
readonly insetBorderDim: "inset 0 0 0 1px #7c7c7c";
|
|
40
|
+
readonly insetBorderFocus: "inset 0 0 0 1px #ffffff, 0 0 0 2px rgba(160, 218, 185, 0.45)";
|
|
41
|
+
readonly font: "\"Red Hat Display\", \"Helvetica Neue\", Helvetica, Arial, system-ui, sans-serif";
|
|
42
|
+
readonly fontMono: "ui-monospace, SFMono-Regular, Menlo, monospace";
|
|
43
|
+
};
|
|
44
|
+
/**
|
|
45
|
+
* Red Hat Display, from the same Google Fonts URL `creator/index.html` uses.
|
|
46
|
+
*
|
|
47
|
+
* A dev machine with no network gets the fallback stack and a page that is otherwise identical —
|
|
48
|
+
* every rule below sizes and weights type rather than depending on the family's metrics.
|
|
49
|
+
*/
|
|
50
|
+
export declare const BITMAGIC_FONT_LINK = "<link rel=\"preconnect\" href=\"https://fonts.googleapis.com\">\n<link rel=\"preconnect\" href=\"https://fonts.gstatic.com\" crossorigin>\n<link rel=\"stylesheet\" href=\"https://fonts.googleapis.com/css2?family=Red+Hat+Display:wght@300;400;500;700&display=swap\">";
|
|
51
|
+
/** The palette as custom properties, so page-specific rules can `var(--bm-*)` them. */
|
|
52
|
+
export declare const BITMAGIC_TOKENS_CSS: string;
|
|
53
|
+
/**
|
|
54
|
+
* The component primitives both served pages use: pill buttons, inputs, badges, modal surfaces.
|
|
55
|
+
*
|
|
56
|
+
* Label voice is UPPERCASE Bold with tracking and content voice is sentence-case Regular, per the
|
|
57
|
+
* brand type guideline — which is why every button here is uppercase and nothing else is.
|
|
58
|
+
*/
|
|
59
|
+
export declare const BITMAGIC_CONTROLS_CSS: string;
|