@zombie-mermaid/svg-renderer 4.2.2 → 5.0.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 (72) hide show
  1. package/README.md +15 -1
  2. package/dist/index.cjs +52 -52
  3. package/dist/index.cjs.map +1 -1
  4. package/dist/index.d.cts +23 -4
  5. package/dist/index.d.ts +23 -4
  6. package/dist/index.js +897 -849
  7. package/dist/index.js.map +1 -1
  8. package/package.json +14 -5
  9. package/src/__tests__/c4-label-clearance-1290.test.ts +0 -112
  10. package/src/__tests__/c4-line-ends-1208.test.ts +0 -52
  11. package/src/__tests__/c4-mermaid-reference.test.ts +0 -124
  12. package/src/__tests__/c4-svg.test.ts +0 -337
  13. package/src/__tests__/c4-text-width-1210.test.ts +0 -43
  14. package/src/__tests__/class-component-order-1249.test.ts +0 -40
  15. package/src/__tests__/class-diamond-markers-1232.test.ts +0 -59
  16. package/src/__tests__/class-member-right-padding-1238.test.ts +0 -43
  17. package/src/__tests__/class-namespace-1196.test.ts +0 -165
  18. package/src/__tests__/class-namespace-sparse-elk-1196.test.ts +0 -96
  19. package/src/__tests__/class-visibility-markers-1237.test.ts +0 -27
  20. package/src/__tests__/edge-jog-straightening-1388.test.ts +0 -57
  21. package/src/__tests__/elk-adapter-utils.test.ts +0 -166
  22. package/src/__tests__/er-attribute-right-padding-1262.test.ts +0 -47
  23. package/src/__tests__/er-cardinality-markers-1233.test.ts +0 -35
  24. package/src/__tests__/er-default-direction-1250.test.ts +0 -69
  25. package/src/__tests__/er-edge-label-contrast-1244.test.ts +0 -58
  26. package/src/__tests__/fixtures/c4-mermaid-reference.json +0 -626
  27. package/src/__tests__/flowchart-parallel-edge-lanes-1308.test.ts +0 -168
  28. package/src/__tests__/pie-layout.test.ts +0 -215
  29. package/src/__tests__/pie-svg.test.ts +0 -194
  30. package/src/__tests__/render-mermaid-svg.test.ts +0 -64
  31. package/src/__tests__/sequence-label-clearance-1242.test.ts +0 -162
  32. package/src/__tests__/sequence-nested-activation-1241.test.ts +0 -37
  33. package/src/__tests__/svg-edge-to-own-cluster-1310.test.ts +0 -32
  34. package/src/__tests__/xychart-smooth-curve.test.ts +0 -42
  35. package/src/__tests__/xychart-x-label-overlap-1243.test.ts +0 -62
  36. package/src/c4/arial-widths.ts +0 -59
  37. package/src/c4/layout.ts +0 -680
  38. package/src/c4/metrics.ts +0 -261
  39. package/src/c4/renderer.ts +0 -366
  40. package/src/class/layout.ts +0 -525
  41. package/src/class/renderer.ts +0 -669
  42. package/src/edge-curves.ts +0 -205
  43. package/src/elk-instance.ts +0 -292
  44. package/src/er/layout.ts +0 -216
  45. package/src/er/renderer.ts +0 -516
  46. package/src/generated/mono-font-subset.ts +0 -32
  47. package/src/index.ts +0 -277
  48. package/src/layout-engine/back-edges.ts +0 -73
  49. package/src/layout-engine/compound-flat.ts +0 -916
  50. package/src/layout-engine/constants.ts +0 -19
  51. package/src/layout-engine/edge-bundling.ts +0 -458
  52. package/src/layout-engine/elk-adapter-utils.ts +0 -81
  53. package/src/layout-engine/elk-graph-builder.ts +0 -245
  54. package/src/layout-engine/from-elk.ts +0 -767
  55. package/src/layout-engine/inner-edges.ts +0 -329
  56. package/src/layout-engine/jog-straightening.ts +0 -52
  57. package/src/layout-engine/layer-alignment.ts +0 -174
  58. package/src/layout-engine/layout-hints.ts +0 -27
  59. package/src/layout-engine/to-elk.ts +0 -855
  60. package/src/layout-engine.ts +0 -115
  61. package/src/pie/layout.ts +0 -234
  62. package/src/pie/renderer.ts +0 -161
  63. package/src/registry.ts +0 -441
  64. package/src/renderer.ts +0 -1510
  65. package/src/resolve-colors.ts +0 -339
  66. package/src/sequence/layout.ts +0 -766
  67. package/src/sequence/renderer.ts +0 -687
  68. package/src/shape-clipping.ts +0 -197
  69. package/src/styles.ts +0 -145
  70. package/src/title-gaps.ts +0 -161
  71. package/src/xychart/layout.ts +0 -727
  72. package/src/xychart/renderer.ts +0 -676
package/dist/index.d.cts CHANGED
@@ -3,14 +3,15 @@ import { ClassRenderOptions } from '@zombie-mermaid/core';
3
3
  import { CurveStyle } from '@zombie-mermaid/core';
4
4
  import { DiagramColors } from '@zombie-mermaid/core';
5
5
  import { Direction } from '@zombie-mermaid/core';
