@sgummalla-works/sketchon 0.1.0 → 0.3.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.
Files changed (66) hide show
  1. package/README.md +40 -4
  2. package/dist/adapters/assets.browser.d.ts +4 -0
  3. package/dist/adapters/assets.browser.d.ts.map +1 -0
  4. package/dist/adapters/assets.browser.js +64 -0
  5. package/dist/adapters/assets.browser.js.map +1 -0
  6. package/dist/adapters/assets.d.ts +34 -0
  7. package/dist/adapters/assets.d.ts.map +1 -0
  8. package/dist/adapters/assets.js +36 -0
  9. package/dist/adapters/assets.js.map +1 -0
  10. package/dist/adapters/assets.node.d.ts +4 -0
  11. package/dist/adapters/assets.node.d.ts.map +1 -0
  12. package/dist/adapters/assets.node.js +16 -0
  13. package/dist/adapters/assets.node.js.map +1 -0
  14. package/dist/adapters/baseline.d.ts.map +1 -1
  15. package/dist/adapters/baseline.js +9 -7
  16. package/dist/adapters/baseline.js.map +1 -1
  17. package/dist/adapters/elk.d.ts.map +1 -1
  18. package/dist/adapters/elk.js +11 -9
  19. package/dist/adapters/elk.js.map +1 -1
  20. package/dist/adapters/emoji-code.d.ts +8 -0
  21. package/dist/adapters/emoji-code.d.ts.map +1 -0
  22. package/dist/adapters/emoji-code.js +41 -0
  23. package/dist/adapters/emoji-code.js.map +1 -0
  24. package/dist/adapters/emoji.d.ts +2 -4
  25. package/dist/adapters/emoji.d.ts.map +1 -1
  26. package/dist/adapters/emoji.js +8 -34
  27. package/dist/adapters/emoji.js.map +1 -1
  28. package/dist/adapters/fonts.d.ts +3 -8
  29. package/dist/adapters/fonts.d.ts.map +1 -1
  30. package/dist/adapters/fonts.js +7 -4
  31. package/dist/adapters/fonts.js.map +1 -1
  32. package/dist/adapters/satori.d.ts.map +1 -1
  33. package/dist/adapters/satori.js +36 -33
  34. package/dist/adapters/satori.js.map +1 -1
  35. package/dist/adapters/sequence.d.ts.map +1 -1
  36. package/dist/adapters/sequence.js +19 -13
  37. package/dist/adapters/sequence.js.map +1 -1
  38. package/dist/adapters/svg.d.ts +7 -6
  39. package/dist/adapters/svg.d.ts.map +1 -1
  40. package/dist/adapters/svg.js +12 -11
  41. package/dist/adapters/svg.js.map +1 -1
  42. package/dist/composition.d.ts +54 -0
  43. package/dist/composition.d.ts.map +1 -0
  44. package/dist/composition.js +68 -0
  45. package/dist/composition.js.map +1 -0
  46. package/dist/constants.d.ts +3 -0
  47. package/dist/constants.d.ts.map +1 -1
  48. package/dist/constants.js +12 -0
  49. package/dist/constants.js.map +1 -1
  50. package/dist/domain/theme.d.ts +26 -0
  51. package/dist/domain/theme.d.ts.map +1 -1
  52. package/dist/domain/theme.js +52 -0
  53. package/dist/domain/theme.js.map +1 -1
  54. package/dist/index.browser.d.ts +15 -0
  55. package/dist/index.browser.d.ts.map +1 -0
  56. package/dist/index.browser.js +19 -0
  57. package/dist/index.browser.js.map +1 -0
  58. package/dist/index.d.ts +13 -55
  59. package/dist/index.d.ts.map +1 -1
  60. package/dist/index.js +18 -76
  61. package/dist/index.js.map +1 -1
  62. package/dist/ports/AssetProvider.d.ts +45 -0
  63. package/dist/ports/AssetProvider.d.ts.map +1 -0
  64. package/dist/ports/AssetProvider.js +14 -0
  65. package/dist/ports/AssetProvider.js.map +1 -0
  66. package/package.json +16 -4
package/README.md CHANGED
@@ -50,6 +50,40 @@ const { svg, width, height } = await renderDiagram(spec);
50
50
  // svg is a standalone <svg> string, ready for display or rasterisation
