graphics-debug 0.0.50 → 0.0.52

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.
@@ -53,4 +53,4 @@ export {
53
53
  getHtmlFromLogString,
54
54
  getSvgsFromLogString
55
55
  };
56
- //# sourceMappingURL=chunk-NVFLPFBX.js.map
56
+ //# sourceMappingURL=chunk-EO534DRE.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../lib/index.ts"],"sourcesContent":["import { getGraphicsObjectsFromLogString } from \"./getGraphicsObjectsFromLogString\"\nimport { getSvgFromGraphicsObject } from \"./getSvgFromGraphicsObject\"\nimport {\n drawGraphicsToCanvas,\n computeTransformFromViewbox,\n getBounds,\n} from \"./drawGraphicsToCanvas\"\nimport { translateGraphics } from \"./translateGraphics\"\nimport { mergeGraphics } from \"./mergeGraphics\"\nimport {\n stackGraphicsHorizontally,\n stackGraphicsVertically,\n createGraphicsGrid,\n} from \"./stackGraphics\"\n\nexport type {\n Point,\n Line,\n Rect,\n Circle,\n Text,\n NinePointAnchor,\n GraphicsObject,\n Viewbox,\n CenterViewbox,\n TransformOptions,\n} from \"./types\"\nexport { getGraphicsObjectsFromLogString } from \"./getGraphicsObjectsFromLogString\"\nexport { getSvgFromGraphicsObject } from \"./getSvgFromGraphicsObject\"\nexport {\n drawGraphicsToCanvas,\n computeTransformFromViewbox,\n getBounds,\n} from \"./drawGraphicsToCanvas\"\nexport { translateGraphics } from \"./translateGraphics\"\nexport { mergeGraphics } from \"./mergeGraphics\"\nexport {\n stackGraphicsHorizontally,\n stackGraphicsVertically,\n createGraphicsGrid,\n} from \"./stackGraphics\"\nexport { FONT_SIZE_WIDTH_RATIO, FONT_SIZE_HEIGHT_RATIO } from \"./constants\"\n\nexport function getSvgFromLogString(logString: string): string {\n const objects = getGraphicsObjectsFromLogString(logString)\n if (objects.length === 0) return \"\"\n return getSvgFromGraphicsObject(objects[0])\n}\n\nexport function getHtmlFromLogString(logString: string): string {\n const svgs = getSvgsFromLogString(logString)\n if (svgs.length === 0) return \"\"\n\n const sections = svgs\n .map(\n ({ title, svg }) => `\n <section>\n <h2>${title}</h2>\n ${svg}\n </section>\n `,\n )\n .join(\"\\n\")\n\n return `\n<!DOCTYPE html>\n<html>\n<head>\n <title>Graphics Debug Output</title>\n <style>\n body { font-family: system-ui; max-width: 1200px; margin: 0 auto; padding: 20px; }\n h1 { color: #333; }\n section { margin: 40px 0; }\n svg { max-width: 100%; height: auto; border: 1px solid #eee; }\n </style>\n</head>\n<body>\n <h1>Graphics Debug Output</h1>\n ${sections}\n</body>\n</html>`\n}\n\nexport function getSvgsFromLogString(\n logString: string,\n): Array<{ title: string; svg: string }> {\n const objects = getGraphicsObjectsFromLogString(logString)\n return objects.map((obj) => ({\n title: obj.title || \"Untitled Graphic\",\n svg: getSvgFromGraphicsObject(obj),\n }))\n}\n"],"mappings":";;;;;;;;AA2CO,SAAS,oBAAoB,WAA2B;AAC7D,QAAM,UAAU,gCAAgC,SAAS;AACzD,MAAI,QAAQ,WAAW,EAAG,QAAO;AACjC,SAAO,yBAAyB,QAAQ,CAAC,CAAC;AAC5C;AAEO,SAAS,qBAAqB,WAA2B;AAC9D,QAAM,OAAO,qBAAqB,SAAS;AAC3C,MAAI,KAAK,WAAW,EAAG,QAAO;AAE9B,QAAM,WAAW,KACd;AAAA,IACC,CAAC,EAAE,OAAO,IAAI,MAAM;AAAA;AAAA,YAEd,KAAK;AAAA,QACT,GAAG;AAAA;AAAA;AAAA,EAGP,EACC,KAAK,IAAI;AAEZ,SAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAcL,QAAQ;AAAA;AAAA;AAGZ;AAEO,SAAS,qBACd,WACuC;AACvC,QAAM,UAAU,gCAAgC,SAAS;AACzD,SAAO,QAAQ,IAAI,CAAC,SAAS;AAAA,IAC3B,OAAO,IAAI,SAAS;AAAA,IACpB,KAAK,yBAAyB,GAAG;AAAA,EACnC,EAAE;AACJ;","names":[]}
@@ -20,7 +20,7 @@ function stackGraphicsHorizontally(graphicsList) {
20
20
  const prevWidth = prevBounds.maxX - prevBounds.minX;
21
21
  const width = bounds.maxX - bounds.minX;
22
22
  const padding = (prevWidth + width) / 8;
23
- const dx = prevBounds.maxX + padding - bounds.minX;
23
+ const dx = prevBounds.minX - padding - bounds.maxX;
24
24
  const dy = baseMinY - bounds.minY;
25
25
  const shifted = translateGraphics(g, dx, dy);
26
26
  result = mergeGraphics(result, shifted);
@@ -40,16 +40,45 @@ function stackGraphicsVertically(graphicsList) {
40
40
  const height = bounds.maxY - bounds.minY;
41
41
  const padding = (prevHeight + height) / 8;
42
42
  const dx = baseMinX - bounds.minX;
43
- const dy = prevBounds.maxY + padding - bounds.minY;
43
+ const dy = prevBounds.minY - padding - bounds.maxY;
44
44
  const shifted = translateGraphics(g, dx, dy);
45
45
  result = mergeGraphics(result, shifted);
46
46
  prevBounds = getBounds(shifted);
47
47
  }
48
48
  return result;
49
49
  }
