@zukhruf/diagram 0.3.30 → 0.3.31
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/dist/lib/layouts/graph/areas.d.ts +27 -0
- package/dist/lib/layouts/graph/areas.d.ts.map +1 -0
- package/dist/lib/layouts/graph/areas.js +187 -0
- package/dist/lib/layouts/graph/areas.js.map +1 -0
- package/dist/lib/layouts/graph/graph-layout-result.d.ts +95 -0
- package/dist/lib/layouts/graph/graph-layout-result.d.ts.map +1 -0
- package/dist/lib/layouts/graph/graph-layout-result.js +2 -0
- package/dist/lib/layouts/graph/graph-layout-result.js.map +1 -0
- package/dist/lib/layouts/graph/graph-layout.d.ts +2 -1
- package/dist/lib/layouts/graph/graph-layout.d.ts.map +1 -1
- package/dist/lib/layouts/graph/graph-layout.js +5 -3
- package/dist/lib/layouts/graph/graph-layout.js.map +1 -1
- package/dist/lib/layouts/graph/gutters.d.ts +26 -0
- package/dist/lib/layouts/graph/gutters.d.ts.map +1 -0
- package/dist/lib/layouts/graph/gutters.js +123 -0
- package/dist/lib/layouts/graph/gutters.js.map +1 -0
- package/dist/lib/layouts/graph/layout.d.ts +10 -0
- package/dist/lib/layouts/graph/layout.d.ts.map +1 -0
- package/dist/lib/layouts/graph/layout.js +165 -0
- package/dist/lib/layouts/graph/layout.js.map +1 -0
- package/dist/lib/layouts/graph/legacy-graph-layout.d.ts +6 -0
- package/dist/lib/layouts/graph/legacy-graph-layout.d.ts.map +1 -0
- package/dist/lib/layouts/graph/legacy-graph-layout.js +542 -0
- package/dist/lib/layouts/graph/legacy-graph-layout.js.map +1 -0
- package/dist/lib/layouts/graph/measure.d.ts +44 -0
- package/dist/lib/layouts/graph/measure.d.ts.map +1 -0
- package/dist/lib/layouts/graph/measure.js +372 -0
- package/dist/lib/layouts/graph/measure.js.map +1 -0
- package/dist/lib/layouts/graph/node-content.d.ts +16 -0
- package/dist/lib/layouts/graph/node-content.d.ts.map +1 -0
- package/dist/lib/layouts/graph/node-content.js +323 -0
- package/dist/lib/layouts/graph/node-content.js.map +1 -0
- package/dist/lib/layouts/graph/text-block.d.ts +19 -0
- package/dist/lib/layouts/graph/text-block.d.ts.map +1 -0
- package/dist/lib/layouts/graph/text-block.js +86 -0
- package/dist/lib/layouts/graph/text-block.js.map +1 -0
- package/dist/lib/layouts/graph/tokens.d.ts +58 -0
- package/dist/lib/layouts/graph/tokens.d.ts.map +1 -0
- package/dist/lib/layouts/graph/tokens.js +108 -0
- package/dist/lib/layouts/graph/tokens.js.map +1 -0
- package/dist/lib/layouts/graph/tracks.d.ts +20 -0
- package/dist/lib/layouts/graph/tracks.d.ts.map +1 -0
- package/dist/lib/layouts/graph/tracks.js +47 -0
- package/dist/lib/layouts/graph/tracks.js.map +1 -0
- package/dist/lib/layouts/text/font-metrics.generated.d.ts +18 -0
- package/dist/lib/layouts/text/font-metrics.generated.d.ts.map +1 -0
- package/dist/lib/layouts/text/font-metrics.generated.js +1043 -0
- package/dist/lib/layouts/text/font-metrics.generated.js.map +1 -0
- package/dist/lib/layouts/text/font.d.ts +14 -0
- package/dist/lib/layouts/text/font.d.ts.map +1 -0
- package/dist/lib/layouts/text/font.js +11 -0
- package/dist/lib/layouts/text/font.js.map +1 -0
- package/dist/lib/layouts/text/measure-text.d.ts +13 -0
- package/dist/lib/layouts/text/measure-text.d.ts.map +1 -0
- package/dist/lib/layouts/text/measure-text.js +67 -0
- package/dist/lib/layouts/text/measure-text.js.map +1 -0
- package/dist/lib/model/diagram-ir.d.ts +14 -1
- package/dist/lib/model/diagram-ir.d.ts.map +1 -1
- package/dist/lib/model/diagram-ir.js.map +1 -1
- package/dist/lib/renderers/canvas/graph-canvas.d.ts.map +1 -1
- package/dist/lib/renderers/canvas/graph-canvas.js +148 -138
- package/dist/lib/renderers/canvas/graph-canvas.js.map +1 -1
- package/dist/lib/renderers/html/graph-html.d.ts.map +1 -1
- package/dist/lib/renderers/html/graph-html.js +462 -511
- package/dist/lib/renderers/html/graph-html.js.map +1 -1
- package/dist/lib/renderers/shared/graph-parts.d.ts +15 -13
- package/dist/lib/renderers/shared/graph-parts.d.ts.map +1 -1
- package/dist/lib/renderers/shared/graph-parts.js +649 -644
- package/dist/lib/renderers/shared/graph-parts.js.map +1 -1
- package/dist/lib/renderers/shared/node-parts.d.ts +20 -19
- package/dist/lib/renderers/shared/node-parts.d.ts.map +1 -1
- package/dist/lib/renderers/shared/node-parts.js +678 -811
- package/dist/lib/renderers/shared/node-parts.js.map +1 -1
- package/dist/lib/renderers/shared/run-spans.d.ts +8 -0
- package/dist/lib/renderers/shared/run-spans.d.ts.map +1 -0
- package/dist/lib/renderers/shared/run-spans.js +18 -0
- package/dist/lib/renderers/shared/run-spans.js.map +1 -0
- package/dist/lib/renderers/shared/text-runs.d.ts +21 -0
- package/dist/lib/renderers/shared/text-runs.d.ts.map +1 -0
- package/dist/lib/renderers/shared/text-runs.js +44 -0
- package/dist/lib/renderers/shared/text-runs.js.map +1 -0
- package/dist/lib/renderers/svg/graph-svg.d.ts.map +1 -1
- package/dist/lib/renderers/svg/graph-svg.js +304 -465
- package/dist/lib/renderers/svg/graph-svg.js.map +1 -1
- package/dist/lib/renderers/svg/timeline-svg.d.ts.map +1 -1
- package/dist/lib/renderers/svg/timeline-svg.js +10 -5
- package/dist/lib/renderers/svg/timeline-svg.js.map +1 -1
- package/dist/lib/renderers/webgpu/graph-flow-effects.d.ts +2 -2
- package/dist/lib/renderers/webgpu/graph-flow-effects.d.ts.map +1 -1
- package/dist/lib/renderers/webgpu/graph-flow-effects.js.map +1 -1
- package/package.json +3 -1
- package/styles.css +8 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tokens.js","names":["SPACING_SCALE","compact","regular","spacious","layoutTokens","density","scale","PAD_X","PAD_Y","ICON","ICON_GAP","GAP","CHANNEL","STUB","LABEL_GAP","CONTENT_PAD","GROUP_PAD","BAND_PAD","BULLET_INDENT","BLOCK_GAP","CAPTION_GAP","PORT_SPACING","STACK_STEP","x","y","MARKER_ICON","CONNECTOR_ICON","BADGE_ICON","JUNCTION","APPLIANCE","w","h","RADIUS","FLAT_RADIUS","fonts","title","face","size","weight","body","caption","boxLabel","note","marker","connector","appliance","groupLabel","edgeLabel","badge","portLabel"],"sources":["../../../../src/lib/layouts/graph/tokens.ts"],"sourcesContent":["import type { DiagramDensity } from '../../model/diagram-ir.ts';\nimport type { Font } from '../text/font.ts';\n\nexport type LayoutFonts = {\n /** The title of a Card, or of a Box with an icon. */\n title: Font;\n /** A Card's description and items. */\n body: Font;\n caption: Font;\n /** A centred Box label without an icon. */\n boxLabel: Font;\n note: Font;\n marker: Font;\n connector: Font;\n appliance: Font;\n groupLabel: Font;\n edgeLabel: Font;\n badge: Font;\n portLabel: Font;\n};\n\nexport type LayoutTokens = {\n PAD_X: number;\n PAD_Y: number;\n ICON: number;\n ICON_GAP: number;\n GAP: number;\n CHANNEL: number;\n STUB: number;\n LABEL_GAP: number;\n CONTENT_PAD: number;\n GROUP_PAD: number;\n BAND_PAD: number;\n BULLET_INDENT: number;\n BLOCK_GAP: number;\n CAPTION_GAP: number;\n PORT_SPACING: number;\n STACK_STEP: { x: number; y: number };\n MARKER_ICON: number;\n CONNECTOR_ICON: number;\n BADGE_ICON: number;\n JUNCTION: number;\n APPLIANCE: { w: number; h: number };\n RADIUS: number;\n FLAT_RADIUS: number;\n fonts: LayoutFonts;\n};\n\nconst SPACING_SCALE: Record<DiagramDensity, number> = {\n compact: 0.75,\n regular: 1,\n spacious: 1.5,\n};\n\n/**\n * The sizes the engine lays out with. Density scales only the space between\n * elements (gaps, channels, group and diagram padding); node content and\n * fonts keep their size, so text never shrinks to fit.\n */\nexport function layoutTokens(\n density: DiagramDensity = 'regular',\n): LayoutTokens {\n const scale = SPACING_SCALE[density];\n return {\n PAD_X: 16,\n PAD_Y: 12,\n ICON: 28,\n ICON_GAP: 12,\n GAP: 24 * scale,\n CHANNEL: 8 * scale,\n STUB: 16,\n LABEL_GAP: 4,\n CONTENT_PAD: 40 * scale,\n GROUP_PAD: 12 * scale,\n BAND_PAD: 6,\n BULLET_INDENT: 12,\n BLOCK_GAP: 8,\n CAPTION_GAP: 8,\n PORT_SPACING: 24,\n STACK_STEP: { x: 12, y: 8 },\n MARKER_ICON: 34,\n CONNECTOR_ICON: 16,\n BADGE_ICON: 22,\n JUNCTION: 16,\n APPLIANCE: { w: 112, h: 72 },\n RADIUS: 16,\n FLAT_RADIUS: 4,\n fonts: {\n title: { face: 'sans', size: 14, weight: 600 },\n body: { face: 'sans', size: 11, weight: 400 },\n caption: { face: 'sans', size: 11, weight: 500 },\n boxLabel: { face: 'mono', size: 12, weight: 500 },\n note: { face: 'sans', size: 10, weight: 600 },\n marker: { face: 'sans', size: 11, weight: 700 },\n connector: { face: 'sans', size: 10, weight: 700 },\n appliance: { face: 'sans', size: 12, weight: 600 },\n groupLabel: { face: 'sans', size: 12, weight: 600 },\n edgeLabel: { face: 'mono', size: 10, weight: 400 },\n badge: { face: 'sans', size: 10, weight: 600 },\n portLabel: { face: 'sans', size: 9, weight: 600 },\n },\n };\n}\n"],"mappings":"AAgDA,MAAMA,aAA6C,GAAG;EACpDC,OAAO,EAAE,IAAI;EACbC,OAAO,EAAE,CAAC;EACVC,QAAQ,EAAE;AACZ,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,YAAYA,CAC1BC,OAAuB,GAAG,SAAS,EACrB;EACd,MAAMC,KAAK,GAAGN,aAAa,CAACK,OAAO,CAAC;EACpC,OAAO;IACLE,KAAK,EAAE,EAAE;IACTC,KAAK,EAAE,EAAE;IACTC,IAAI,EAAE,EAAE;IACRC,QAAQ,EAAE,EAAE;IACZC,GAAG,EAAE,EAAE,GAAGL,KAAK;IACfM,OAAO,EAAE,CAAC,GAAGN,KAAK;IAClBO,IAAI,EAAE,EAAE;IACRC,SAAS,EAAE,CAAC;IACZC,WAAW,EAAE,EAAE,GAAGT,KAAK;IACvBU,SAAS,EAAE,EAAE,GAAGV,KAAK;IACrBW,QAAQ,EAAE,CAAC;IACXC,aAAa,EAAE,EAAE;IACjBC,SAAS,EAAE,CAAC;IACZC,WAAW,EAAE,CAAC;IACdC,YAAY,EAAE,EAAE;IAChBC,UAAU,EAAE;MAAEC,CAAC,EAAE,EAAE;MAAEC,CAAC,EAAE;IAAE,CAAC;IAC3BC,WAAW,EAAE,EAAE;IACfC,cAAc,EAAE,EAAE;IAClBC,UAAU,EAAE,EAAE;IACdC,QAAQ,EAAE,EAAE;IACZC,SAAS,EAAE;MAAEC,CAAC,EAAE,GAAG;MAAEC,CAAC,EAAE;IAAG,CAAC;IAC5BC,MAAM,EAAE,EAAE;IACVC,WAAW,EAAE,CAAC;IACdC,KAAK,EAAE;MACLC,KAAK,EAAE;QAAEC,IAAI,EAAE,MAAM;QAAEC,IAAI,EAAE,EAAE;QAAEC,MAAM,EAAE;MAAI,CAAC;MAC9CC,IAAI,EAAE;QAAEH,IAAI,EAAE,MAAM;QAAEC,IAAI,EAAE,EAAE;QAAEC,MAAM,EAAE;MAAI,CAAC;MAC7CE,OAAO,EAAE;QAAEJ,IAAI,EAAE,MAAM;QAAEC,IAAI,EAAE,EAAE;QAAEC,MAAM,EAAE;MAAI,CAAC;MAChDG,QAAQ,EAAE;QAAEL,IAAI,EAAE,MAAM;QAAEC,IAAI,EAAE,EAAE;QAAEC,MAAM,EAAE;MAAI,CAAC;MACjDI,IAAI,EAAE;QAAEN,IAAI,EAAE,MAAM;QAAEC,IAAI,EAAE,EAAE;QAAEC,MAAM,EAAE;MAAI,CAAC;MAC7CK,MAAM,EAAE;QAAEP,IAAI,EAAE,MAAM;QAAEC,IAAI,EAAE,EAAE;QAAEC,MAAM,EAAE;MAAI,CAAC;MAC/CM,SAAS,EAAE;QAAER,IAAI,EAAE,MAAM;QAAEC,IAAI,EAAE,EAAE;QAAEC,MAAM,EAAE;MAAI,CAAC;MAClDO,SAAS,EAAE;QAAET,IAAI,EAAE,MAAM;QAAEC,IAAI,EAAE,EAAE;QAAEC,MAAM,EAAE;MAAI,CAAC;MAClDQ,UAAU,EAAE;QAAEV,IAAI,EAAE,MAAM;QAAEC,IAAI,EAAE,EAAE;QAAEC,MAAM,EAAE;MAAI,CAAC;MACnDS,SAAS,EAAE;QAAEX,IAAI,EAAE,MAAM;QAAEC,IAAI,EAAE,EAAE;QAAEC,MAAM,EAAE;MAAI,CAAC;MAClDU,KAAK,EAAE;QAAEZ,IAAI,EAAE,MAAM;QAAEC,IAAI,EAAE,EAAE;QAAEC,MAAM,EAAE;MAAI,CAAC;MAC9CW,SAAS,EAAE;QAAEb,IAAI,EAAE,MAAM;QAAEC,IAAI,EAAE,CAAC;QAAEC,MAAM,EAAE;MAAI;IAClD;EACF,CAAC;AACH","ignoreList":[]}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/** An item on one axis: it covers tracks `[start, start + span)` and needs `size` across them. */
|
|
2
|
+
export type TrackItem = {
|
|
3
|
+
start: number;
|
|
4
|
+
span: number;
|
|
5
|
+
size: number;
|
|
6
|
+
};
|
|
7
|
+
/** Where the tracks and gutters of one axis lie, after sizing. */
|
|
8
|
+
export type TrackLine = {
|
|
9
|
+
trackStart(track: number): number;
|
|
10
|
+
trackEnd(track: number): number;
|
|
11
|
+
gutterStart(boundary: number): number;
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* Sizes the tracks of one axis the way CSS Grid sizes auto tracks: each track
|
|
15
|
+
* first fits its widest single-track item; then each spanning item, smallest
|
|
16
|
+
* span first, spreads what it still lacks equally over the tracks it spans.
|
|
17
|
+
* A track with no items is 0.
|
|
18
|
+
*/
|
|
19
|
+
export declare function sizeTracks(count: number, items: TrackItem[], gutters: number[]): TrackLine;
|
|
20
|
+
//# sourceMappingURL=tracks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tracks.d.ts","sourceRoot":"","sources":["../../../../src/lib/layouts/graph/tracks.ts"],"names":[],"mappings":"AAAA,kGAAkG;AAClG,MAAM,MAAM,SAAS,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtE,kEAAkE;AAClE,MAAM,MAAM,SAAS,GAAG;IACtB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IAClC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IAChC,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC;CACvC,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,UAAU,CACxB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,SAAS,EAAE,EAClB,OAAO,EAAE,MAAM,EAAE,GAChB,SAAS,CAkCX"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/** An item on one axis: it covers tracks `[start, start + span)` and needs `size` across them. */
|
|
2
|
+
|
|
3
|
+
/** Where the tracks and gutters of one axis lie, after sizing. */
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Sizes the tracks of one axis the way CSS Grid sizes auto tracks: each track
|
|
7
|
+
* first fits its widest single-track item; then each spanning item, smallest
|
|
8
|
+
* span first, spreads what it still lacks equally over the tracks it spans.
|
|
9
|
+
* A track with no items is 0.
|
|
10
|
+
*/
|
|
11
|
+
export function sizeTracks(count, items, gutters) {
|
|
12
|
+
const sizes = Array.from({
|
|
13
|
+
length: count
|
|
14
|
+
}, () => 0);
|
|
15
|
+
for (const item of items.filter(item => item.span === 1)) {
|
|
16
|
+
sizes[item.start] = Math.max(sizes[item.start], item.size);
|
|
17
|
+
}
|
|
18
|
+
const spanning = items.filter(item => item.span > 1).sort((a, b) => a.span - b.span);
|
|
19
|
+
for (const {
|
|
20
|
+
start,
|
|
21
|
+
span,
|
|
22
|
+
size
|
|
23
|
+
} of spanning) {
|
|
24
|
+
const end = start + span;
|
|
25
|
+
const tracks = sizes.slice(start, end).reduce((sum, s) => sum + s, 0);
|
|
26
|
+
const inner = gutters.slice(start + 1, end).reduce((sum, gutter) => sum + gutter, 0);
|
|
27
|
+
const deficit = size - tracks - inner;
|
|
28
|
+
if (deficit <= 0) continue;
|
|
29
|
+
for (let track = start; track < end; track++) {
|
|
30
|
+
sizes[track] += deficit / span;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
const starts = [];
|
|
34
|
+
let offset = 0;
|
|
35
|
+
for (let track = 0; track < count; track++) {
|
|
36
|
+
offset += gutters[track];
|
|
37
|
+
starts.push(offset);
|
|
38
|
+
offset += sizes[track];
|
|
39
|
+
}
|
|
40
|
+
const trackEnd = track => starts[track] + sizes[track];
|
|
41
|
+
return {
|
|
42
|
+
trackStart: track => starts[track],
|
|
43
|
+
trackEnd,
|
|
44
|
+
gutterStart: boundary => boundary === 0 ? 0 : trackEnd(boundary - 1)
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=tracks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tracks.js","names":["sizeTracks","count","items","gutters","sizes","Array","from","length","item","filter","span","start","Math","max","size","spanning","sort","a","b","end","tracks","slice","reduce","sum","s","inner","gutter","deficit","track","starts","offset","push","trackEnd","trackStart","gutterStart","boundary"],"sources":["../../../../src/lib/layouts/graph/tracks.ts"],"sourcesContent":["/** An item on one axis: it covers tracks `[start, start + span)` and needs `size` across them. */\nexport type TrackItem = { start: number; span: number; size: number };\n\n/** Where the tracks and gutters of one axis lie, after sizing. */\nexport type TrackLine = {\n trackStart(track: number): number;\n trackEnd(track: number): number;\n gutterStart(boundary: number): number;\n};\n\n/**\n * Sizes the tracks of one axis the way CSS Grid sizes auto tracks: each track\n * first fits its widest single-track item; then each spanning item, smallest\n * span first, spreads what it still lacks equally over the tracks it spans.\n * A track with no items is 0.\n */\nexport function sizeTracks(\n count: number,\n items: TrackItem[],\n gutters: number[],\n): TrackLine {\n const sizes = Array.from({ length: count }, () => 0);\n for (const item of items.filter((item) => item.span === 1)) {\n sizes[item.start] = Math.max(sizes[item.start]!, item.size);\n }\n const spanning = items\n .filter((item) => item.span > 1)\n .sort((a, b) => a.span - b.span);\n for (const { start, span, size } of spanning) {\n const end = start + span;\n const tracks = sizes.slice(start, end).reduce((sum, s) => sum + s, 0);\n const inner = gutters\n .slice(start + 1, end)\n .reduce((sum, gutter) => sum + gutter, 0);\n const deficit = size - tracks - inner;\n if (deficit <= 0) continue;\n for (let track = start; track < end; track++) {\n sizes[track]! += deficit / span;\n }\n }\n\n const starts: number[] = [];\n let offset = 0;\n for (let track = 0; track < count; track++) {\n offset += gutters[track]!;\n starts.push(offset);\n offset += sizes[track]!;\n }\n const trackEnd = (track: number) => starts[track]! + sizes[track]!;\n return {\n trackStart: (track) => starts[track]!,\n trackEnd,\n gutterStart: (boundary) => (boundary === 0 ? 0 : trackEnd(boundary - 1)),\n };\n}\n"],"mappings":"AAAA;;AAGA;;AAOA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASA,UAAUA,CACxBC,KAAa,EACbC,KAAkB,EAClBC,OAAiB,EACN;EACX,MAAMC,KAAK,GAAGC,KAAK,CAACC,IAAI,CAAC;IAAEC,MAAM,EAAEN;EAAM,CAAC,EAAE,MAAM,CAAC,CAAC;EACpD,KAAK,MAAMO,IAAI,IAAIN,KAAK,CAACO,MAAM,CAAED,IAAI,IAAKA,IAAI,CAACE,IAAI,KAAK,CAAC,CAAC,EAAE;IAC1DN,KAAK,CAACI,IAAI,CAACG,KAAK,CAAC,GAAGC,IAAI,CAACC,GAAG,CAACT,KAAK,CAACI,IAAI,CAACG,KAAK,CAAC,EAAGH,IAAI,CAACM,IAAI,CAAC;EAC7D;EACA,MAAMC,QAAQ,GAAGb,KAAK,CACnBO,MAAM,CAAED,IAAI,IAAKA,IAAI,CAACE,IAAI,GAAG,CAAC,CAAC,CAC/BM,IAAI,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAKD,CAAC,CAACP,IAAI,GAAGQ,CAAC,CAACR,IAAI,CAAC;EAClC,KAAK,MAAM;IAAEC,KAAK;IAAED,IAAI;IAAEI;EAAK,CAAC,IAAIC,QAAQ,EAAE;IAC5C,MAAMI,GAAG,GAAGR,KAAK,GAAGD,IAAI;IACxB,MAAMU,MAAM,GAAGhB,KAAK,CAACiB,KAAK,CAACV,KAAK,EAAEQ,GAAG,CAAC,CAACG,MAAM,CAAC,CAACC,GAAG,EAAEC,CAAC,KAAKD,GAAG,GAAGC,CAAC,EAAE,CAAC,CAAC;IACrE,MAAMC,KAAK,GAAGtB,OAAO,CAClBkB,KAAK,CAACV,KAAK,GAAG,CAAC,EAAEQ,GAAG,CAAC,CACrBG,MAAM,CAAC,CAACC,GAAG,EAAEG,MAAM,KAAKH,GAAG,GAAGG,MAAM,EAAE,CAAC,CAAC;IAC3C,MAAMC,OAAO,GAAGb,IAAI,GAAGM,MAAM,GAAGK,KAAK;IACrC,IAAIE,OAAO,IAAI,CAAC,EAAE;IAClB,KAAK,IAAIC,KAAK,GAAGjB,KAAK,EAAEiB,KAAK,GAAGT,GAAG,EAAES,KAAK,EAAE,EAAE;MAC5CxB,KAAK,CAACwB,KAAK,CAAC,IAAKD,OAAO,GAAGjB,IAAI;IACjC;EACF;EAEA,MAAMmB,MAAgB,GAAG,EAAE;EAC3B,IAAIC,MAAM,GAAG,CAAC;EACd,KAAK,IAAIF,KAAK,GAAG,CAAC,EAAEA,KAAK,GAAG3B,KAAK,EAAE2B,KAAK,EAAE,EAAE;IAC1CE,MAAM,IAAI3B,OAAO,CAACyB,KAAK,CAAE;IACzBC,MAAM,CAACE,IAAI,CAACD,MAAM,CAAC;IACnBA,MAAM,IAAI1B,KAAK,CAACwB,KAAK,CAAE;EACzB;EACA,MAAMI,QAAQ,GAAIJ,KAAa,IAAKC,MAAM,CAACD,KAAK,CAAC,GAAIxB,KAAK,CAACwB,KAAK,CAAE;EAClE,OAAO;IACLK,UAAU,EAAGL,KAAK,IAAKC,MAAM,CAACD,KAAK,CAAE;IACrCI,QAAQ;IACRE,WAAW,EAAGC,QAAQ,IAAMA,QAAQ,KAAK,CAAC,GAAG,CAAC,GAAGH,QAAQ,CAACG,QAAQ,GAAG,CAAC;EACxE,CAAC;AACH","ignoreList":[]}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { FontFace, FontWeight } from './font.ts';
|
|
2
|
+
/**
|
|
3
|
+
* One face and weight, in font units. Ascent, descent and line gap come from
|
|
4
|
+
* hhea, which the generator checks equals OS/2 typo with USE_TYPO_METRICS set.
|
|
5
|
+
* `advances` and `kerning` map a value to the characters (or ASCII pairs) that
|
|
6
|
+
* have it.
|
|
7
|
+
*/
|
|
8
|
+
export type FaceMetrics = {
|
|
9
|
+
unitsPerEm: number;
|
|
10
|
+
ascent: number;
|
|
11
|
+
descent: number;
|
|
12
|
+
lineGap: number;
|
|
13
|
+
advances: Record<string, string>;
|
|
14
|
+
kerning: Record<string, string>;
|
|
15
|
+
};
|
|
16
|
+
export type FontMetricsTable = Record<FontFace, Record<FontWeight, FaceMetrics>>;
|
|
17
|
+
export declare const FONT_METRICS: FontMetricsTable;
|
|
18
|
+
//# sourceMappingURL=font-metrics.generated.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"font-metrics.generated.d.ts","sourceRoot":"","sources":["../../../../src/lib/layouts/text/font-metrics.generated.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEtD;;;;;GAKG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,MAAM,CACnC,QAAQ,EACR,MAAM,CAAC,UAAU,EAAE,WAAW,CAAC,CAChC,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,gBA8kC1B,CAAC"}
|