51
51
  ```
52
52
 
53
+ ## Node vs browser
54
+
55
+ The package runs in **both** environments and bundlers pick the right build
56
+ automatically (via the `browser` / `node` export conditions). The only
57
+ difference is where the Satori engine gets its fonts + emoji:
58
+
59
+ | Environment | Default asset source |
60
+ |---|---|
61
+ | **Node** (`index.js`) | Bundled Inter TTFs + Twemoji read from disk (`assets/`) |
62
+ | **Browser** (`index.browser.js`) | Inter weights + Twemoji SVGs fetched from a CDN, cached in memory |
63
+
64
+ Everything else — the spec, validation, routing, all four engines — is
65
+ identical. The public API is the same on both.
66
+
67
+ ```typescript
68
+ // In a browser app (e.g. React), the import resolves to the browser build:
69
+ import { renderDiagram } from '@sgummalla-works/sketchon';
70
+ const { svg } = await renderDiagram(spec); // fonts/emoji fetched on first render
71
+ ```
72
+
73
+ ### Overriding fonts / emoji (`configureAssets`)
74
+
75
+ The defaults work out of the box. To go fully offline (no CDN fetch) or use a
76
+ custom font, inject your own provider — only the methods you pass are replaced:
77
+
78
+ ```typescript
79
+ import { configureAssets } from '@sgummalla-works/sketchon';
80
+
81
+ configureAssets({
82
+ // e.g. bundle the font with your app and hand Satori the bytes directly:
83
+ loadFonts: () => [{ name: 'Inter', data: myInterArrayBuffer, weight: 400, style: 'normal' }],
84
+ });
85
+ ```
86
+
53
87
  ## Diagram kinds and engines
54
88
 
55
89
  | `kind` | Engine | Use for |
@@ -173,9 +207,11 @@ const spec: DiagramSpec = {
173
207
  | `TECHNIQUES` | Array of all registered engines (used by the lab harness). |
174
208
  | `getTechnique(key)` | Look up a specific engine by key. |
175
209
  | `DiagramSpec` + all spec types | Re-exported from `domain/spec.ts`. |
176
- | `validateSpec` | Re-exported from `domain/validate.ts`. |
177
- | `loadFonts` | Node-only: loads bundled Inter TTFs for Satori. |
178
- | `emojiToDataUri` | Node-only: resolves an emoji to a Twemoji SVG data-URI. |
210
+ | `configureAssets(overrides)` | Override the font/emoji source (`{ loadFonts?, emojiToDataUri? }`). Only the methods passed are replaced. |
211
+ | `setAssetProvider(provider)` | Replace the whole asset provider (advanced; the entries call this to bind the env default). |
212
+ | `AssetProvider`, `SketchonFont` | Types for the injection point. |
213
+ | `loadFonts` | **Node build only**: loads bundled Inter TTFs from disk for Satori. |
214
+ | `emojiToDataUri` | **Node build only**: resolves an emoji to a Twemoji SVG data-URI from disk. |
179
215
 
180
216
  ## How to add a new layout engine
181
217
 
@@ -194,4 +230,4 @@ npm run test:watch # watch mode
194
230
  npm run test:coverage # with coverage report
195
231
  ```
196
232
 
