@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.
- package/README.md +40 -4
- package/dist/adapters/assets.browser.d.ts +4 -0
- package/dist/adapters/assets.browser.d.ts.map +1 -0
- package/dist/adapters/assets.browser.js +64 -0
- package/dist/adapters/assets.browser.js.map +1 -0
- package/dist/adapters/assets.d.ts +34 -0
- package/dist/adapters/assets.d.ts.map +1 -0
- package/dist/adapters/assets.js +36 -0
- package/dist/adapters/assets.js.map +1 -0
- package/dist/adapters/assets.node.d.ts +4 -0
- package/dist/adapters/assets.node.d.ts.map +1 -0
- package/dist/adapters/assets.node.js +16 -0
- package/dist/adapters/assets.node.js.map +1 -0
- package/dist/adapters/baseline.d.ts.map +1 -1
- package/dist/adapters/baseline.js +9 -7
- package/dist/adapters/baseline.js.map +1 -1
- package/dist/adapters/elk.d.ts.map +1 -1
- package/dist/adapters/elk.js +11 -9
- package/dist/adapters/elk.js.map +1 -1
- package/dist/adapters/emoji-code.d.ts +8 -0
- package/dist/adapters/emoji-code.d.ts.map +1 -0
- package/dist/adapters/emoji-code.js +41 -0
- package/dist/adapters/emoji-code.js.map +1 -0
- package/dist/adapters/emoji.d.ts +2 -4
- package/dist/adapters/emoji.d.ts.map +1 -1
- package/dist/adapters/emoji.js +8 -34
- package/dist/adapters/emoji.js.map +1 -1
- package/dist/adapters/fonts.d.ts +3 -8
- package/dist/adapters/fonts.d.ts.map +1 -1
- package/dist/adapters/fonts.js +7 -4
- package/dist/adapters/fonts.js.map +1 -1
- package/dist/adapters/satori.d.ts.map +1 -1
- package/dist/adapters/satori.js +36 -33
- package/dist/adapters/satori.js.map +1 -1
- package/dist/adapters/sequence.d.ts.map +1 -1
- package/dist/adapters/sequence.js +19 -13
- package/dist/adapters/sequence.js.map +1 -1
- package/dist/adapters/svg.d.ts +7 -6
- package/dist/adapters/svg.d.ts.map +1 -1
- package/dist/adapters/svg.js +12 -11
- package/dist/adapters/svg.js.map +1 -1
- package/dist/composition.d.ts +54 -0
- package/dist/composition.d.ts.map +1 -0
- package/dist/composition.js +68 -0
- package/dist/composition.js.map +1 -0
- package/dist/constants.d.ts +3 -0
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +12 -0
- package/dist/constants.js.map +1 -1
- package/dist/domain/theme.d.ts +26 -0
- package/dist/domain/theme.d.ts.map +1 -1
- package/dist/domain/theme.js +52 -0
- package/dist/domain/theme.js.map +1 -1
- package/dist/index.browser.d.ts +15 -0
- package/dist/index.browser.d.ts.map +1 -0
- package/dist/index.browser.js +19 -0
- package/dist/index.browser.js.map +1 -0
- package/dist/index.d.ts +13 -55
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +18 -76
- package/dist/index.js.map +1 -1
- package/dist/ports/AssetProvider.d.ts +45 -0
- package/dist/ports/AssetProvider.d.ts.map +1 -0
- package/dist/ports/AssetProvider.js +14 -0
- package/dist/ports/AssetProvider.js.map +1 -0
- 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
|
-
| `
|
|
177
|
-
| `
|
|
178
|
-
| `
|
|
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: **
|
|
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 @@
|
|
|
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 @@
|
|
|
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":"
|
|
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="
|
|
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="
|
|
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="
|
|
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":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EACL,cAAc,EACd,SAAS,EACT,QAAQ,EACR,oBAAoB,EACpB,cAAc,EACd,eAAe,EACf,cAAc,EACd,cAAc,EACd,cAAc,EACd,uBAAuB,GACxB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,GAAG,EAAE,iBAAiB,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAYxE,oBAAoB;AACpB,SAAS,KAAK,CAAC,CAAS,EAAE,EAAU,EAAE,EAAU;IAC9C,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;AACvC,CAAC;AAED,+CAA+C;AAC/C,SAAS,QAAQ,CAAC,IAAiB;IACjC,MAAM,MAAM,GAAG,iBAAiB,CAAC,IAAI,CAAC,KAAK,EAAE,oBAAoB,CAAC,CAAC;IACnE,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,EAAE,uBAAuB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3F,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,cAAc,GAAG,CAAC,EAAE,cAAc,EAAE,cAAc,CAAC,CAAC;IAC7F,MAAM,CAAC,GAAG,eAAe,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,uBAAuB,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC;IAC/F,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAClB,CAAC;AAED;;;GAGG;AACH,SAAS,WAAW,CAAC,IAAiB,EAAE,KAAyB;IAC/D,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAoB,CAAC;IAC7C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IAClD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;QACvB,IAAI,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAE,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;IAEH,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;IAC5C,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,aAAa,EAAE,IAAI,EAAE,EAAE,CAAC;QAChD,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC3B,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;YACvC,IAAI,IAAI,GAAG,CAAC,CAAC;YACb,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;gBACtB,MAAM,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAE,CAAC,IAAI,CAAC;gBAC9B,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC;YAChC,CAAC;YACD,IAAI,IAAI,KAAK,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAE,CAAC,IAAI,EAAE,CAAC;gBACnC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAE,CAAC,IAAI,GAAG,IAAI,CAAC;gBAC7B,OAAO,GAAG,IAAI,CAAC;YACjB,CAAC;QACH,CAAC;QACD,IAAI,CAAC,OAAO;YAAE,MAAM;IACtB,CAAC;AACH,CAAC;AAED,sCAAsC;AACtC,SAAS,YAAY,CAAC,GAA0B;IAC9C,OAAO,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,IAAI,CAAC;AACtC,CAAC;AAED,SAAS,MAAM,CAAC,IAAiB;IAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACvE,MAAM,UAAU,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;IAErC,MAAM,KAAK,GAAG,IAAI,GAAG,EAAiB,CAAC;IACvC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QAC9B,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;QAChC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAC1D,CAAC;IACD,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAEzB,kEAAkE;IAClE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAmB,CAAC;IAC1C,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QAC9B,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAE,CAAC;QAC9B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;YAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAChD,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC9B,CAAC;IACD,MAAM,KAAK,GAAG,CAAC,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAEvD,2EAA2E;IAC3E,IAAI,cAAc,GAAG,CAAC,CAAC;IACvB,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAE,CAAC;QAC7B,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CACxB,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,EACrD,CAAC,QAAQ,CACV,CAAC;QACF,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;IACnD,CAAC;IAED,sEAAsE;IACtE,IAAI,UAAU,GAAG,cAAc,CAAC;IAChC,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAE,CAAC;QAC7B,MAAM,cAAc,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACtF,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC;QAC7F,IAAI,WAAW,GAAG,cAAc,GAAG,CAAC,cAAc,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;QAChE,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;YACtB,IAAI,UAAU,EAAE,CAAC;gBACf,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC;gBACjB,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC;gBAClB,WAAW,IAAI,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC;YAChC,CAAC;iBAAM,CAAC;gBACN,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC;gBAClB,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC;gBACjB,WAAW,IAAI,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC;YAChC,CAAC;QACH,CAAC;QACD,UAAU,IAAI,cAAc,GAAG,SAAS,CAAC;IAC3C,CAAC;IAED,MAAM,KAAK,GAAG,UAAU;QACtB,CAAC,CAAC,UAAU,GAAG,SAAS,GAAG,cAAc;QACzC,CAAC,CAAC,cAAc,GAAG,cAAc,GAAG,CAAC,CAAC;IACxC,MAAM,MAAM,GAAG,UAAU;QACvB,CAAC,CAAC,cAAc,GAAG,cAAc,GAAG,CAAC;QACrC,CAAC,CAAC,UAAU,GAAG,SAAS,GAAG,cAAc,CAAC;IAE5C,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AAClC,CAAC;AAED,SAAS,UAAU,CAAC,CAAQ;
|
|
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":"
|
|
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"}
|
package/dist/adapters/elk.js
CHANGED
|
@@ -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="
|
|
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="
|
|
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="
|
|
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,
|
package/dist/adapters/elk.js.map
CHANGED
|
@@ -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"}
|
package/dist/adapters/emoji.d.ts
CHANGED
|
@@ -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":"
|
|
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"}
|