@servrox/console-fx 0.1.0
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/CHANGELOG.md +7 -0
- package/LICENSE +21 -0
- package/README.md +253 -0
- package/dist/browser/compiler.d.ts +14 -0
- package/dist/browser/compiler.d.ts.map +1 -0
- package/dist/browser/compiler.js +218 -0
- package/dist/browser/compiler.js.map +1 -0
- package/dist/browser/index.d.ts +16 -0
- package/dist/browser/index.d.ts.map +1 -0
- package/dist/browser/index.js +55 -0
- package/dist/browser/index.js.map +1 -0
- package/dist/browser/measure.d.ts +5 -0
- package/dist/browser/measure.d.ts.map +1 -0
- package/dist/browser/measure.js +79 -0
- package/dist/browser/measure.js.map +1 -0
- package/dist/browser/preflight.d.ts +5 -0
- package/dist/browser/preflight.d.ts.map +1 -0
- package/dist/browser/preflight.js +70 -0
- package/dist/browser/preflight.js.map +1 -0
- package/dist/codegen/index.d.ts +5 -0
- package/dist/codegen/index.d.ts.map +1 -0
- package/dist/codegen/index.js +56 -0
- package/dist/codegen/index.js.map +1 -0
- package/dist/effects/catalog.d.ts +5 -0
- package/dist/effects/catalog.d.ts.map +1 -0
- package/dist/effects/catalog.js +121 -0
- package/dist/effects/catalog.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -0
- package/dist/layout/bounds.d.ts +16 -0
- package/dist/layout/bounds.d.ts.map +1 -0
- package/dist/layout/bounds.js +84 -0
- package/dist/layout/bounds.js.map +1 -0
- package/dist/layout/metrics.d.ts +20 -0
- package/dist/layout/metrics.d.ts.map +1 -0
- package/dist/layout/metrics.js +92 -0
- package/dist/layout/metrics.js.map +1 -0
- package/dist/layout/planner.d.ts +32 -0
- package/dist/layout/planner.d.ts.map +1 -0
- package/dist/layout/planner.js +439 -0
- package/dist/layout/planner.js.map +1 -0
- package/dist/layout/render.d.ts +4 -0
- package/dist/layout/render.d.ts.map +1 -0
- package/dist/layout/render.js +98 -0
- package/dist/layout/render.js.map +1 -0
- package/dist/layout/wrap.d.ts +16 -0
- package/dist/layout/wrap.d.ts.map +1 -0
- package/dist/layout/wrap.js +67 -0
- package/dist/layout/wrap.js.map +1 -0
- package/dist/model/layout.d.ts +112 -0
- package/dist/model/layout.d.ts.map +1 -0
- package/dist/model/layout.js +2 -0
- package/dist/model/layout.js.map +1 -0
- package/dist/model/limits.d.ts +19 -0
- package/dist/model/limits.d.ts.map +1 -0
- package/dist/model/limits.js +28 -0
- package/dist/model/limits.js.map +1 -0
- package/dist/model/types.d.ts +267 -0
- package/dist/model/types.d.ts.map +1 -0
- package/dist/model/types.js +2 -0
- package/dist/model/types.js.map +1 -0
- package/dist/presentations/catalog.d.ts +5 -0
- package/dist/presentations/catalog.d.ts.map +1 -0
- package/dist/presentations/catalog.js +1522 -0
- package/dist/presentations/catalog.js.map +1 -0
- package/dist/presentations/compact.d.ts +16 -0
- package/dist/presentations/compact.d.ts.map +1 -0
- package/dist/presentations/compact.js +178 -0
- package/dist/presentations/compact.js.map +1 -0
- package/dist/presentations/fonts.d.ts +7 -0
- package/dist/presentations/fonts.d.ts.map +1 -0
- package/dist/presentations/fonts.js +7 -0
- package/dist/presentations/fonts.js.map +1 -0
- package/dist/presets/cards.d.ts +67 -0
- package/dist/presets/cards.d.ts.map +1 -0
- package/dist/presets/cards.js +305 -0
- package/dist/presets/cards.js.map +1 -0
- package/dist/presets/index.d.ts +125 -0
- package/dist/presets/index.d.ts.map +1 -0
- package/dist/presets/index.js +270 -0
- package/dist/presets/index.js.map +1 -0
- package/dist/renderers/cinematic/glyphs.d.ts +2 -0
- package/dist/renderers/cinematic/glyphs.d.ts.map +1 -0
- package/dist/renderers/cinematic/glyphs.js +86 -0
- package/dist/renderers/cinematic/glyphs.js.map +1 -0
- package/dist/renderers/cinematic/layout.d.ts +23 -0
- package/dist/renderers/cinematic/layout.d.ts.map +1 -0
- package/dist/renderers/cinematic/layout.js +86 -0
- package/dist/renderers/cinematic/layout.js.map +1 -0
- package/dist/renderers/cinematic/profiles.d.ts +51 -0
- package/dist/renderers/cinematic/profiles.d.ts.map +1 -0
- package/dist/renderers/cinematic/profiles.js +78 -0
- package/dist/renderers/cinematic/profiles.js.map +1 -0
- package/dist/renderers/cinematic/render.d.ts +8 -0
- package/dist/renderers/cinematic/render.d.ts.map +1 -0
- package/dist/renderers/cinematic/render.js +51 -0
- package/dist/renderers/cinematic/render.js.map +1 -0
- package/dist/renderers/css.d.ts +12 -0
- package/dist/renderers/css.d.ts.map +1 -0
- package/dist/renderers/css.js +72 -0
- package/dist/renderers/css.js.map +1 -0
- package/dist/renderers/presentations/compact-art.d.ts +3 -0
- package/dist/renderers/presentations/compact-art.d.ts.map +1 -0
- package/dist/renderers/presentations/compact-art.js +80 -0
- package/dist/renderers/presentations/compact-art.js.map +1 -0
- package/dist/renderers/presentations/layout.d.ts +5 -0
- package/dist/renderers/presentations/layout.d.ts.map +1 -0
- package/dist/renderers/presentations/layout.js +88 -0
- package/dist/renderers/presentations/layout.js.map +1 -0
- package/dist/renderers/presentations/render.d.ts +4 -0
- package/dist/renderers/presentations/render.d.ts.map +1 -0
- package/dist/renderers/presentations/render.js +199 -0
- package/dist/renderers/presentations/render.js.map +1 -0
- package/dist/renderers/presentations/shapes.d.ts +5 -0
- package/dist/renderers/presentations/shapes.d.ts.map +1 -0
- package/dist/renderers/presentations/shapes.js +6 -0
- package/dist/renderers/presentations/shapes.js.map +1 -0
- package/dist/renderers/svg-values.d.ts +3 -0
- package/dist/renderers/svg-values.d.ts.map +1 -0
- package/dist/renderers/svg-values.js +13 -0
- package/dist/renderers/svg-values.js.map +1 -0
- package/dist/renderers/svg.d.ts +16 -0
- package/dist/renderers/svg.d.ts.map +1 -0
- package/dist/renderers/svg.js +260 -0
- package/dist/renderers/svg.js.map +1 -0
- package/dist/validation/index.d.ts +14 -0
- package/dist/validation/index.d.ts.map +1 -0
- package/dist/validation/index.js +291 -0
- package/dist/validation/index.js.map +1 -0
- package/dist/validation/layout.d.ts +10 -0
- package/dist/validation/layout.d.ts.map +1 -0
- package/dist/validation/layout.js +183 -0
- package/dist/validation/layout.js.map +1 -0
- package/dist/validation/options.d.ts +6 -0
- package/dist/validation/options.d.ts.map +1 -0
- package/dist/validation/options.js +29 -0
- package/dist/validation/options.js.map +1 -0
- package/dist/validation/recipe.d.ts +5 -0
- package/dist/validation/recipe.d.ts.map +1 -0
- package/dist/validation/recipe.js +30 -0
- package/dist/validation/recipe.js.map +1 -0
- package/dist/validation/render-options.d.ts +21 -0
- package/dist/validation/render-options.d.ts.map +1 -0
- package/dist/validation/render-options.js +36 -0
- package/dist/validation/render-options.js.map +1 -0
- package/package.json +56 -0
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { GLYPHS } from "./glyphs.js";
|
|
2
|
+
import { PROFILES } from "./profiles.js";
|
|
3
|
+
import { escapeXml as xml, svgNumber } from "../svg-values.js";
|
|
4
|
+
export function renderCinematic(run, effect, layout, id, x, baseline, fontStack, fitted = false) {
|
|
5
|
+
const n = fitted ? String : svgNumber;
|
|
6
|
+
if (layout.empty)
|
|
7
|
+
return { definitions: "", markup: "" };
|
|
8
|
+
const profile = PROFILES[effect.profile];
|
|
9
|
+
const { faceWidth: w, faceHeight: h, depth, blur } = layout;
|
|
10
|
+
const originX = x + layout.insetX;
|
|
11
|
+
const originY = baseline - h;
|
|
12
|
+
const glyphDefinitions = [];
|
|
13
|
+
let letters = "";
|
|
14
|
+
if (profile.angular) {
|
|
15
|
+
for (const c of new Set(layout.letters)) {
|
|
16
|
+
if (GLYPHS[c][1])
|
|
17
|
+
glyphDefinitions.push(`<path id="${id}-g${c.codePointAt(0)}" d="${GLYPHS[c][1]}"/>`);
|
|
18
|
+
}
|
|
19
|
+
let advance = 0;
|
|
20
|
+
layout.letters.forEach((c, index) => {
|
|
21
|
+
if (GLYPHS[c][1])
|
|
22
|
+
letters += `<use href="#${id}-g${c.codePointAt(0)}" transform="translate(${n(advance)} 0) scale(${n(run.style.fontSize / 100)})"/>`;
|
|
23
|
+
advance += layout.advances[index] + run.style.letterSpacing;
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
letters = `<text x="${n(w / profile.xScale / 2)}" text-anchor="middle" y="${run.style.fontSize}" font-family="${fontStack}" font-size="${run.style.fontSize}" font-weight="${run.style.fontWeight}" font-style="${profile.italic ? "italic" : "normal"}" letter-spacing="${run.style.letterSpacing}" xml:space="preserve"${layout.direction ? ` direction="${layout.direction}"` : ""} transform="scale(${profile.xScale} ${profile.yScale})">${xml(run.text)}</text>`;
|
|
28
|
+
}
|
|
29
|
+
const use = (fill, extra = "") => `<use href="#${id}-face" fill="${fill}" ${extra}/>`;
|
|
30
|
+
let ornament = "";
|
|
31
|
+
if (effect.ornaments) {
|
|
32
|
+
ornament = `<path d="${profile.ornamentPath}" transform="scale(${n(w / 100)} ${n(h / 100)})" vector-effect="non-scaling-stroke"/>`;
|
|
33
|
+
ornament = `<g fill="url(#${id}-metal)" stroke="${effect.color}" stroke-width=".8">${ornament}</g>`;
|
|
34
|
+
}
|
|
35
|
+
let markup = ornament;
|
|
36
|
+
if (blur > 0)
|
|
37
|
+
markup += use(effect.color, `filter="url(#${id}-bloom)" opacity="${n(effect.glow * 0.7)}" stroke="${effect.color}" stroke-width="3"`);
|
|
38
|
+
for (let layer = depth; layer > 0; layer--)
|
|
39
|
+
markup += use(profile.shadow, `transform="translate(${layer} ${layer})" stroke="${profile.edge}" stroke-width="1"`);
|
|
40
|
+
markup += use(profile.edge, 'stroke="' + profile.edge + '" stroke-width="4"');
|
|
41
|
+
markup += use(`url(#${id}-metal)`, `stroke="${effect.color}" stroke-width="1.5"`);
|
|
42
|
+
markup += use("none", 'stroke="#ffffff" stroke-width=".5" opacity=".65" transform="translate(0 -.6)"');
|
|
43
|
+
const filter = blur > 0
|
|
44
|
+
? `<filter id="${id}-bloom" filterUnits="userSpaceOnUse" x="${n(-layout.insetX)}" y="${n(h - layout.ascent)}" width="${n(layout.width)}" height="${n(layout.ascent + layout.descent)}"><feGaussianBlur stdDeviation="${n(blur)}"/></filter>`
|
|
45
|
+
: "";
|
|
46
|
+
return {
|
|
47
|
+
definitions: `${glyphDefinitions.join("")}<g id="${id}-face" fill-rule="evenodd" stroke-linejoin="bevel">${letters}</g><linearGradient id="${id}-metal" x1="0" y1="0" x2="0" y2="1">${profile.stops.map(([offset, color]) => `<stop offset="${offset}" stop-color="${color}"/>`).join("")}</linearGradient>${filter}`,
|
|
48
|
+
markup: `<g transform="translate(${n(originX)} ${n(originY)})">${markup}</g>`,
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=render.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"render.js","sourceRoot":"","sources":["../../../src/renderers/cinematic/render.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { CompiledPreview, ConsoleArgs, SceneV1 } from "../model/types.js";
|
|
2
|
+
export declare const FONT_STACKS: {
|
|
3
|
+
readonly sans: "Arial,Helvetica,sans-serif";
|
|
4
|
+
readonly mono: "Consolas,Liberation Mono,monospace";
|
|
5
|
+
readonly serif: "Georgia,Times New Roman,serif";
|
|
6
|
+
};
|
|
7
|
+
export declare function literalPercent(value: string): string;
|
|
8
|
+
export declare function renderCss(scene: SceneV1): {
|
|
9
|
+
args: ConsoleArgs;
|
|
10
|
+
preview: CompiledPreview;
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=css.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"css.d.ts","sourceRoot":"","sources":["../../src/renderers/css.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,WAAW,EACX,OAAO,EAER,MAAM,mBAAmB,CAAC;AAE3B,eAAO,MAAM,WAAW;;;;CAId,CAAC;AAEX,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEpD;AAkDD,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG;IACzC,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,EAAE,eAAe,CAAC;CAC1B,CAsBA"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
export const FONT_STACKS = {
|
|
2
|
+
sans: "Arial,Helvetica,sans-serif",
|
|
3
|
+
mono: "Consolas,Liberation Mono,monospace",
|
|
4
|
+
serif: "Georgia,Times New Roman,serif",
|
|
5
|
+
};
|
|
6
|
+
export function literalPercent(value) {
|
|
7
|
+
return value.replaceAll("%", "%%");
|
|
8
|
+
}
|
|
9
|
+
function runStyle(run) {
|
|
10
|
+
const style = {
|
|
11
|
+
color: run.style.color,
|
|
12
|
+
"font-size": `${run.style.fontSize}px`,
|
|
13
|
+
"font-weight": String(run.style.fontWeight),
|
|
14
|
+
"font-family": FONT_STACKS[run.style.fontFamily],
|
|
15
|
+
"letter-spacing": `${run.style.letterSpacing}px`,
|
|
16
|
+
"line-height": "1.5",
|
|
17
|
+
};
|
|
18
|
+
const shadows = [];
|
|
19
|
+
for (const effect of run.effects) {
|
|
20
|
+
switch (effect.kind) {
|
|
21
|
+
case "badge":
|
|
22
|
+
style.background = effect.color;
|
|
23
|
+
style.color = "#071014";
|
|
24
|
+
style.padding = "4px 12px";
|
|
25
|
+
style["border-radius"] = "6px";
|
|
26
|
+
break;
|
|
27
|
+
case "neon": {
|
|
28
|
+
const blur = Number((4 + effect.intensity * 12).toFixed(2));
|
|
29
|
+
style.color = effect.color;
|
|
30
|
+
// DevTools applies paint containment to styled spans. Reserve room for
|
|
31
|
+
// the halo so it is not cut off at the first/last glyph.
|
|
32
|
+
style.padding = `${Math.ceil(blur)}px`;
|
|
33
|
+
shadows.push(`0 0 ${Number((2 + effect.intensity * 4).toFixed(2))}px ${effect.color}`, `0 0 ${blur}px ${effect.color}`);
|
|
34
|
+
break;
|
|
35
|
+
}
|
|
36
|
+
case "rgbSplit":
|
|
37
|
+
style.padding = `${effect.offset + 1}px`;
|
|
38
|
+
shadows.push(`${-effect.offset}px 0 #ff526f`, `${effect.offset}px 0 #35dfff`);
|
|
39
|
+
break;
|
|
40
|
+
case "extruded":
|
|
41
|
+
style.padding = `${effect.depth + 1}px`;
|
|
42
|
+
for (let depth = 1; depth <= effect.depth; depth++)
|
|
43
|
+
shadows.push(`${depth}px ${depth}px ${effect.color}`);
|
|
44
|
+
break;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
if (shadows.length)
|
|
48
|
+
style["text-shadow"] = shadows.join(",");
|
|
49
|
+
return style;
|
|
50
|
+
}
|
|
51
|
+
export function renderCss(scene) {
|
|
52
|
+
let format = "";
|
|
53
|
+
const values = [];
|
|
54
|
+
const lines = scene.lines.map((line, index) => {
|
|
55
|
+
if (index > 0)
|
|
56
|
+
format += "\n";
|
|
57
|
+
return {
|
|
58
|
+
runs: line.runs.map((run) => {
|
|
59
|
+
const style = runStyle(run);
|
|
60
|
+
format += "%c%s";
|
|
61
|
+
values.push(Object.entries(style)
|
|
62
|
+
.map(([key, value]) => `${key}:${value}`)
|
|
63
|
+
.join(";"), literalPercent(run.text));
|
|
64
|
+
return { text: run.text, style };
|
|
65
|
+
}),
|
|
66
|
+
};
|
|
67
|
+
});
|
|
68
|
+
format += "%c";
|
|
69
|
+
values.push("");
|
|
70
|
+
return { args: [format, ...values], preview: { kind: "css", lines } };
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=css.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"css.js","sourceRoot":"","sources":["../../src/renderers/css.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { CardPresetId, PresentationStatus } from "../../model/types.js";
|
|
2
|
+
export declare function compactArtwork(id: CardPresetId, bg: string, accent: string, height: number, detailed: boolean, palette: PresentationStatus["palettes"][string] | undefined, status: string): string;
|
|
3
|
+
//# sourceMappingURL=compact-art.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compact-art.d.ts","sourceRoot":"","sources":["../../../src/renderers/presentations/compact-art.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAK7E,wBAAgB,cAAc,CAC5B,EAAE,EAAE,YAAY,EAChB,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,OAAO,EACjB,OAAO,EAAE,kBAAkB,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,GAAG,SAAS,EAC3D,MAAM,EAAE,MAAM,GACb,MAAM,CAyFR"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { rect as r, circle as c, path } from "./shapes.js";
|
|
2
|
+
const p = (d, stroke, extra = "") => path(d, "none", stroke, extra);
|
|
3
|
+
// Accepted original compact artwork. Geometry is immutable under fit/v1.
|
|
4
|
+
export function compactArtwork(id, bg, accent, height, detailed, palette, status) {
|
|
5
|
+
let value = r(0, 0, 360, height, bg, 12);
|
|
6
|
+
if (id === "buildReceipt")
|
|
7
|
+
value +=
|
|
8
|
+
r(4, 4, 352, height - 8, "#efeee5", 9) +
|
|
9
|
+
r(4, 15, 4, height - 30, accent, 2) +
|
|
10
|
+
r(238, 54, 88, 32, palette.background, 6, palette.stroke) +
|
|
11
|
+
p("M24 104H336M24 220H336", "#9ba99f", 'stroke-dasharray="3 4"') +
|
|
12
|
+
p(status === "PASSED"
|
|
13
|
+
? "M245 69l4 4 6-8"
|
|
14
|
+
: status === "FAILED"
|
|
15
|
+
? "M244 64l10 12m0-12-10 12"
|
|
16
|
+
: "M249 63l6 12h-12Zm0 4v3m0 2v1", palette.marker, 'stroke-width="1.5"') +
|
|
17
|
+
[...Array(detailed ? 22 : 0)]
|
|
18
|
+
.map((_, i) => p(`M354 ${12 + i * 12}l6 6-6 6`, bg))
|
|
19
|
+
.join("");
|
|
20
|
+
else if (id === "requestTrace")
|
|
21
|
+
value +=
|
|
22
|
+
r(246, 16, 88, 26, palette.background, 6) +
|
|
23
|
+
p("M24 96H336M24 242H336", "#35434d") +
|
|
24
|
+
p("M32 121V209", "#33434f", 'stroke-width="2"') +
|
|
25
|
+
[121, 165, 209]
|
|
26
|
+
.map((y) => c(32, y, 5, bg, accent, 'stroke-width="2"'))
|
|
27
|
+
.join("");
|
|
28
|
+
else if (id === "serviceReady")
|
|
29
|
+
value +=
|
|
30
|
+
r(249, 15, 88, 28, palette.background, 6) +
|
|
31
|
+
c(260, 28, 2.5, palette.marker) +
|
|
32
|
+
p("M24 137H336M24 271H336", "#3a4650") +
|
|
33
|
+
p("M144 150v107", "#39454e");
|
|
34
|
+
else if (id === "commandCard")
|
|
35
|
+
value +=
|
|
36
|
+
r(24, 156, 312, 64, "#101920", 8, "#374950") +
|
|
37
|
+
p("M27 163v50", "#4eaaad", 'stroke-width="2"') +
|
|
38
|
+
p("M34 181l6 7-6 7", accent, 'stroke-width="2"');
|
|
39
|
+
else if (id === "releaseBulletin")
|
|
40
|
+
value +=
|
|
41
|
+
r(270, 17, 67, 25, "#d7e3d7", 4) +
|
|
42
|
+
p("M24 52H336M24 216H336", "#becac0") +
|
|
43
|
+
r(24, 212, 54, 4, accent) +
|
|
44
|
+
c(27, 146, 2, "#38816e") +
|
|
45
|
+
c(27, 181, 2, "#38816e");
|
|
46
|
+
else if (id === "blueprint")
|
|
47
|
+
value +=
|
|
48
|
+
p("M50 74l37-21 39 21v45l-39 22-37-22ZM50 74l37 22 39-22M87 96v45M87 53v43", accent, 'stroke-width="1.4"') +
|
|
49
|
+
p("M50 119l37-23 39 23", "#72939e", 'stroke-dasharray="3 3"') +
|
|
50
|
+
p("M37 52v90M32 54h10M32 141h10M24 256H336", "#638b99") +
|
|
51
|
+
c(87, 96, 4, bg, "#c1e0e3") +
|
|
52
|
+
r(24, 253, 28, 3, accent);
|
|
53
|
+
else if (id === "contourMap")
|
|
54
|
+
value +=
|
|
55
|
+
Array.from({ length: detailed ? 5 : 2 }, (_, i) => p(`M${220 + i * 18} 48c-12 9 26 12 18 26s-30 13-9 21`, i === 2 ? accent : "#345448", 'stroke-width="1.1"')).join("") + r(24, 202, 38, 2, "#6cc4ac");
|
|
56
|
+
else if (id === "letterpress")
|
|
57
|
+
value +=
|
|
58
|
+
r(8, 8, 344, height - 16, "none", 8, "#f7f6ec") +
|
|
59
|
+
p("M24 53H336", "#d4d5c7") +
|
|
60
|
+
p("M24 55H336", "#f4f4e9") +
|
|
61
|
+
r(24, 201, 51, 3, accent) +
|
|
62
|
+
(detailed ? c(329, 238, 4, "#d5d9cd", "#f5f5ea") : "");
|
|
63
|
+
else if (id === "signalHalftone")
|
|
64
|
+
value +=
|
|
65
|
+
c(271, 76, 25, "#386c60") +
|
|
66
|
+
`<defs><pattern id="compact-dots" width="6" height="6" patternUnits="userSpaceOnUse">${c(2.7, 2.7, 1.65, accent)}</pattern></defs>` +
|
|
67
|
+
(detailed ? c(300, 69, 29, "url(#compact-dots)") : "") +
|
|
68
|
+
p("M24 254H336", "#ccd0be");
|
|
69
|
+
else if (id === "orbital")
|
|
70
|
+
value +=
|
|
71
|
+
c(84, 77, 42, "none", "#354d5b") +
|
|
72
|
+
(detailed ? c(84, 77, 27, "none", "#405e6b") : "") +
|
|
73
|
+
`<ellipse cx="84" cy="77" rx="60" ry="18" fill="none" stroke="#62888f" transform="rotate(-32 84 77)"/>` +
|
|
74
|
+
p("M61 41A42 42 0 0 1 111 43", accent, 'stroke-width="2"') +
|
|
75
|
+
c(129, 51, 4, "#deb578") +
|
|
76
|
+
c(84, 77, 2, "#a0c3c8") +
|
|
77
|
+
p("M24 267H336", "#31434f");
|
|
78
|
+
return value;
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=compact-art.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compact-art.js","sourceRoot":"","sources":["../../../src/renderers/presentations/compact-art.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { Diagnostic, SceneV1, TextStyle } from "../../model/types.js";
|
|
2
|
+
/** Conservative local-font estimate; never a claim of portable exact metrics. */
|
|
3
|
+
export declare function estimatedTextWidth(text: string, style: TextStyle): number;
|
|
4
|
+
export declare function presentationDiagnostics(scene: SceneV1, fitting?: boolean): Diagnostic[];
|
|
5
|
+
//# sourceMappingURL=layout.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../../../src/renderers/presentations/layout.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAqB3E,iFAAiF;AACjF,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,GAAG,MAAM,CAazE;AAED,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,OAAO,EACd,OAAO,UAAQ,GACd,UAAU,EAAE,CAwFd"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { presentationDescriptor, SEPARATOR_STYLE, } from "../../presentations/catalog.js";
|
|
2
|
+
/** Conservative advances for the bold members of the closed local-font stacks. */
|
|
3
|
+
function estimatedAdvance(c, family) {
|
|
4
|
+
// Spacing and combining marks may have advance or overhang; neither is free.
|
|
5
|
+
if (c.codePointAt(0) > 127)
|
|
6
|
+
return 2;
|
|
7
|
+
if (family === "mono")
|
|
8
|
+
return 0.66;
|
|
9
|
+
if (/\s/u.test(c))
|
|
10
|
+
return 0.36;
|
|
11
|
+
if (/[il]/u.test(c))
|
|
12
|
+
return 0.4;
|
|
13
|
+
if (c === "I")
|
|
14
|
+
return 0.6;
|
|
15
|
+
if (c === "W")
|
|
16
|
+
return 1.3;
|
|
17
|
+
if (/[Mmw@%]/u.test(c))
|
|
18
|
+
return 1.15;
|
|
19
|
+
if (/[A-Z]/u.test(c))
|
|
20
|
+
return family === "serif" ? 1 : 0.9;
|
|
21
|
+
if (/[a-z0-9]/u.test(c))
|
|
22
|
+
return family === "serif" ? 0.78 : 0.8;
|
|
23
|
+
return /[.,'!]/u.test(c) ? 0.5 : 0.95;
|
|
24
|
+
}
|
|
25
|
+
/** Conservative local-font estimate; never a claim of portable exact metrics. */
|
|
26
|
+
export function estimatedTextWidth(text, style) {
|
|
27
|
+
let units = 0, letters = 0;
|
|
28
|
+
for (const c of text) {
|
|
29
|
+
if (c === "\u200d")
|
|
30
|
+
continue;
|
|
31
|
+
letters++;
|
|
32
|
+
units += estimatedAdvance(c, style.fontFamily);
|
|
33
|
+
}
|
|
34
|
+
return (units * style.fontSize +
|
|
35
|
+
Math.max(0, letters - 1) * style.letterSpacing +
|
|
36
|
+
(letters ? style.fontSize * 0.12 : 0));
|
|
37
|
+
}
|
|
38
|
+
export function presentationDiagnostics(scene, fitting = false) {
|
|
39
|
+
if (!scene.presentation)
|
|
40
|
+
return [];
|
|
41
|
+
const descriptor = presentationDescriptor(scene.presentation.profile);
|
|
42
|
+
const diagnostics = [];
|
|
43
|
+
const error = (code, message, path) => diagnostics.push({ code, message, path, severity: "error" });
|
|
44
|
+
if (scene.lines.length !== descriptor.rows.length ||
|
|
45
|
+
scene.lines.some((l, i) => l.align !== "left" || l.runs.length !== descriptor.rows[i])) {
|
|
46
|
+
error("unsupported-presentation-structure", "Restore the card's named slots or detach it to edit structure.", ["lines"]);
|
|
47
|
+
return diagnostics;
|
|
48
|
+
}
|
|
49
|
+
for (const [li, line] of scene.lines.entries())
|
|
50
|
+
for (const [ri, run] of line.runs.entries()) {
|
|
51
|
+
const path = ["lines", li, "runs", ri];
|
|
52
|
+
const slot = descriptor.slots.find((s) => s.line === li && s.run === ri);
|
|
53
|
+
if (run.effects.length)
|
|
54
|
+
error("unsupported-combination", "Detach the card before adding effects or motion.", [...path, "effects"]);
|
|
55
|
+
const status = descriptor.status;
|
|
56
|
+
const statusKey = status?.source === "tone" &&
|
|
57
|
+
scene.presentation.profile === "requestTrace/v1"
|
|
58
|
+
? scene.presentation.tone
|
|
59
|
+
: run.text;
|
|
60
|
+
const palette = status &&
|
|
61
|
+
slot &&
|
|
62
|
+
status.slot === slot.id &&
|
|
63
|
+
Object.hasOwn(status.palettes, statusKey)
|
|
64
|
+
? status.palettes[statusKey]
|
|
65
|
+
: undefined;
|
|
66
|
+
const style = palette
|
|
67
|
+
? { ...slot.style, color: palette.ink }
|
|
68
|
+
: (slot?.style ?? SEPARATOR_STYLE);
|
|
69
|
+
const editable = slot
|
|
70
|
+
? (slot.editableStyleKeys ?? descriptor.editableStyleKeys)
|
|
71
|
+
: [];
|
|
72
|
+
if (Object.keys(style).some((k) => !editable.includes(k) && run.style[k] !== style[k]))
|
|
73
|
+
error("unsupported-presentation-style", "This card owns typography. Restore its style or detach it.", [...path, "style"]);
|
|
74
|
+
if (!slot) {
|
|
75
|
+
if (run.text !== " ")
|
|
76
|
+
error("unsupported-presentation-structure", "Restore the card's two-space separators or detach it.", [...path, "text"]);
|
|
77
|
+
continue;
|
|
78
|
+
}
|
|
79
|
+
if (slot.values && !slot.values.includes(run.text))
|
|
80
|
+
error("unsupported-presentation-content", "Choose a documented status word or use plain text.", [...path, "text"]);
|
|
81
|
+
if ([...run.text].length > slot.maxCodePoints ||
|
|
82
|
+
/[\t\n\u2028\u2029]/u.test(run.text) ||
|
|
83
|
+
(!fitting && estimatedTextWidth(run.text, run.style) > slot.safeWidth))
|
|
84
|
+
error("presentation-overflow", `${slot.label} exceeds its rich layout. Shorten it or choose plain text.`, [...path, "text"]);
|
|
85
|
+
}
|
|
86
|
+
return diagnostics;
|
|
87
|
+
}
|
|
88
|
+
//# sourceMappingURL=layout.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"layout.js","sourceRoot":"","sources":["../../../src/renderers/presentations/layout.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../../src/renderers/presentations/render.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAIpD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAI7D,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,OAAO,EACd,IAAI,CAAC,EAAE,aAAa,GACnB,MAAM,CA0OR"}
|
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
import { presentationDescriptor } from "../../presentations/catalog.js";
|
|
2
|
+
import { escapeXml as xml, svgNumber } from "../svg-values.js";
|
|
3
|
+
import { CARD_FONT_STACKS as fonts } from "../../presentations/fonts.js";
|
|
4
|
+
import { textDirection } from "../../layout/metrics.js";
|
|
5
|
+
import { compactArtwork } from "./compact-art.js";
|
|
6
|
+
import { rect, line, path, circle } from "./shapes.js";
|
|
7
|
+
export function renderPresentation(scene, plan) {
|
|
8
|
+
const n = plan ? String : svgNumber;
|
|
9
|
+
const presentation = scene.presentation;
|
|
10
|
+
const descriptor = presentationDescriptor(presentation.profile);
|
|
11
|
+
const { width, height, padding, background, borderRadius } = scene.surface;
|
|
12
|
+
const cardWidth = plan?.cardLayout?.width ?? 720;
|
|
13
|
+
const cardHeight = plan?.cardLayout?.height ?? 240;
|
|
14
|
+
const scale = Math.min((width - 2 * padding) / cardWidth, (height - 2 * padding) / cardHeight);
|
|
15
|
+
const accent = presentation.accent;
|
|
16
|
+
const detailed = presentation.detail === "standard";
|
|
17
|
+
const status = descriptor.status;
|
|
18
|
+
const statusSlot = descriptor.slots.find((s) => s.id === status?.slot);
|
|
19
|
+
const palette = status && statusSlot
|
|
20
|
+
? status.palettes[status.source === "tone" && presentation.profile === "requestTrace/v1"
|
|
21
|
+
? presentation.tone
|
|
22
|
+
: scene.lines[statusSlot.line].runs[statusSlot.run].text]
|
|
23
|
+
: undefined;
|
|
24
|
+
let art = "";
|
|
25
|
+
if (plan?.cardLayout?.compact) {
|
|
26
|
+
art = compactArtwork(descriptor.id, background, accent, cardHeight, detailed, palette, descriptor.id === "buildReceipt" ? scene.lines[1].runs[2].text : "");
|
|
27
|
+
}
|
|
28
|
+
else if (descriptor.id === "buildReceipt") {
|
|
29
|
+
const status = scene.lines[1].runs[2].text;
|
|
30
|
+
art =
|
|
31
|
+
rect(0, 0, 720, 240, background, borderRadius) +
|
|
32
|
+
rect(4, 4, 712, 232, "#efeee5", 9) +
|
|
33
|
+
rect(4, 14, 5, 212, accent, 2) +
|
|
34
|
+
line(32, 108, 677, 108, "#9ba99f", 'stroke-dasharray="3 4"') +
|
|
35
|
+
line(32, 187, 677, 187, "#9ba99f", 'stroke-dasharray="3 4"') +
|
|
36
|
+
rect(540, 34, 123, 40, palette.background, 7, palette.stroke);
|
|
37
|
+
art +=
|
|
38
|
+
status === "PASSED"
|
|
39
|
+
? path("M551 52l5 5 8-11", "none", palette.marker, 'stroke-width="2"')
|
|
40
|
+
: status === "FAILED"
|
|
41
|
+
? path("M552 47l10 12m0-12-10 12", "none", palette.marker, 'stroke-width="2"')
|
|
42
|
+
: path("M557 44l7 15h-14Zm0 5v4m0 2v1", "none", palette.marker, 'stroke-width="1.5"');
|
|
43
|
+
art +=
|
|
44
|
+
line(216, 126, 216, 168, "#d4d8cc") + line(417, 126, 417, 168, "#d4d8cc");
|
|
45
|
+
if (detailed)
|
|
46
|
+
for (let y = 12; y <= 216; y += 12)
|
|
47
|
+
art += path(`M710 ${y}l10 6-10 6`, background, background, 'stroke-width="1"');
|
|
48
|
+
}
|
|
49
|
+
else if (descriptor.id === "letterpress") {
|
|
50
|
+
art =
|
|
51
|
+
rect(0, 0, 720, 240, background, borderRadius, "#d5d5c8") +
|
|
52
|
+
rect(9, 9, 702, 222, "none", 8, "#f7f6ec") +
|
|
53
|
+
line(36, 51, 684, 51, "#d4d5c7") +
|
|
54
|
+
line(36, 53, 684, 53, "#f4f4e9") +
|
|
55
|
+
rect(38, 182, 51, 3, accent);
|
|
56
|
+
if (detailed)
|
|
57
|
+
art +=
|
|
58
|
+
'<circle cx="678" cy="213" r="5" fill="#d5d9cd" stroke="#f5f5ea"/>';
|
|
59
|
+
}
|
|
60
|
+
else if (descriptor.id === "requestTrace") {
|
|
61
|
+
art =
|
|
62
|
+
rect(0, 0, 720, 240, background, borderRadius, "#31414c") +
|
|
63
|
+
rect(555, 13, 123, 29, palette.background, 7) +
|
|
64
|
+
line(32, 98, 686, 98, "#35434d") +
|
|
65
|
+
line(62, 126, 616, 126, "#33434f", 'stroke-width="2"') +
|
|
66
|
+
[62, 295, 540]
|
|
67
|
+
.map((x) => circle(x, 126, 6, "#151f26", accent, 'stroke-width="2"'))
|
|
68
|
+
.join("") +
|
|
69
|
+
line(32, 202, 686, 202, "#303e47");
|
|
70
|
+
if (detailed)
|
|
71
|
+
art += path("M645 121l5 5-5 5", "none", "#627781", 'stroke-width="1.5"');
|
|
72
|
+
}
|
|
73
|
+
else if (descriptor.id === "serviceReady") {
|
|
74
|
+
art =
|
|
75
|
+
rect(0, 0, 720, 240, background, borderRadius, "#3c4a54") +
|
|
76
|
+
rect(26, 23, 78, 92, "#111b22", 12, "#334650") +
|
|
77
|
+
rect(42, 44, 45, 46, "#1a2b34", 7, "#588e98") +
|
|
78
|
+
path("M51 57h26M51 68h17M51 79h26", "none", accent, 'stroke-width="2"') +
|
|
79
|
+
rect(551, 24, 112, 34, palette.background, 7) +
|
|
80
|
+
circle(565, 41, 3, palette.marker) +
|
|
81
|
+
line(32, 142, 684, 142, "#3a4650") +
|
|
82
|
+
line(262, 158, 262, 193, "#39454e") +
|
|
83
|
+
line(499, 158, 499, 193, "#39454e") +
|
|
84
|
+
line(32, 205, 684, 205, "#303e46");
|
|
85
|
+
}
|
|
86
|
+
else if (descriptor.id === "commandCard") {
|
|
87
|
+
art =
|
|
88
|
+
rect(0, 0, 720, 240, background, borderRadius, "#3c4952") +
|
|
89
|
+
line(109, 48, 109, 105, "#3d5057") +
|
|
90
|
+
rect(28, 126, 664, 64, "#101920", 8, "#374950") +
|
|
91
|
+
line(31, 133, 31, 183, "#4eaaad", 'stroke-width="2"') +
|
|
92
|
+
path("M45 149l8 7-8 7", "none", accent, 'stroke-width="2"');
|
|
93
|
+
if (detailed)
|
|
94
|
+
art += line(630, 163, 645, 163, "#5a747e", 'stroke-width="2"');
|
|
95
|
+
}
|
|
96
|
+
else if (descriptor.id === "releaseBulletin") {
|
|
97
|
+
art =
|
|
98
|
+
rect(0, 0, 720, 240, background, borderRadius, "#ced3c7") +
|
|
99
|
+
line(32, 50, 688, 50, "#bbc8bd") +
|
|
100
|
+
rect(589, 14, 98, 29, "#d7e3d7", 4) +
|
|
101
|
+
circle(37, 151, 2, "#38816e") +
|
|
102
|
+
circle(337, 151, 2, "#38816e") +
|
|
103
|
+
line(32, 184, 688, 184, "#becac0") +
|
|
104
|
+
rect(32, 180, 62, 4, accent);
|
|
105
|
+
if (detailed)
|
|
106
|
+
art += line(32, 58, 688, 58, "#dee2d6");
|
|
107
|
+
}
|
|
108
|
+
else if (descriptor.id === "blueprint") {
|
|
109
|
+
art = rect(0, 0, 720, 240, background, borderRadius, "#3b5660");
|
|
110
|
+
if (detailed)
|
|
111
|
+
art +=
|
|
112
|
+
`<defs><pattern id="card-grid" width="24" height="24" patternUnits="userSpaceOnUse">${path("M24 0H0V24", "none", "#24424c", 'stroke-width="0.6"')}</pattern></defs>` +
|
|
113
|
+
rect(12, 12, 216, 216, "url(#card-grid)", 6);
|
|
114
|
+
art +=
|
|
115
|
+
path("M58 96l62-35 64 35v73l-64 36-62-36ZM58 96l62 36 64-36M120 132v73M120 61v71", "none", accent, 'stroke-width="1.4"') +
|
|
116
|
+
path("M58 169l62-37 64 37", "none", "#72939e", 'stroke-width="0.8" stroke-dasharray="4 4"');
|
|
117
|
+
if (detailed)
|
|
118
|
+
art +=
|
|
119
|
+
line(48, 53, 48, 209, "#638b99", 'stroke-width="0.8"') +
|
|
120
|
+
line(42, 61, 54, 61, "#86a9b4") +
|
|
121
|
+
line(42, 205, 54, 205, "#86a9b4") +
|
|
122
|
+
line(66, 224, 176, 224, "#638b99", 'stroke-width="0.8"') +
|
|
123
|
+
line(63, 220, 70, 228, "#86a9b4") +
|
|
124
|
+
line(172, 220, 180, 228, "#86a9b4");
|
|
125
|
+
art +=
|
|
126
|
+
circle(120, 132, 6, background, "#c1e0e3") +
|
|
127
|
+
line(248, 166, 675, 166, "#395563") +
|
|
128
|
+
rect(249, 181, 30, 3, "#6cbabf");
|
|
129
|
+
}
|
|
130
|
+
else if (descriptor.id === "contourMap") {
|
|
131
|
+
art = rect(0, 0, 720, 240, background, borderRadius, "#3b5149");
|
|
132
|
+
// Fourteen authored curves at most, independent of input text or time.
|
|
133
|
+
for (let i = 0; i < 14; i++) {
|
|
134
|
+
if (!detailed && i !== 3 && i % 3 !== 0)
|
|
135
|
+
continue;
|
|
136
|
+
const x = 498 + 13 * i;
|
|
137
|
+
art += path(`M${x} 0C${x - 35} 41 ${x + 88} 61 ${x + 52} 111S${x - 49} 183 ${x} 240`, "none", i === 3 ? accent : "#345448", `stroke-width="${i === 3 ? 1.5 : 0.8}"`);
|
|
138
|
+
}
|
|
139
|
+
art += rect(30, 181, 38, 2, "#6cc4ac");
|
|
140
|
+
if (detailed)
|
|
141
|
+
art +=
|
|
142
|
+
circle(596, 160, 4, background, "#9ecfb9", 'stroke-width="1.2"') +
|
|
143
|
+
line(586, 160, 606, 160, "#89b9a7", 'stroke-width="0.6"') +
|
|
144
|
+
line(596, 150, 596, 170, "#89b9a7", 'stroke-width="0.6"');
|
|
145
|
+
}
|
|
146
|
+
else if (descriptor.id === "signalHalftone") {
|
|
147
|
+
art =
|
|
148
|
+
rect(0, 0, 720, 240, background, borderRadius, "#d6d2c1") +
|
|
149
|
+
circle(114, 123, 79, "#386c60");
|
|
150
|
+
if (detailed)
|
|
151
|
+
art +=
|
|
152
|
+
`<defs><pattern id="card-dots" width="6" height="6" patternUnits="userSpaceOnUse">${circle(2.7, 2.7, 1.65, accent)}</pattern></defs>` +
|
|
153
|
+
circle(151, 117, 84, "url(#card-dots)");
|
|
154
|
+
art +=
|
|
155
|
+
path("M28 204h190M244 24v192", "none", "#b5bbab", 'stroke-width="0.8"') +
|
|
156
|
+
line(271, 195, 678, 195, "#ccd0be");
|
|
157
|
+
}
|
|
158
|
+
else if (descriptor.id === "orbital") {
|
|
159
|
+
art =
|
|
160
|
+
rect(0, 0, 720, 240, background, borderRadius, "#344551") +
|
|
161
|
+
circle(128, 126, 77, "none", "#354d5b");
|
|
162
|
+
if (detailed)
|
|
163
|
+
art +=
|
|
164
|
+
circle(128, 126, 57, "none", "#405e6b") +
|
|
165
|
+
circle(128, 126, 33, "none", "#506d77");
|
|
166
|
+
art +=
|
|
167
|
+
'<ellipse cx="128" cy="126" rx="107" ry="32" fill="none" stroke="#62888f" stroke-width="1.1" transform="rotate(-32 128 126)"/>' +
|
|
168
|
+
path("M87 61A77 77 0 0 1 178 68", "none", accent, 'stroke-width="2"') +
|
|
169
|
+
circle(207, 80, 5, "#deb578") +
|
|
170
|
+
circle(128, 126, 3, "#a0c3c8") +
|
|
171
|
+
line(128, 113, 128, 139, "#668895", 'stroke-width="0.8"') +
|
|
172
|
+
line(115, 126, 141, 126, "#668895", 'stroke-width="0.8"') +
|
|
173
|
+
line(264, 174, 681, 174, "#31434f");
|
|
174
|
+
}
|
|
175
|
+
const texts = (plan?.cardTexts ??
|
|
176
|
+
descriptor.slots.map((slot) => ({
|
|
177
|
+
slot,
|
|
178
|
+
text: scene.lines[slot.line].runs[slot.run].text,
|
|
179
|
+
baseline: slot.y,
|
|
180
|
+
})))
|
|
181
|
+
.map(({ slot, text: value, baseline }) => {
|
|
182
|
+
const run = scene.lines[slot.line].runs[slot.run];
|
|
183
|
+
const direction = plan ? textDirection(value) : undefined;
|
|
184
|
+
const anchor = direction === "rtl"
|
|
185
|
+
? slot.anchor === "start"
|
|
186
|
+
? "end"
|
|
187
|
+
: slot.anchor === "middle"
|
|
188
|
+
? "middle"
|
|
189
|
+
: "start"
|
|
190
|
+
: slot.anchor;
|
|
191
|
+
const text = (x, y, color, decoration = false) => `<text ${decoration ? 'aria-hidden="true"' : `data-slot="${slot.id}"`} x="${x}" y="${y}" fill="${color}" font-size="${run.style.fontSize}" font-family="${fonts[run.style.fontFamily]}" font-weight="${run.style.fontWeight}" letter-spacing="${run.style.letterSpacing}" text-anchor="${anchor}" xml:space="preserve"${direction ? ` direction="${direction}"` : ""}>${xml(value)}</text>`;
|
|
192
|
+
return ((descriptor.id === "letterpress" && slot.id === "title"
|
|
193
|
+
? text(plan?.cardLayout?.compact ? slot.x - 0.2 : 35.8, baseline + 1.3, "#faf9ef", true)
|
|
194
|
+
: "") + text(slot.x, baseline, run.style.color));
|
|
195
|
+
})
|
|
196
|
+
.join("");
|
|
197
|
+
return `<svg xmlns="http://www.w3.org/2000/svg" width="${width}" height="${height}" viewBox="0 0 ${width} ${height}">${rect(0, 0, width, height, background, borderRadius)}<g transform="translate(${n((width - cardWidth * scale) / 2)} ${n((height - cardHeight * scale) / 2)}) scale(${n(scale)})">${art}${texts}</g></svg>`;
|
|
198
|
+
}
|
|
199
|
+
//# sourceMappingURL=render.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"render.js","sourceRoot":"","sources":["../../../src/renderers/presentations/render.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export declare const rect: (x: number, y: number, w: number, h: number, fill: string, radius?: number, stroke?: string) => string;
|
|
2
|
+
export declare const line: (x1: number, y1: number, x2: number, y2: number, color: string, extra?: string) => string;
|
|
3
|
+
export declare const path: (d: string, fill: string, stroke: string, extra?: string) => string;
|
|
4
|
+
export declare const circle: (x: number, y: number, r: number, fill: string, stroke?: string, extra?: string) => string;
|
|
5
|
+
//# sourceMappingURL=shapes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shapes.d.ts","sourceRoot":"","sources":["../../../src/renderers/presentations/shapes.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,IAAI,GACf,GAAG,MAAM,EACT,GAAG,MAAM,EACT,GAAG,MAAM,EACT,GAAG,MAAM,EACT,MAAM,MAAM,EACZ,eAAU,EACV,eAAe,WAEwF,CAAC;AAC1G,eAAO,MAAM,IAAI,GACf,IAAI,MAAM,EACV,IAAI,MAAM,EACV,IAAI,MAAM,EACV,IAAI,MAAM,EACV,OAAO,MAAM,EACb,cAAU,WAEsE,CAAC;AACnF,eAAO,MAAM,IAAI,GAAI,GAAG,MAAM,EAAE,MAAM,MAAM,EAAE,QAAQ,MAAM,EAAE,cAAU,WACT,CAAC;AAChE,eAAO,MAAM,MAAM,GACjB,GAAG,MAAM,EACT,GAAG,MAAM,EACT,GAAG,MAAM,EACT,MAAM,MAAM,EACZ,eAAe,EACf,cAAU,WAEyE,CAAC"}
|