6
- import { ElkExtendedEdge } from 'elkjs';
7
- import { ElkLabel } from 'elkjs';
8
- import { ElkNode } from 'elkjs';
6
+ import { ElkConstructor } from '@zombie-mermaid/core';
7
+ import { ElkExtendedEdge } from '@zombie-mermaid/core';
8
+ import { ElkLabel } from '@zombie-mermaid/core';
9
+ import { ElkNode } from '@zombie-mermaid/core';
9
10
  import { ErDiagram } from '@zombie-mermaid/mermaid-parser';
10
11
  import { ErRenderOptions } from '@zombie-mermaid/core';
11
12
  import { FlowchartRenderOptions } from '@zombie-mermaid/core';
12
13
  import { LayoutCache } from '@zombie-mermaid/core';
13
- import { LayoutOptions } from 'elkjs';
14
+ import { LayoutOptions } from '@zombie-mermaid/core';
14
15
  import { MermaidGraph } from '@zombie-mermaid/core';
15
16
  import { PieChart } from '@zombie-mermaid/mermaid-parser';
16
17
  import { Point } from '@zombie-mermaid/core';
@@ -244,6 +245,11 @@ export declare interface ElkEdgeLabelStyle {
244
245
  */
245
246
  export declare function elkLayoutSync(graph: ElkNode, cache?: LayoutCache): ElkNode;
246
247
 
248
+ /** Thrown when a graph diagram renders and no `elkjs` constructor is available. */
249
+ export declare class ElkNotRegisteredError extends Error {
250
+ constructor();
251
+ }
252
+
247
253
  /**
248
254
  * Format ELK's `elk.padding` value. A single number applies to all four
249
255
  * sides; an object sets them individually.
@@ -447,6 +453,19 @@ export declare function pieColorValue(index: number, accent: string | undefined,
447
453
  */
448
454
  export declare function pointsToPath(points: Point[], curve?: CurveStyle): string;
449
455
 
456
+ /**
457
+ * Register the `elkjs` constructor used for flowchart, state, class, ER and
458
+ * architecture layout. Call once before rendering, in browsers and bundlers:
459
+ *
460
+ * import ELK from 'elkjs/lib/elk.bundled.js'
461
+ * registerElk(ELK)
462
+ *
463
+ * Under Node (and Bun) this is optional when `elkjs` is installed: it is
464
+ * auto-loaded on first use. Calling it again swaps the constructor and drops
465
+ * the cached instance.
466
+ */
467
+ export declare function registerElk(ctor: ElkConstructor): void;
468
+
450
469
  /**
451
470
  * Render a positioned class diagram as an SVG string.
452
471
  *
package/dist/index.d.ts CHANGED
@@ -3,14 +3,15 @@ import { ClassRenderOptions } from '@zombie-mermaid/core';
3
3
  import { CurveStyle } from '@zombie-mermaid/core';
4
4
  import { DiagramColors } from '@zombie-mermaid/core';
5
5
  import { Direction } from '@zombie-mermaid/core';
6
- import { ElkExtendedEdge } from 'elkjs';
7
- import { ElkLabel } from 'elkjs';
8
- import { ElkNode } from 'elkjs';
6
+ import { ElkConstructor } from '@zombie-mermaid/core';
7
+ import { ElkExtendedEdge } from '@zombie-mermaid/core';
8
+ import { ElkLabel } from '@zombie-mermaid/core';
9
+ import { ElkNode } from '@zombie-mermaid/core';
9
10
  import { ErDiagram } from '@zombie-mermaid/mermaid-parser';
10
11
  import { ErRenderOptions } from '@zombie-mermaid/core';
11
12
  import { FlowchartRenderOptions } from '@zombie-mermaid/core';
12
13
  import { LayoutCache } from '@zombie-mermaid/core';
13
- import { LayoutOptions } from 'elkjs';
14
+ import { LayoutOptions } from '@zombie-mermaid/core';
14
15
  import { MermaidGraph } from '@zombie-mermaid/core';
15
16
  import { PieChart } from '@zombie-mermaid/mermaid-parser';
16
17
  import { Point } from '@zombie-mermaid/core';
@@ -244,6 +245,11 @@ export declare interface ElkEdgeLabelStyle {
244
245
  */
245
246
  export declare function elkLayoutSync(graph: ElkNode, cache?: LayoutCache): ElkNode;
246
247
 
248
+ /** Thrown when a graph diagram renders and no `elkjs` constructor is available. */
249
+ export declare class ElkNotRegisteredError extends Error {
250
+ constructor();
251
+ }
252
+
247
253
  /**
248
254
  * Format ELK's `elk.padding` value. A single number applies to all four
249
255
  * sides; an object sets them individually.
@@ -447,6 +453,19 @@ export declare function pieColorValue(index: number, accent: string | undefined,
447
453
  */
448
454
  export declare function pointsToPath(points: Point[], curve?: CurveStyle): string;
449
455
 
456
+ /**
457
+ * Register the `elkjs` constructor used for flowchart, state, class, ER and
458
+ * architecture layout. Call once before rendering, in browsers and bundlers:
459
+ *
460
+ * import ELK from 'elkjs/lib/elk.bundled.js'
461
+ * registerElk(ELK)
462
+ *
463
+ * Under Node (and Bun) this is optional when `elkjs` is installed: it is
464
+ * auto-loaded on first use. Calling it again swaps the constructor and drops
465
+ * the cached instance.
466
+ */
467
+ export declare function registerElk(ctor: ElkConstructor): void;
468
+
450
469
  /**
451
470
  * Render a positioned class diagram as an SVG string.
452
471
  *