50
+ function createGraphicsGrid(graphicsRows, opts = {}) {
51
+ if (graphicsRows.length === 0 || graphicsRows[0].length === 0) return {};
52
+ let maxWidth = 0;
53
+ let maxHeight = 0;
54
+ for (const row of graphicsRows) {
55
+ for (const g of row) {
56
+ const b = getBounds(g);
57
+ maxWidth = Math.max(maxWidth, b.maxX - b.minX);
58
+ maxHeight = Math.max(maxHeight, b.maxY - b.minY);
59
+ }
60
+ }
61
+ const cellWidth = opts.cellWidth ?? maxWidth;
62
+ const cellHeight = opts.cellHeight ?? maxHeight;
63
+ const gap = opts.gap ?? (opts.gapAsCellWidthFraction !== void 0 ? opts.gapAsCellWidthFraction * cellWidth : 0);
64
+ let result = null;
65
+ for (let r = 0; r < graphicsRows.length; r++) {
66
+ const row = graphicsRows[r];
67
+ for (let c = 0; c < row.length; c++) {
68
+ const g = row[c];
69
+ const b = getBounds(g);
70
+ const dx = c * (cellWidth + gap) - b.minX;
71
+ const dy = r * (cellHeight + gap) - b.minY;
72
+ const shifted = translateGraphics(g, dx, dy);
73
+ result = result ? mergeGraphics(result, shifted) : shifted;
74
+ }
75
+ }
76
+ return result ?? {};
77
+ }
50
78
 
51
79
  export {
52
80
  stackGraphicsHorizontally,
53
- stackGraphicsVertically
81
+ stackGraphicsVertically,
82
+ createGraphicsGrid
54
83
  };