197
- Tests: **75 unit tests** across domain validation, application routing/registry, the adapters, and the architecture guard.
233
+ Tests: **85 unit tests** across domain validation, application routing/registry, the adapters (incl. the asset provider + browser provider), and the architecture guard.
@@ -0,0 +1,4 @@
1
+ import type { AssetProvider } from '../ports/AssetProvider.js';
2
+ /** Fetch-backed provider: CDN fonts + CDN emoji, both cached in memory. */
3
+ export declare const browserAssetProvider: AssetProvider;
4
+ //# sourceMappingURL=assets.browser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assets.browser.d.ts","sourceRoot":"","sources":["../../src/adapters/assets.browser.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,aAAa,EAAgB,MAAM,2BAA2B,CAAC;AAsD7E,2EAA2E;AAC3E,eAAO,MAAM,oBAAoB,EAAE,aAA6C,CAAC"}
@@ -0,0 +1,64 @@
1
+ /**
2
+ * Browser asset provider — the default binding for the browser entry
3
+ * (`index.browser.ts`). A browser has no filesystem, so it fetches the same
4
+ * Inter weights + Twemoji SVGs the Node provider reads from disk, caching each
5
+ * in memory so a given font/emoji is fetched at most once per session.
6
+ *
7
+ * No `node:` imports are reachable from here, so the browser entry's whole graph
8
+ * is bundler-safe. Consumers who want zero network at render time inject bundled
9
+ * fonts via `configureAssets({ loadFonts })`.
10
+ */
11
+ import { INTER_FONT_CDN_BASE, INTER_FONT_WEIGHTS, TWEMOJI_SVG_CDN_BASE } from '../constants.js';
12
+ import { emojiCode } from './emoji-code.js';
13
+ let fontCache = null;
14
+ const emojiCache = new Map(); // code -> data URI
15
+ /** UTF-8-safe base64 data-URI for an SVG string (the browser has no Buffer). */
16
+ function svgToDataUri(svg) {
17
+ const bytes = new TextEncoder().encode(svg);
18
+ let binary = '';
19
+ for (const b of bytes)
20
+ binary += String.fromCharCode(b);
21
+ return `data:image/svg+xml;base64,${btoa(binary)}`;
22
+ }
23
+ /** A 1×1 transparent SVG, returned when an emoji can't be resolved (offline / 404). */
24
+ const TRANSPARENT = svgToDataUri('<svg xmlns="http://www.w3.org/2000/svg" width="1" height="1"/>');
25
+ /**
26
+ * Fetch the Inter weights Satori renders text with, cached after the first call.
27
+ *
28
+ * @returns the font faces as ArrayBuffers.
29
+ */
30
+ async function loadFonts() {
31
+ if (fontCache)
32
+ return fontCache;
33
+ fontCache = await Promise.all(INTER_FONT_WEIGHTS.map(async (weight) => {
34
+ const res = await fetch(`${INTER_FONT_CDN_BASE}/inter-latin-${weight}-normal.woff`);
35
+ return { name: 'Inter', weight, style: 'normal', data: await res.arrayBuffer() };
36
+ }));
37
+ return fontCache;
38
+ }
39
+ /**
40
+ * Resolve an emoji to a Twemoji SVG data-URI via fetch + in-memory cache.
41
+ *
42
+ * @param emoji a single emoji grapheme.
43
+ * @returns a data-URI for the Twemoji SVG, or a transparent pixel if unresolved.
44
+ */
45
+ async function emojiToDataUri(emoji) {
46
+ const code = emojiCode(emoji);
47
+ const cached = emojiCache.get(code);
48
+ if (cached)
49
+ return cached;
50
+ let uri = TRANSPARENT;
51
+ try {
52
+ const res = await fetch(`${TWEMOJI_SVG_CDN_BASE}/${code}.svg`);
53
+ if (res.ok)
54
+ uri = svgToDataUri(await res.text());
55
+ }
56
+ catch {
57
+ // offline or fetch error — fall through to the transparent placeholder
58
+ }
59
+ emojiCache.set(code, uri);
60
+ return uri;
61
+ }
62
+ /** Fetch-backed provider: CDN fonts + CDN emoji, both cached in memory. */
63
+ export const browserAssetProvider = { loadFonts, emojiToDataUri };
64
+ //# sourceMappingURL=assets.browser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assets.browser.js","sourceRoot":"","sources":["../../src/adapters/assets.browser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAChG,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAG5C,IAAI,SAAS,GAA0B,IAAI,CAAC;AAC5C,MAAM,UAAU,GAAG,IAAI,GAAG,EAAkB,CAAC,CAAC,mBAAmB;AAEjE,gFAAgF;AAChF,SAAS,YAAY,CAAC,GAAW;IAC/B,MAAM,KAAK,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC5C,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,KAAK,MAAM,CAAC,IAAI,KAAK;QAAE,MAAM,IAAI,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IACxD,OAAO,6BAA6B,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;AACrD,CAAC;AAED,uFAAuF;AACvF,MAAM,WAAW,GAAG,YAAY,CAAC,gEAAgE,CAAC,CAAC;AAEnG;;;;GAIG;AACH,KAAK,UAAU,SAAS;IACtB,IAAI,SAAS;QAAE,OAAO,SAAS,CAAC;IAChC,SAAS,GAAG,MAAM,OAAO,CAAC,GAAG,CAC3B,kBAAkB,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAyB,EAAE;QAC7D,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,mBAAmB,gBAAgB,MAAM,cAAc,CAAC,CAAC;QACpF,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,WAAW,EAAE,EAAE,CAAC;IACnF,CAAC,CAAC,CACH,CAAC;IACF,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;GAKG;AACH,KAAK,UAAU,cAAc,CAAC,KAAa;IACzC,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;IAC9B,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACpC,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAE1B,IAAI,GAAG,GAAG,WAAW,CAAC;IACtB,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,oBAAoB,IAAI,IAAI,MAAM,CAAC,CAAC;QAC/D,IAAI,GAAG,CAAC,EAAE;YAAE,GAAG,GAAG,YAAY,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;IACnD,CAAC;IAAC,MAAM,CAAC;QACP,uEAAuE;IACzE,CAAC;IACD,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC1B,OAAO,GAAG,CAAC;AACb,CAAC;AAED,2EAA2E;AAC3E,MAAM,CAAC,MAAM,oBAAoB,GAAkB,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Asset provider registry — the single, swappable binding the Satori engine
3
+ * reads its fonts + emoji from.
4
+ *
5
+ * Holds a process-wide provider bound by the composition root: the Node entry
6
+ * binds the disk provider, the browser entry binds the fetch provider. Kept as
7
+ * a module singleton because rendering is a stateless, app-wide concern and the
8
+ * font/emoji caches are already module-scoped. Consumers override it (whole or
9
+ * in part) via `configureAssets` — dependency injection at the edge.
10
+ */
11
+ import type { AssetProvider } from '../ports/AssetProvider.js';
12
+ /**
13
+ * Bind the base provider. Called once by each composition root.
14
+ *
15
+ * @param provider the environment-specific provider (disk or fetch).
16
+ */
17
+ export declare function setAssetProvider(provider: AssetProvider): void;
18
+ /**
19
+ * Override part (or all) of the active provider — the public injection point.
20
+ * Merges over whatever the composition root bound, so a caller can replace just
21
+ * `loadFonts` (e.g. bundled offline fonts) and keep the default emoji resolver.
22
+ *
23
+ * @param overrides the provider methods to replace.
24
+ * @throws Error if no base provider has been bound yet (import an entry first).
25
+ */
26
+ export declare function configureAssets(overrides: Partial<AssetProvider>): void;
27
+ /**
28
+ * The active provider, used by the Satori engine at render time.
29
+ *
30
+ * @returns the bound AssetProvider.
31
+ * @throws Error if no provider has been bound (no package entry imported).
32
+ */
33
+ export declare function getAssetProvider(): AssetProvider;
34
+ //# sourceMappingURL=assets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assets.d.ts","sourceRoot":"","sources":["../../src/adapters/assets.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAQ/D;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI,CAE9D;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,IAAI,CAGvE;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,IAAI,aAAa,CAGhD"}
@@ -0,0 +1,36 @@
1
+ let current = null;
2
+ const UNBOUND = 'sketchon: no AssetProvider bound. Import "@sgummalla-works/sketchon" (its Node ' +
3
+ 'or browser entry binds one automatically), or call setAssetProvider() first.';
4
+ /**
5
+ * Bind the base provider. Called once by each composition root.
6
+ *
7
+ * @param provider the environment-specific provider (disk or fetch).
8
+ */
9
+ export function setAssetProvider(provider) {
10
+ current = provider;
11
+ }
12
+ /**
13
+ * Override part (or all) of the active provider — the public injection point.
14
+ * Merges over whatever the composition root bound, so a caller can replace just
15
+ * `loadFonts` (e.g. bundled offline fonts) and keep the default emoji resolver.
16
+ *
17
+ * @param overrides the provider methods to replace.
18
+ * @throws Error if no base provider has been bound yet (import an entry first).
19
+ */
20
+ export function configureAssets(overrides) {
21
+ if (!current)
22
+ throw new Error(UNBOUND);
23
+ current = { ...current, ...overrides };
24
+ }
25
+ /**
26
+ * The active provider, used by the Satori engine at render time.
27
+ *
28
+ * @returns the bound AssetProvider.
29
+ * @throws Error if no provider has been bound (no package entry imported).
30
+ */
31
+ export function getAssetProvider() {
32
+ if (!current)
33
+ throw new Error(UNBOUND);
34
+ return current;
35
+ }
36
+ //# sourceMappingURL=assets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assets.js","sourceRoot":"","sources":["../../src/adapters/assets.ts"],"names":[],"mappings":"AAYA,IAAI,OAAO,GAAyB,IAAI,CAAC;AAEzC,MAAM,OAAO,GACX,iFAAiF;IACjF,8EAA8E,CAAC;AAEjF;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,QAAuB;IACtD,OAAO,GAAG,QAAQ,CAAC;AACrB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,eAAe,CAAC,SAAiC;IAC/D,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;IACvC,OAAO,GAAG,EAAE,GAAG,OAAO,EAAE,GAAG,SAAS,EAAE,CAAC;AACzC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB;IAC9B,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;IACvC,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { AssetProvider } from '../ports/AssetProvider.js';
2
+ /** Disk-backed provider: bundled fonts, disk-cached emoji. */
3
+ export declare const nodeAssetProvider: AssetProvider;
4
+ //# sourceMappingURL=assets.node.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assets.node.d.ts","sourceRoot":"","sources":["../../src/adapters/assets.node.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE/D,8DAA8D;AAC9D,eAAO,MAAM,iBAAiB,EAAE,aAG/B,CAAC"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Node asset provider — the default binding for the Node entry (`index.ts`).
3
+ * Reads the bundled Inter fonts + Twemoji SVGs off disk. See `assets.browser.ts`
4
+ * for the browser (fetch) counterpart.
5
+ *
6
+ * This is the ONLY asset module that pulls in the filesystem loaders, so it must
7
+ * never be imported by the browser entry — keeping `fs` out of the browser graph.
8
+ */
9
+ import { loadFonts } from './fonts.js';
10
+ import { emojiToDataUri } from './emoji.js';
11
+ /** Disk-backed provider: bundled fonts, disk-cached emoji. */
12
+ export const nodeAssetProvider = {
13
+ loadFonts,
14
+ emojiToDataUri,
15
+ };
16
+ //# sourceMappingURL=assets.node.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assets.node.js","sourceRoot":"","sources":["../../src/adapters/assets.node.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAG5C,8DAA8D;AAC9D,MAAM,CAAC,MAAM,iBAAiB,GAAkB;IAC9C,SAAS;IACT,cAAc;CACf,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"baseline.d.ts","sourceRoot":"","sources":["../../src/adapters/baseline.ts"],"names":[],"mappings":"AA6BA,OAAO,KAAK,EAAuC,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAwI5F,eAAO,MAAM,iBAAiB,EAAE,SAsE/B,CAAC"}
1
+ {"version":3,"file":"baseline.d.ts","sourceRoot":"","sources":["../../src/adapters/baseline.ts"],"names":[],"mappings":"AA8BA,OAAO,KAAK,EAAuC,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAwI5F,eAAO,MAAM,iBAAiB,EAAE,SAuE/B,CAAC"}
@@ -14,6 +14,7 @@
14
14
  * prove out.
