@zukhruf/diagram 0.3.30 → 0.3.32

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 (92) hide show
  1. package/dist/lib/layouts/graph/areas.d.ts +27 -0
  2. package/dist/lib/layouts/graph/areas.d.ts.map +1 -0
  3. package/dist/lib/layouts/graph/areas.js +196 -0
  4. package/dist/lib/layouts/graph/areas.js.map +1 -0
  5. package/dist/lib/layouts/graph/graph-layout-result.d.ts +95 -0
  6. package/dist/lib/layouts/graph/graph-layout-result.d.ts.map +1 -0
  7. package/dist/lib/layouts/graph/graph-layout-result.js +2 -0
  8. package/dist/lib/layouts/graph/graph-layout-result.js.map +1 -0
  9. package/dist/lib/layouts/graph/graph-layout.d.ts +2 -1
  10. package/dist/lib/layouts/graph/graph-layout.d.ts.map +1 -1
  11. package/dist/lib/layouts/graph/graph-layout.js +5 -3
  12. package/dist/lib/layouts/graph/graph-layout.js.map +1 -1
  13. package/dist/lib/layouts/graph/gutters.d.ts +25 -0
  14. package/dist/lib/layouts/graph/gutters.d.ts.map +1 -0
  15. package/dist/lib/layouts/graph/gutters.js +124 -0
  16. package/dist/lib/layouts/graph/gutters.js.map +1 -0
  17. package/dist/lib/layouts/graph/layout.d.ts +10 -0
  18. package/dist/lib/layouts/graph/layout.d.ts.map +1 -0
  19. package/dist/lib/layouts/graph/layout.js +164 -0
  20. package/dist/lib/layouts/graph/layout.js.map +1 -0
  21. package/dist/lib/layouts/graph/legacy-graph-layout.d.ts +6 -0
  22. package/dist/lib/layouts/graph/legacy-graph-layout.d.ts.map +1 -0
  23. package/dist/lib/layouts/graph/legacy-graph-layout.js +542 -0
  24. package/dist/lib/layouts/graph/legacy-graph-layout.js.map +1 -0
  25. package/dist/lib/layouts/graph/measure.d.ts +44 -0
  26. package/dist/lib/layouts/graph/measure.d.ts.map +1 -0
  27. package/dist/lib/layouts/graph/measure.js +372 -0
  28. package/dist/lib/layouts/graph/measure.js.map +1 -0
  29. package/dist/lib/layouts/graph/node-content.d.ts +16 -0
  30. package/dist/lib/layouts/graph/node-content.d.ts.map +1 -0
  31. package/dist/lib/layouts/graph/node-content.js +323 -0
  32. package/dist/lib/layouts/graph/node-content.js.map +1 -0
  33. package/dist/lib/layouts/graph/text-block.d.ts +19 -0
  34. package/dist/lib/layouts/graph/text-block.d.ts.map +1 -0
  35. package/dist/lib/layouts/graph/text-block.js +86 -0
  36. package/dist/lib/layouts/graph/text-block.js.map +1 -0
  37. package/dist/lib/layouts/graph/tokens.d.ts +53 -0
  38. package/dist/lib/layouts/graph/tokens.d.ts.map +1 -0
  39. package/dist/lib/layouts/graph/tokens.js +95 -0
  40. package/dist/lib/layouts/graph/tokens.js.map +1 -0
  41. package/dist/lib/layouts/graph/tracks.d.ts +20 -0
  42. package/dist/lib/layouts/graph/tracks.d.ts.map +1 -0
  43. package/dist/lib/layouts/graph/tracks.js +47 -0
  44. package/dist/lib/layouts/graph/tracks.js.map +1 -0
  45. package/dist/lib/layouts/text/font-metrics.generated.d.ts +18 -0
  46. package/dist/lib/layouts/text/font-metrics.generated.d.ts.map +1 -0
  47. package/dist/lib/layouts/text/font-metrics.generated.js +1043 -0
  48. package/dist/lib/layouts/text/font-metrics.generated.js.map +1 -0
  49. package/dist/lib/layouts/text/font.d.ts +14 -0
  50. package/dist/lib/layouts/text/font.d.ts.map +1 -0
  51. package/dist/lib/layouts/text/font.js +11 -0
  52. package/dist/lib/layouts/text/font.js.map +1 -0
  53. package/dist/lib/layouts/text/measure-text.d.ts +13 -0
  54. package/dist/lib/layouts/text/measure-text.d.ts.map +1 -0
  55. package/dist/lib/layouts/text/measure-text.js +67 -0
  56. package/dist/lib/layouts/text/measure-text.js.map +1 -0
  57. package/dist/lib/model/diagram-ir.d.ts +11 -1
  58. package/dist/lib/model/diagram-ir.d.ts.map +1 -1
  59. package/dist/lib/model/diagram-ir.js.map +1 -1
  60. package/dist/lib/renderers/canvas/graph-canvas.d.ts.map +1 -1
  61. package/dist/lib/renderers/canvas/graph-canvas.js +148 -138
  62. package/dist/lib/renderers/canvas/graph-canvas.js.map +1 -1
  63. package/dist/lib/renderers/html/graph-html.d.ts.map +1 -1
  64. package/dist/lib/renderers/html/graph-html.js +462 -511
  65. package/dist/lib/renderers/html/graph-html.js.map +1 -1
  66. package/dist/lib/renderers/shared/graph-parts.d.ts +15 -13
  67. package/dist/lib/renderers/shared/graph-parts.d.ts.map +1 -1
  68. package/dist/lib/renderers/shared/graph-parts.js +649 -644
  69. package/dist/lib/renderers/shared/graph-parts.js.map +1 -1
  70. package/dist/lib/renderers/shared/node-parts.d.ts +20 -19
  71. package/dist/lib/renderers/shared/node-parts.d.ts.map +1 -1
  72. package/dist/lib/renderers/shared/node-parts.js +678 -811
  73. package/dist/lib/renderers/shared/node-parts.js.map +1 -1
  74. package/dist/lib/renderers/shared/run-spans.d.ts +8 -0
  75. package/dist/lib/renderers/shared/run-spans.d.ts.map +1 -0
  76. package/dist/lib/renderers/shared/run-spans.js +18 -0
  77. package/dist/lib/renderers/shared/run-spans.js.map +1 -0
  78. package/dist/lib/renderers/shared/text-runs.d.ts +21 -0
  79. package/dist/lib/renderers/shared/text-runs.d.ts.map +1 -0
  80. package/dist/lib/renderers/shared/text-runs.js +44 -0
  81. package/dist/lib/renderers/shared/text-runs.js.map +1 -0
  82. package/dist/lib/renderers/svg/graph-svg.d.ts.map +1 -1
  83. package/dist/lib/renderers/svg/graph-svg.js +304 -465
  84. package/dist/lib/renderers/svg/graph-svg.js.map +1 -1
  85. package/dist/lib/renderers/svg/timeline-svg.d.ts.map +1 -1
  86. package/dist/lib/renderers/svg/timeline-svg.js +10 -5
  87. package/dist/lib/renderers/svg/timeline-svg.js.map +1 -1
  88. package/dist/lib/renderers/webgpu/graph-flow-effects.d.ts +2 -2
  89. package/dist/lib/renderers/webgpu/graph-flow-effects.d.ts.map +1 -1
  90. package/dist/lib/renderers/webgpu/graph-flow-effects.js.map +1 -1
  91. package/package.json +3 -1
  92. package/styles.css +8 -0
@@ -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"}