55
- //# sourceMappingURL=chunk-J5MZK6YF.js.map
84
+ //# sourceMappingURL=chunk-ZIHVJTH2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../lib/stackGraphics.ts"],"sourcesContent":["export {\n stackGraphicsHorizontally,\n stackGraphicsVertically,\n createGraphicsGrid,\n}\nimport type { GraphicsObject } from \"./types\"\nimport { getBounds } from \"./drawGraphicsToCanvas\"\nimport { translateGraphics } from \"./translateGraphics\"\nimport { mergeGraphics } from \"./mergeGraphics\"\n\nfunction stackGraphicsHorizontally(\n graphicsList: GraphicsObject[],\n): GraphicsObject {\n if (graphicsList.length === 0) return {}\n let result = graphicsList[0]\n let prevBounds = getBounds(result)\n const baseMinY = prevBounds.minY\n for (let i = 1; i < graphicsList.length; i++) {\n const g = graphicsList[i]\n const bounds = getBounds(g)\n const prevWidth = prevBounds.maxX - prevBounds.minX\n const width = bounds.maxX - bounds.minX\n const padding = (prevWidth + width) / 8\n const dx = prevBounds.minX - padding - bounds.maxX\n const dy = baseMinY - bounds.minY\n const shifted = translateGraphics(g, dx, dy)\n result = mergeGraphics(result, shifted)\n prevBounds = getBounds(shifted)\n }\n return result\n}\n\nfunction stackGraphicsVertically(\n graphicsList: GraphicsObject[],\n): GraphicsObject {\n if (graphicsList.length === 0) return {}\n let result = graphicsList[0]\n let prevBounds = getBounds(result)\n const baseMinX = prevBounds.minX\n for (let i = 1; i < graphicsList.length; i++) {\n const g = graphicsList[i]\n const bounds = getBounds(g)\n const prevHeight = prevBounds.maxY - prevBounds.minY\n const height = bounds.maxY - bounds.minY\n const padding = (prevHeight + height) / 8\n const dx = baseMinX - bounds.minX\n const dy = prevBounds.minY - padding - bounds.maxY\n const shifted = translateGraphics(g, dx, dy)\n result = mergeGraphics(result, shifted)\n prevBounds = getBounds(shifted)\n }\n return result\n}\n\nfunction createGraphicsGrid(\n graphicsRows: GraphicsObject[][],\n opts: {\n cellWidth?: number\n cellHeight?: number\n gap?: number\n gapAsCellWidthFraction?: number\n } = {},\n): GraphicsObject {\n if (graphicsRows.length === 0 || graphicsRows[0].length === 0) return {}\n\n let maxWidth = 0\n let maxHeight = 0\n for (const row of graphicsRows) {\n for (const g of row) {\n const b = getBounds(g)\n maxWidth = Math.max(maxWidth, b.maxX - b.minX)\n maxHeight = Math.max(maxHeight, b.maxY - b.minY)\n }\n }\n\n const cellWidth = opts.cellWidth ?? maxWidth\n const cellHeight = opts.cellHeight ?? maxHeight\n const gap =\n opts.gap ??\n (opts.gapAsCellWidthFraction !== undefined\n ? opts.gapAsCellWidthFraction * cellWidth\n : 0)\n\n let result: GraphicsObject | null = null\n\n for (let r = 0; r < graphicsRows.length; r++) {\n const row = graphicsRows[r]\n for (let c = 0; c < row.length; c++) {\n const g = row[c]\n const b = getBounds(g)\n const dx = c * (cellWidth + gap) - b.minX\n const dy = r * (cellHeight + gap) - b.minY\n const shifted = translateGraphics(g, dx, dy)\n result = result ? mergeGraphics(result, shifted) : shifted\n }\n }\n\n return result ?? {}\n}\n"],"mappings":";;;;;;;;;;;AAUA,SAAS,0BACP,cACgB;AAChB,MAAI,aAAa,WAAW,EAAG,QAAO,CAAC;AACvC,MAAI,SAAS,aAAa,CAAC;AAC3B,MAAI,aAAa,UAAU,MAAM;AACjC,QAAM,WAAW,WAAW;AAC5B,WAAS,IAAI,GAAG,IAAI,aAAa,QAAQ,KAAK;AAC5C,UAAM,IAAI,aAAa,CAAC;AACxB,UAAM,SAAS,UAAU,CAAC;AAC1B,UAAM,YAAY,WAAW,OAAO,WAAW;AAC/C,UAAM,QAAQ,OAAO,OAAO,OAAO;AACnC,UAAM,WAAW,YAAY,SAAS;AACtC,UAAM,KAAK,WAAW,OAAO,UAAU,OAAO;AAC9C,UAAM,KAAK,WAAW,OAAO;AAC7B,UAAM,UAAU,kBAAkB,GAAG,IAAI,EAAE;AAC3C,aAAS,cAAc,QAAQ,OAAO;AACtC,iBAAa,UAAU,OAAO;AAAA,EAChC;AACA,SAAO;AACT;AAEA,SAAS,wBACP,cACgB;AAChB,MAAI,aAAa,WAAW,EAAG,QAAO,CAAC;AACvC,MAAI,SAAS,aAAa,CAAC;AAC3B,MAAI,aAAa,UAAU,MAAM;AACjC,QAAM,WAAW,WAAW;AAC5B,WAAS,IAAI,GAAG,IAAI,aAAa,QAAQ,KAAK;AAC5C,UAAM,IAAI,aAAa,CAAC;AACxB,UAAM,SAAS,UAAU,CAAC;AAC1B,UAAM,aAAa,WAAW,OAAO,WAAW;AAChD,UAAM,SAAS,OAAO,OAAO,OAAO;AACpC,UAAM,WAAW,aAAa,UAAU;AACxC,UAAM,KAAK,WAAW,OAAO;AAC7B,UAAM,KAAK,WAAW,OAAO,UAAU,OAAO;AAC9C,UAAM,UAAU,kBAAkB,GAAG,IAAI,EAAE;AAC3C,aAAS,cAAc,QAAQ,OAAO;AACtC,iBAAa,UAAU,OAAO;AAAA,EAChC;AACA,SAAO;AACT;AAEA,SAAS,mBACP,cACA,OAKI,CAAC,GACW;AAChB,MAAI,aAAa,WAAW,KAAK,aAAa,CAAC,EAAE,WAAW,EAAG,QAAO,CAAC;AAEvE,MAAI,WAAW;AACf,MAAI,YAAY;AAChB,aAAW,OAAO,cAAc;AAC9B,eAAW,KAAK,KAAK;AACnB,YAAM,IAAI,UAAU,CAAC;AACrB,iBAAW,KAAK,IAAI,UAAU,EAAE,OAAO,EAAE,IAAI;AAC7C,kBAAY,KAAK,IAAI,WAAW,EAAE,OAAO,EAAE,IAAI;AAAA,IACjD;AAAA,EACF;AAEA,QAAM,YAAY,KAAK,aAAa;AACpC,QAAM,aAAa,KAAK,cAAc;AACtC,QAAM,MACJ,KAAK,QACJ,KAAK,2BAA2B,SAC7B,KAAK,yBAAyB,YAC9B;AAEN,MAAI,SAAgC;AAEpC,WAAS,IAAI,GAAG,IAAI,aAAa,QAAQ,KAAK;AAC5C,UAAM,MAAM,aAAa,CAAC;AAC1B,aAAS,IAAI,GAAG,IAAI,IAAI,QAAQ,KAAK;AACnC,YAAM,IAAI,IAAI,CAAC;AACf,YAAM,IAAI,UAAU,CAAC;AACrB,YAAM,KAAK,KAAK,YAAY,OAAO,EAAE;AACrC,YAAM,KAAK,KAAK,aAAa,OAAO,EAAE;AACtC,YAAM,UAAU,kBAAkB,GAAG,IAAI,EAAE;AAC3C,eAAS,SAAS,cAAc,QAAQ,OAAO,IAAI;AAAA,IACrD;AAAA,EACF;AAEA,SAAO,UAAU,CAAC;AACpB;","names":[]}
package/dist/cli/cli.js CHANGED
@@ -2,8 +2,8 @@
2
2
  import {
3
3
  getHtmlFromLogString,
4
4
  getSvgsFromLogString
5
- } from "../chunk-NVFLPFBX.js";
6
- import "../chunk-J5MZK6YF.js";
5
+ } from "../chunk-EO534DRE.js";
6
+ import "../chunk-ZIHVJTH2.js";
7
7
  import "../chunk-K2IJQPPY.js";