15
15
  */
16
16
  import { CANVAS_PADDING, LAYER_GAP, NODE_GAP, NODE_LABEL_FONT_SIZE, NODE_MAX_WIDTH, NODE_MIN_HEIGHT, NODE_MIN_WIDTH, NODE_PADDING_X, NODE_PADDING_Y, NODE_SUBLABEL_FONT_SIZE, } from '../constants.js';
17
+ import { resolveTheme } from '../domain/theme.js';
17
18
  import { esc, estimateTextWidth, palette, svgDocument } from './svg.js';
18
19
  /** Clamp helper. */
19
20
  function clamp(v, lo, hi) {
@@ -115,8 +116,8 @@ function layout(spec) {
115
116
  : rankCursor - LAYER_GAP + CANVAS_PADDING;
116
117
  return { sized, width, height };
117
118
  }
118
- function renderNode(s) {
119
- const p = palette(s.node.emphasis);
119
+ function renderNode(s, theme) {
120
+ const p = palette(s.node.emphasis, theme);
120
121
  const rounded = s.node.shape === 'rounded' || s.node.shape === 'pill' ? 10 : 4;
121
122
  const cx = s.x + s.w / 2;
122
123
  const labelY = s.node.sublabel ? s.y + s.h / 2 - 4 : s.y + s.h / 2;
@@ -133,6 +134,7 @@ export const baselineTechnique = {
133
134
  name: 'Baseline (layered)',
134
135
  blurb: 'Longest-path layering, naive spacing. The bar the real engines must clear.',
135
136
  render(spec) {
137
+ const theme = resolveTheme(spec.theme?.mode);
136
138
  const { sized, width, height } = layout(spec);
137
139
  const boxes = [];
138
140
  const nodeSvg = [];
@@ -147,7 +149,7 @@ export const baselineTechnique = {
147
149
  fontSize: NODE_LABEL_FONT_SIZE,
148
150
  role: 'node',
149
151
  });
150
- nodeSvg.push(renderNode(s));
152
+ nodeSvg.push(renderNode(s, theme));
151
153
  }
152
154
  const edges = [];
153
155
  const edgeSvg = [];
@@ -163,17 +165,17 @@ export const baselineTechnique = {
163
165
  edges.push({ x1, y1, x2, y2, fromId: e.from, toId: e.to });
164
166
  const dash = e.style === 'dashed' ? ' stroke-dasharray="6 4"' : e.style === 'dotted' ? ' stroke-dasharray="2 4"' : '';
165
167
  const marker = e.arrow === 'none' ? '' : ' marker-end="url(#arrow-filled)"';
166
- edgeSvg.push(`<line x1="${x1.toFixed(1)}" y1="${y1.toFixed(1)}" x2="${x2.toFixed(1)}" y2="${y2.toFixed(1)}" stroke="#64748b" stroke-width="1.5"${dash}${marker}/>`);
168
+ edgeSvg.push(`<line x1="${x1.toFixed(1)}" y1="${y1.toFixed(1)}" x2="${x2.toFixed(1)}" y2="${y2.toFixed(1)}" stroke="${theme.edgeDefault}" stroke-width="1.5"${dash}${marker}/>`);
167
169
  if (e.label) {
168
- edgeSvg.push(`<text x="${((x1 + x2) / 2).toFixed(1)}" y="${((y1 + y2) / 2 - 4).toFixed(1)}" font-size="12" fill="#475569" text-anchor="middle">${esc(e.label)}</text>`);
170
+ edgeSvg.push(`<text x="${((x1 + x2) / 2).toFixed(1)}" y="${((y1 + y2) / 2 - 4).toFixed(1)}" font-size="12" fill="${theme.textBody}" text-anchor="middle">${esc(e.label)}</text>`);
169
171
  }
170
172
  }
171
173
  const title = spec.title
172
- ? `<text x="${CANVAS_PADDING}" y="24" font-size="16" font-weight="600" fill="#0f172a">${esc(spec.title)}</text>`
174
+ ? `<text x="${CANVAS_PADDING}" y="24" font-size="16" font-weight="600" fill="${theme.textPrimary}">${esc(spec.title)}</text>`
173
175
  : '';
174
176
  // Edges first so nodes paint on top.
175
177
  const body = [title, ...edgeSvg, ...nodeSvg].join('\n');
176
- const svg = svgDocument(Math.ceil(width), Math.ceil(height), body);
178
+ const svg = svgDocument(Math.ceil(width), Math.ceil(height), body, theme);
177
179
  // The baseline draws plain boxes — it renders NONE of the rich structural
178
180
  // features (cards, columns, legend). Reporting all-false is the honest
179
181
  // input the fidelity metric needs to expose the gap on case #11.
@@ -1 +1 @@
1
- {"version":3,"file":"baseline.js","sourceRoot":"","sources":["../../src/adapters/baseline.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"baseline.js","sourceRoot":"","sources":["../../src/adapters/baseline.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"elk.d.ts","sourceRoot":"","sources":["../../src/adapters/elk.ts"],"names":[],"mappings":"AAmCA,OAAO,KAAK,EAAuC,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAqM5F,eAAO,MAAM,YAAY,EAAE,SAkE1B,CAAC"}
1
+ {"version":3,"file":"elk.d.ts","sourceRoot":"","sources":["../../src/adapters/elk.ts"],"names":[],"mappings":"AAoCA,OAAO,KAAK,EAAuC,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAsM5F,eAAO,MAAM,YAAY,EAAE,SAmE1B,CAAC"}
@@ -19,6 +19,7 @@ import ELKConstructor from 'elkjs/lib/elk.bundled.js';
19
19
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
20
20
  const ELK = ELKConstructor;
21
21
  import { CANVAS_PADDING, EDGE_LABEL_FONT_SIZE, NODE_LABEL_FONT_SIZE, NODE_MAX_WIDTH, NODE_MIN_HEIGHT, NODE_MIN_WIDTH, NODE_PADDING_X, NODE_PADDING_Y, NODE_SUBLABEL_FONT_SIZE, } from '../constants.js';
22
+ import { resolveTheme } from '../domain/theme.js';
22
23
  import { esc, estimateTextWidth, palette, svgDocument, wrapText } from './svg.js';
23
24
  const LABEL_LINE_HEIGHT = 18; // px per wrapped label line
24
25
  const elk = new ELK();
@@ -117,7 +118,7 @@ function buildElkGraph(spec) {
117
118
  };
118
119
  }
119
120
  /** Recursively collect absolute-positioned boxes (ELK child coords are parent-relative). */
120
- function collectBoxes(node, offsetX, offsetY, spec, boxes, svg) {
121
+ function collectBoxes(node, offsetX, offsetY, spec, boxes, svg, theme) {
121
122
  for (const child of node.children ?? []) {
122
123
  const ax = offsetX + (child.x ?? 0);
123
124
  const ay = offsetY + (child.y ?? 0);
@@ -125,17 +126,17 @@ function collectBoxes(node, offsetX, offsetY, spec, boxes, svg) {
125
126
  // Group container box behind its members.
126
127
  const gId = child.id.slice('group:'.length);
127
128
  const g = spec.groups?.find((gr) => gr.id === gId);
128
- const p = palette(g?.emphasis ?? 'muted');
129
+ const p = palette(g?.emphasis ?? 'muted', theme);
129
130
  svg.push(`<rect x="${ax.toFixed(1)}" y="${ay.toFixed(1)}" width="${(child.width ?? 0).toFixed(1)}" height="${(child.height ?? 0).toFixed(1)}" rx="10" fill="${p.fill}" fill-opacity="0.35" stroke="${p.stroke}" stroke-width="1.5" stroke-dasharray="5 4"/>`);
130
131
  if (child.labels?.[0]) {
131
132
  svg.push(`<text x="${(ax + 12).toFixed(1)}" y="${(ay + 18).toFixed(1)}" font-size="12" font-weight="600" fill="${p.text}">${esc(child.labels[0].text)}</text>`);
132
133
  }
133
134
  boxes.push({ id: child.id, x: ax, y: ay, w: child.width ?? 0, h: child.height ?? 0, label: '', fontSize: 12, role: 'group' });
134
- collectBoxes(child, ax, ay, spec, boxes, svg);
135
+ collectBoxes(child, ax, ay, spec, boxes, svg, theme);
135
136
  }
136
137
  else {
137
138
  const node2 = spec.nodes.find((n) => n.id === child.id);
138
- const p = palette(node2.emphasis);
139
+ const p = palette(node2.emphasis, theme);
139
140
  const w = child.width ?? 0;
140
141
  const h = child.height ?? 0;
141
142
  const isDiamond = node2.shape === 'diamond';
@@ -170,11 +171,12 @@ export const elkTechnique = {
170
171
  name: 'elkjs (layered graph)',
171
172
  blurb: 'ELK computes node coords + routes edges (orthogonal). Engine for flow/architecture/state/ER graphs.',
172
173
  async render(spec) {
174
+ const theme = resolveTheme(spec.theme?.mode);
173
175
  const graph = buildElkGraph(spec);
174
176
  const laid = (await elk.layout(graph));
175
177
  const boxes = [];
176
178
  const nodeSvg = [];
177
- collectBoxes(laid, CANVAS_PADDING, CANVAS_PADDING, spec, boxes, nodeSvg);
179
+ collectBoxes(laid, CANVAS_PADDING, CANVAS_PADDING, spec, boxes, nodeSvg, theme);
178
180
  // Edges (top-level; ELK routes them with absolute coords at root level).
179
181
  const placedEdges = [];
180
182
  const edgeSvg = [];
@@ -193,23 +195,23 @@ export const elkTechnique = {
193
195
  const dash = e.style === 'dashed' ? ' stroke-dasharray="6 4"' : e.style === 'dotted' ? ' stroke-dasharray="2 4"' : '';
194
196
  const d = pts.map((p, idx) => `${idx === 0 ? 'M' : 'L'}${p.x.toFixed(1)},${p.y.toFixed(1)}`).join(' ');
195
197
  const marker = e.arrow === 'none' ? '' : ' marker-end="url(#arrow-filled)"';
196
- edgeSvg.push(`<path d="${d}" fill="none" stroke="#64748b" stroke-width="1.5"${dash}${marker}/>`);
198
+ edgeSvg.push(`<path d="${d}" fill="none" stroke="${theme.edgeDefault}" stroke-width="1.5"${dash}${marker}/>`);
197
199
  // Record the last segment for crossing detection.
198
200
  const a = pts[pts.length - 2] ?? pts[0];
199
201
  const b = pts[pts.length - 1];
200
202
  placedEdges.push({ x1: a.x, y1: a.y, x2: b.x, y2: b.y, fromId: e.from, toId: e.to });
201
203
  if (e.label && le?.labels?.[0]) {
202
204
  const mid = pts[Math.floor(pts.length / 2)];
203
- edgeSvg.push(`<text x="${mid.x.toFixed(1)}" y="${(mid.y - 4).toFixed(1)}" font-size="${EDGE_LABEL_FONT_SIZE}" fill="#475569" text-anchor="middle">${esc(e.label)}</text>`);
205
+ edgeSvg.push(`<text x="${mid.x.toFixed(1)}" y="${(mid.y - 4).toFixed(1)}" font-size="${EDGE_LABEL_FONT_SIZE}" fill="${theme.textBody}" text-anchor="middle">${esc(e.label)}</text>`);
204
206
  }
205
207
  });
206
208
  const width = Math.ceil((laid.width ?? 0) + CANVAS_PADDING * 2);
207
209
  const height = Math.ceil((laid.height ?? 0) + CANVAS_PADDING * 2);
208
210
  const title = spec.title
209
- ? `<text x="${CANVAS_PADDING}" y="24" font-size="16" font-weight="600" fill="#0f172a">${esc(spec.title)}</text>`
211
+ ? `<text x="${CANVAS_PADDING}" y="24" font-size="16" font-weight="600" fill="${theme.textPrimary}">${esc(spec.title)}</text>`
210
212
  : '';
211
213
  const body = [title, ...edgeSvg, ...nodeSvg].join('\n');
212
- const svg = svgDocument(width, height, body);
214
+ const svg = svgDocument(width, height, body, theme);
213
215
  return {
214
216
  svg,
215
217
  width,
@@ -1 +1 @@
1
- {"version":3,"file":"elk.js","sourceRoot":"","sources":["../../src/adapters/elk.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"elk.js","sourceRoot":"","sources":["../../src/adapters/elk.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Twemoji asset code for an emoji grapheme (FE0F stripped unless ZWJ-joined).
3
+ *
4
+ * @param emoji a single emoji grapheme.
5
+ * @returns the dash-joined hex codepoint string used as the Twemoji filename.
6
+ */
7
+ export declare function emojiCode(emoji: string): string;
8
+ //# sourceMappingURL=emoji-code.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"emoji-code.d.ts","sourceRoot":"","sources":["../../src/adapters/emoji-code.ts"],"names":[],"mappings":"AA8BA;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAG/C"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Emoji codepoint derivation — pure and environment-agnostic (no filesystem,
3
+ * no Buffer). Both the Node and browser asset providers use it to turn an emoji
4
+ * grapheme into the Twemoji asset code.
5
+ *
6
+ * Codepoint derivation follows Twemoji's own filename rule: strip the FE0F
7
+ * variation selector UNLESS the sequence is a ZWJ join — otherwise the asset
8
+ * name won't match (e.g. ⚙️ U+2699 U+FE0F → "2699.svg").
9
+ */
10
+ const U200D = String.fromCharCode(0x200d); // zero-width joiner
11
+ const UFE0F = /️/g; // variation selector-16
12
+ /** Convert a (possibly surrogate-pair) string to dash-joined hex codepoints. */
13
+ function toCodePoint(s) {
14
+ const out = [];
15
+ let prev = 0;
16
+ for (let i = 0; i < s.length; i++) {
17
+ const c = s.charCodeAt(i);
18
+ if (prev) {
19
+ out.push((0x10000 + ((prev - 0xd800) << 10) + (c - 0xdc00)).toString(16));
20
+ prev = 0;
21
+ }
22
+ else if (c >= 0xd800 && c <= 0xdbff) {
23
+ prev = c;
24
+ }
25
+ else {
26
+ out.push(c.toString(16));
27
+ }
28
+ }
29
+ return out.join('-');
30
+ }
31
+ /**
32
+ * Twemoji asset code for an emoji grapheme (FE0F stripped unless ZWJ-joined).
33
+ *
34
+ * @param emoji a single emoji grapheme.
35
+ * @returns the dash-joined hex codepoint string used as the Twemoji filename.
36
+ */
37
+ export function emojiCode(emoji) {
38
+ const grapheme = emoji.indexOf(U200D) < 0 ? emoji.replace(UFE0F, '') : emoji;
39
+ return toCodePoint(grapheme);
40
+ }
41
+ //# sourceMappingURL=emoji-code.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"emoji-code.js","sourceRoot":"","sources":["../../src/adapters/emoji-code.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,MAAM,KAAK,GAAG,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,oBAAoB;AAC/D,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,wBAAwB;AAE5C,gFAAgF;AAChF,SAAS,WAAW,CAAC,CAAS;IAC5B,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAClC,MAAM,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAC1B,IAAI,IAAI,EAAE,CAAC;YACT,GAAG,CAAC,IAAI,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;YAC1E,IAAI,GAAG,CAAC,CAAC;QACX,CAAC;aAAM,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,IAAI,MAAM,EAAE,CAAC;YACtC,IAAI,GAAG,CAAC,CAAC;QACX,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACvB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,SAAS,CAAC,KAAa;IACrC,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAC7E,OAAO,WAAW,CAAC,QAAQ,CAAC,CAAC;AAC/B,CAAC"}
@@ -1,10 +1,8 @@
1
- /** Twemoji asset code for an emoji grapheme (FE0F stripped unless ZWJ-joined). */
2
- export declare function emojiCode(emoji: string): string;
3
1
  /**
4
2
  * Resolve an emoji to a base64 SVG data-URI for Satori, via disk + memory cache.
5
3
  *
6
- * @param emoji a single emoji grapheme
7
- * @returns a data-URI for the Twemoji SVG, or a transparent pixel if unresolved
4
+ * @param emoji a single emoji grapheme.
5
+ * @returns a data-URI for the Twemoji SVG, or a transparent pixel if unresolved.
8
6
  */
9
7
  export declare function emojiToDataUri(emoji: string): Promise<string>;
10
8
  //# sourceMappingURL=emoji.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"emoji.d.ts","sourceRoot":"","sources":["../../src/adapters/emoji.ts"],"names":[],"mappings":"AA6CA,kFAAkF;AAClF,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAG/C;AAID;;;;;GAKG;AACH,wBAAsB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CA0BnE"}
1
+ {"version":3,"file":"emoji.d.ts","sourceRoot":"","sources":["../../src/adapters/emoji.ts"],"names":[],"mappings":"AA0BA;;;;;GAKG;AACH,wBAAsB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CA0BnE"}