8
8
  import "../chunk-ARYXS3GC.js";
9
9
  import {
@@ -14,8 +14,8 @@ import "../chunk-ZGI74PYD.js";
14
14
  import "../chunk-TJJMMKHI.js";
15
15
 
16
16
  // cli/cli.ts
17
- import { parseArgs } from "node:util";
18
- import { writeFileSync } from "node:fs";
17
+ import { parseArgs } from "util";
18
+ import { writeFileSync } from "fs";
19
19
  async function getInput() {
20
20
  if (process.stdin.isTTY && process.stderr.isTTY) {
21
21
  console.error(
@@ -4,7 +4,7 @@ export { getSvgFromGraphicsObject } from './getSvgFromGraphicsObject.js';
4
4
  export { computeTransformFromViewbox, drawGraphicsToCanvas, getBounds } from './drawGraphicsToCanvas.js';
5
5
  export { translateGraphics } from './translateGraphics.js';
6
6
  export { mergeGraphics } from './mergeGraphics.js';
7
- export { stackGraphicsHorizontally, stackGraphicsVertically } from './stackGraphics.js';
7
+ export { createGraphicsGrid, stackGraphicsHorizontally, stackGraphicsVertically } from './stackGraphics.js';
8
8
  export { FONT_SIZE_HEIGHT_RATIO, FONT_SIZE_WIDTH_RATIO } from './constants.js';
9
9
  import 'transformation-matrix';
10
10
 
package/dist/lib/index.js CHANGED
@@ -2,11 +2,12 @@ import {
2
2
  getHtmlFromLogString,
3
3
  getSvgFromLogString,
4
4
  getSvgsFromLogString
5
- } from "../chunk-NVFLPFBX.js";
5
+ } from "../chunk-EO534DRE.js";
6
6
  import {
7
+ createGraphicsGrid,
7
8
  stackGraphicsHorizontally,
8
9
  stackGraphicsVertically
9
- } from "../chunk-J5MZK6YF.js";
10
+ } from "../chunk-ZIHVJTH2.js";
10
11
  import {
11
12
  translateGraphics
12
13
  } from "../chunk-K2IJQPPY.js";
@@ -32,6 +33,7 @@ export {
32
33
  FONT_SIZE_HEIGHT_RATIO,
33
34
  FONT_SIZE_WIDTH_RATIO,
34
35
  computeTransformFromViewbox,
36
+ createGraphicsGrid,
35
37
  drawGraphicsToCanvas,
36
38
  getBounds,
37
39
  getGraphicsObjectsFromLogString,
@@ -5,8 +5,8 @@ import "../chunk-ZGI74PYD.js";
5
5
 
6
6
  // lib/matcher.ts
7
7
  import { expect } from "bun:test";
8
- import * as fs from "node:fs";
9
- import * as path from "node:path";
8
+ import * as fs from "fs";
9
+ import * as path from "path";
10
10
  import looksSame from "looks-same";
11
11
  async function toMatchGraphicsSvg(receivedMaybePromise, testPathOriginal, opts = {}) {
12
12
  const received = await receivedMaybePromise;
package/dist/lib/react.js CHANGED
@@ -1,5 +1,5 @@
1
- import "../chunk-NVFLPFBX.js";
2
- import "../chunk-J5MZK6YF.js";
1
+ import "../chunk-EO534DRE.js";
2
+ import "../chunk-ZIHVJTH2.js";
3
3
  import "../chunk-K2IJQPPY.js";
4
4
  import {
5
5
  defaultColors,
@@ -3,5 +3,11 @@ import 'transformation-matrix';
3
3
 
4
4
  declare function stackGraphicsHorizontally(graphicsList: GraphicsObject[]): GraphicsObject;
5
5
  declare function stackGraphicsVertically(graphicsList: GraphicsObject[]): GraphicsObject;
6
+ declare function createGraphicsGrid(graphicsRows: GraphicsObject[][], opts?: {
7
+ cellWidth?: number;
8
+ cellHeight?: number;
9
+ gap?: number;
10
+ gapAsCellWidthFraction?: number;
11
+ }): GraphicsObject;
6
12
 
7
- export { stackGraphicsHorizontally, stackGraphicsVertically };
13
+ export { createGraphicsGrid, stackGraphicsHorizontally, stackGraphicsVertically };
@@ -1,12 +1,14 @@
1
1
  import {
2
+ createGraphicsGrid,
2
3
  stackGraphicsHorizontally,
3
4
  stackGraphicsVertically
4
- } from "../chunk-J5MZK6YF.js";
5
+ } from "../chunk-ZIHVJTH2.js";
5
6
  import "../chunk-K2IJQPPY.js";
6
7
  import "../chunk-ARYXS3GC.js";
7
8
  import "../chunk-ZGI74PYD.js";
8
9
  import "../chunk-TJJMMKHI.js";
9
10
  export {
11
+ createGraphicsGrid,
10
12
  stackGraphicsHorizontally,
11
13
  stackGraphicsVertically
12
14
  };
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "graphics-debug",
3
3
  "main": "dist/lib/index.js",
4
4
  "type": "module",
5
- "version": "0.0.50",
5
+ "version": "0.0.52",
6
6
  "files": [
7
7
  "dist"
8
8
  ],
@@ -65,7 +65,7 @@
65
65
  "react-router-dom": "^6.28.0",
66
66
  "react-supergrid": "^1.0.10",
67
67
  "svgson": "^5.3.1",
68
- "transformation-matrix": "^2.16.1",
68
+ "transformation-matrix": "^3.0.0",
69
69
  "use-mouse-matrix-transform": "^1.3.0"
70
70
  }
71
71
  }
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../lib/stackGraphics.ts"],"sourcesContent":["export { stackGraphicsHorizontally, stackGraphicsVertically }\nimport type { GraphicsObject } from \"./types\"\nimport { getBounds } from \"./drawGraphicsToCanvas\"\nimport { translateGraphics } from \"./translateGraphics\"\nimport { mergeGraphics } from \"./mergeGraphics\"\n\nfunction stackGraphicsHorizontally(\n graphicsList: GraphicsObject[],\n): GraphicsObject {\n if (graphicsList.length === 0) return {}\n let result = graphicsList[0]\n let prevBounds = getBounds(result)\n const baseMinY = prevBounds.minY\n for (let i = 1; i < graphicsList.length; i++) {\n const g = graphicsList[i]\n const bounds = getBounds(g)\n const prevWidth = prevBounds.maxX - prevBounds.minX\n const width = bounds.maxX - bounds.minX\n const padding = (prevWidth + width) / 8\n const dx = prevBounds.maxX + padding - bounds.minX\n const dy = baseMinY - bounds.minY\n const shifted = translateGraphics(g, dx, dy)\n result = mergeGraphics(result, shifted)\n prevBounds = getBounds(shifted)\n }\n return result\n}\n\nfunction stackGraphicsVertically(\n graphicsList: GraphicsObject[],\n): GraphicsObject {\n if (graphicsList.length === 0) return {}\n let result = graphicsList[0]\n let prevBounds = getBounds(result)\n const baseMinX = prevBounds.minX\n for (let i = 1; i < graphicsList.length; i++) {\n const g = graphicsList[i]\n const bounds = getBounds(g)\n const prevHeight = prevBounds.maxY - prevBounds.minY\n const height = bounds.maxY - bounds.minY\n const padding = (prevHeight + height) / 8\n const dx = baseMinX - bounds.minX\n const dy = prevBounds.maxY + padding - bounds.minY\n const shifted = translateGraphics(g, dx, dy)\n result = mergeGraphics(result, shifted)\n prevBounds = getBounds(shifted)\n }\n return result\n}\n"],"mappings":";;;;;;;;;;;AAMA,SAAS,0BACP,cACgB;AAChB,MAAI,aAAa,WAAW,EAAG,QAAO,CAAC;AACvC,MAAI,SAAS,aAAa,CAAC;AAC3B,MAAI,aAAa,UAAU,MAAM;AACjC,QAAM,WAAW,WAAW;AAC5B,WAAS,IAAI,GAAG,IAAI,aAAa,QAAQ,KAAK;AAC5C,UAAM,IAAI,aAAa,CAAC;AACxB,UAAM,SAAS,UAAU,CAAC;AAC1B,UAAM,YAAY,WAAW,OAAO,WAAW;AAC/C,UAAM,QAAQ,OAAO,OAAO,OAAO;AACnC,UAAM,WAAW,YAAY,SAAS;AACtC,UAAM,KAAK,WAAW,OAAO,UAAU,OAAO;AAC9C,UAAM,KAAK,WAAW,OAAO;AAC7B,UAAM,UAAU,kBAAkB,GAAG,IAAI,EAAE;AAC3C,aAAS,cAAc,QAAQ,OAAO;AACtC,iBAAa,UAAU,OAAO;AAAA,EAChC;AACA,SAAO;AACT;AAEA,SAAS,wBACP,cACgB;AAChB,MAAI,aAAa,WAAW,EAAG,QAAO,CAAC;AACvC,MAAI,SAAS,aAAa,CAAC;AAC3B,MAAI,aAAa,UAAU,MAAM;AACjC,QAAM,WAAW,WAAW;AAC5B,WAAS,IAAI,GAAG,IAAI,aAAa,QAAQ,KAAK;AAC5C,UAAM,IAAI,aAAa,CAAC;AACxB,UAAM,SAAS,UAAU,CAAC;AAC1B,UAAM,aAAa,WAAW,OAAO,WAAW;AAChD,UAAM,SAAS,OAAO,OAAO,OAAO;AACpC,UAAM,WAAW,aAAa,UAAU;AACxC,UAAM,KAAK,WAAW,OAAO;AAC7B,UAAM,KAAK,WAAW,OAAO,UAAU,OAAO;AAC9C,UAAM,UAAU,kBAAkB,GAAG,IAAI,EAAE;AAC3C,aAAS,cAAc,QAAQ,OAAO;AACtC,iBAAa,UAAU,OAAO;AAAA,EAChC;AACA,SAAO;AACT;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../lib/index.ts"],"sourcesContent":["import { getGraphicsObjectsFromLogString } from \"./getGraphicsObjectsFromLogString\"\nimport { getSvgFromGraphicsObject } from \"./getSvgFromGraphicsObject\"\nimport {\n drawGraphicsToCanvas,\n computeTransformFromViewbox,\n getBounds,\n} from \"./drawGraphicsToCanvas\"\nimport { translateGraphics } from \"./translateGraphics\"\nimport { mergeGraphics } from \"./mergeGraphics\"\nimport {\n stackGraphicsHorizontally,\n stackGraphicsVertically,\n} from \"./stackGraphics\"\n\nexport type {\n Point,\n Line,\n Rect,\n Circle,\n Text,\n NinePointAnchor,\n GraphicsObject,\n Viewbox,\n CenterViewbox,\n TransformOptions,\n} from \"./types\"\nexport { getGraphicsObjectsFromLogString } from \"./getGraphicsObjectsFromLogString\"\nexport { getSvgFromGraphicsObject } from \"./getSvgFromGraphicsObject\"\nexport {\n drawGraphicsToCanvas,\n computeTransformFromViewbox,\n getBounds,\n} from \"./drawGraphicsToCanvas\"\nexport { translateGraphics } from \"./translateGraphics\"\nexport { mergeGraphics } from \"./mergeGraphics\"\nexport {\n stackGraphicsHorizontally,\n stackGraphicsVertically,\n} from \"./stackGraphics\"\nexport { FONT_SIZE_WIDTH_RATIO, FONT_SIZE_HEIGHT_RATIO } from \"./constants\"\n\nexport function getSvgFromLogString(logString: string): string {\n const objects = getGraphicsObjectsFromLogString(logString)\n if (objects.length === 0) return \"\"\n return getSvgFromGraphicsObject(objects[0])\n}\n\nexport function getHtmlFromLogString(logString: string): string {\n const svgs = getSvgsFromLogString(logString)\n if (svgs.length === 0) return \"\"\n\n const sections = svgs\n .map(\n ({ title, svg }) => `\n <section>\n <h2>${title}</h2>\n ${svg}\n </section>\n `,\n )\n .join(\"\\n\")\n\n return `\n<!DOCTYPE html>\n<html>\n<head>\n <title>Graphics Debug Output</title>\n <style>\n body { font-family: system-ui; max-width: 1200px; margin: 0 auto; padding: 20px; }\n h1 { color: #333; }\n section { margin: 40px 0; }\n svg { max-width: 100%; height: auto; border: 1px solid #eee; }\n </style>\n</head>\n<body>\n <h1>Graphics Debug Output</h1>\n ${sections}\n</body>\n</html>`\n}\n\nexport function getSvgsFromLogString(\n logString: string,\n): Array<{ title: string; svg: string }> {\n const objects = getGraphicsObjectsFromLogString(logString)\n return objects.map((obj) => ({\n title: obj.title || \"Untitled Graphic\",\n svg: getSvgFromGraphicsObject(obj),\n }))\n}\n"],"mappings":";;;;;;;;AAyCO,SAAS,oBAAoB,WAA2B;AAC7D,QAAM,UAAU,gCAAgC,SAAS;AACzD,MAAI,QAAQ,WAAW,EAAG,QAAO;AACjC,SAAO,yBAAyB,QAAQ,CAAC,CAAC;AAC5C;AAEO,SAAS,qBAAqB,WAA2B;AAC9D,QAAM,OAAO,qBAAqB,SAAS;AAC3C,MAAI,KAAK,WAAW,EAAG,QAAO;AAE9B,QAAM,WAAW,KACd;AAAA,IACC,CAAC,EAAE,OAAO,IAAI,MAAM;AAAA;AAAA,YAEd,KAAK;AAAA,QACT,GAAG;AAAA;AAAA;AAAA,EAGP,EACC,KAAK,IAAI;AAEZ,SAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAcL,QAAQ;AAAA;AAAA;AAGZ;AAEO,SAAS,qBACd,WACuC;AACvC,QAAM,UAAU,gCAAgC,SAAS;AACzD,SAAO,QAAQ,IAAI,CAAC,SAAS;AAAA,IAC3B,OAAO,IAAI,SAAS;AAAA,IACpB,KAAK,yBAAyB,GAAG;AAAA,EACnC,EAAE;AACJ;","names":[]}