@coldtea/pr-lens-renderer 0.3.5 → 0.4.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 (62) hide show
  1. package/dist/atlas.d.ts +2 -0
  2. package/dist/atlas.d.ts.map +1 -1
  3. package/dist/atlas.js +1 -1
  4. package/dist/atlas.js.map +1 -1
  5. package/dist/corrections.d.ts.map +1 -1
  6. package/dist/corrections.js +7 -1
  7. package/dist/corrections.js.map +1 -1
  8. package/dist/design.d.ts +25 -0
  9. package/dist/design.d.ts.map +1 -1
  10. package/dist/design.js +25 -0
  11. package/dist/design.js.map +1 -1
  12. package/dist/layout/architecture.d.ts +6 -2
  13. package/dist/layout/architecture.d.ts.map +1 -1
  14. package/dist/layout/architecture.js +12 -19
  15. package/dist/layout/architecture.js.map +1 -1
  16. package/dist/layout/datamodel.d.ts +70 -0
  17. package/dist/layout/datamodel.d.ts.map +1 -0
  18. package/dist/layout/datamodel.js +381 -0
  19. package/dist/layout/datamodel.js.map +1 -0
  20. package/dist/layout/edges.d.ts +8 -0
  21. package/dist/layout/edges.d.ts.map +1 -1
  22. package/dist/layout/edges.js +2 -2
  23. package/dist/layout/edges.js.map +1 -1
  24. package/dist/render.d.ts.map +1 -1
  25. package/dist/render.js +18 -1
  26. package/dist/render.js.map +1 -1
  27. package/dist/scope.d.ts +4 -1
  28. package/dist/scope.d.ts.map +1 -1
  29. package/dist/scope.js +28 -2
  30. package/dist/scope.js.map +1 -1
  31. package/dist/svg/architecture.d.ts +5 -2
  32. package/dist/svg/architecture.d.ts.map +1 -1
  33. package/dist/svg/architecture.js +10 -11
  34. package/dist/svg/architecture.js.map +1 -1
  35. package/dist/svg/datamodel.d.ts +11 -0
  36. package/dist/svg/datamodel.d.ts.map +1 -0
  37. package/dist/svg/datamodel.js +252 -0
  38. package/dist/svg/datamodel.js.map +1 -0
  39. package/dist/svg/icons.d.ts +2 -0
  40. package/dist/svg/icons.d.ts.map +1 -1
  41. package/dist/svg/icons.js +14 -0
  42. package/dist/svg/icons.js.map +1 -1
  43. package/dist/svg/styles.d.ts +3 -1
  44. package/dist/svg/styles.d.ts.map +1 -1
  45. package/dist/svg/styles.js +6 -0
  46. package/dist/svg/styles.js.map +1 -1
  47. package/dist/version.d.ts +1 -1
  48. package/dist/version.js +1 -1
  49. package/package.json +3 -3
  50. package/src/atlas.ts +3 -1
  51. package/src/corrections.ts +7 -1
  52. package/src/design.ts +26 -0
  53. package/src/layout/architecture.ts +16 -10
  54. package/src/layout/datamodel.ts +524 -0
  55. package/src/layout/edges.ts +2 -2
  56. package/src/render.ts +18 -1
  57. package/src/scope.ts +46 -3
  58. package/src/svg/architecture.ts +12 -13
  59. package/src/svg/datamodel.ts +344 -0
  60. package/src/svg/icons.ts +20 -0
  61. package/src/svg/styles.ts +8 -1
  62. package/src/version.ts +1 -1
@@ -0,0 +1,252 @@
1
+ import { assertNever } from "@coldtea/pr-lens-schema";
2
+ import { measure, truncate } from "../text.js";
3
+ import { canvasFor, union } from "../bounds.js";
4
+ import { coord } from "../geometry.js";
5
+ import { curveBounds } from "../layout/edges.js";
6
+ import { lines, tag, textNode, wrap } from "./primitives.js";
7
+ import { tableGlyph } from "./icons.js";
8
+ import { atlasBoxes, emptyAtlas } from "../atlas.js";
9
+ import { markerFor, shifted, toneColour, toneFor } from "./document.js";
10
+ import { cardAttributes, cardGroupAttributes, relationAttributes, stylesFor } from "./styles.js";
11
+ import { cardOutlineClass, paintBadgeStrip, paintLabelPill } from "./architecture.js";
12
+ import { badgeStrip, badgesFor, cardTextWidth, laneHeaderText } from "../layout/architecture.js";
13
+ import { layoutDataModel, routeRelations, } from "../layout/datamodel.js";
14
+ import { CARD_HEIGHT_WITH_SUBTITLE, CARD_PADDING_X, CARD_RADIUS, DIAGRAM_MARGIN, ICON_CHIP_GAP, ICON_CHIP_RADIUS, ICON_CHIP_SIZE, KEY_CHIP_GAP, KEY_CHIP_HEIGHT, KEY_CHIP_WIDTH, LANE_HEADER_BASELINE, LANE_PADDING_X, LANE_RADIUS, LANE_TOP, SUBTITLE_SIZE, TABLE_ROW_TEXT_SIZE, TABLE_ROW_TYPE_SIZE, } from "../design.js";
15
+ const keyChipText = (key) => {
16
+ switch (key) {
17
+ case "primary":
18
+ return "PK";
19
+ case "foreign":
20
+ return "FK";
21
+ case "index":
22
+ return "IX";
23
+ default:
24
+ return assertNever(key, "Unhandled column key");
25
+ }
26
+ };
27
+ /** The subtitle under a table's name: its physical name, and how many columns it has. */
28
+ const tableSubtitle = (placed) => {
29
+ const count = `${placed.table.columns.length} ${placed.table.columns.length === 1 ? "column" : "columns"}`;
30
+ return placed.table.name === undefined ? count : `${placed.table.name} · ${count}`;
31
+ };
32
+ const paintColumns = (placed, palette) => {
33
+ const styles = stylesFor(palette);
34
+ const { box } = placed;
35
+ const left = box.x + CARD_PADDING_X;
36
+ const nameX = left + KEY_CHIP_WIDTH + KEY_CHIP_GAP;
37
+ const right = box.x + box.width - CARD_PADDING_X;
38
+ return lines(placed.columns.map(({ column, centre }) => {
39
+ const tone = toneFor(column.delta);
40
+ const ink = (() => {
41
+ switch (column.delta) {
42
+ case "added":
43
+ return palette.addedText;
44
+ case "removed":
45
+ return palette.removedText;
46
+ case "modified":
47
+ case "unchanged":
48
+ return palette.foreground;
49
+ default:
50
+ return assertNever(column.delta, "Unhandled delta");
51
+ }
52
+ })();
53
+ const chip = column.key === undefined
54
+ ? ""
55
+ : tag("rect", {
56
+ class: "chip",
57
+ x: coord(left),
58
+ y: coord(centre - KEY_CHIP_HEIGHT / 2),
59
+ width: KEY_CHIP_WIDTH,
60
+ height: KEY_CHIP_HEIGHT,
61
+ rx: KEY_CHIP_HEIGHT / 2,
62
+ ...styles.chip,
63
+ }) +
64
+ textNode({
65
+ class: "keytext",
66
+ x: coord(left + KEY_CHIP_WIDTH / 2),
67
+ y: coord(centre + 3),
68
+ "text-anchor": "middle",
69
+ "font-size": 8,
70
+ "font-weight": 700,
71
+ "letter-spacing": ".06em",
72
+ fill: palette.muted,
73
+ }, keyChipText(column.key));
74
+ // A changed type says what it was: the old spelling struck, then the new one.
75
+ // Non-breaking spaces, because a tspan swallows the ordinary kind at its edges.
76
+ const typeText = column.previousType === undefined ? column.type : `${column.previousType}\u00a0→\u00a0${column.type}`;
77
+ const typeWidth = measure(typeText, "mono", TABLE_ROW_TYPE_SIZE);
78
+ const typeFill = tone === "modified" ? palette.modifiedText : tone === "added" ? palette.addedText : palette.muted;
79
+ const type = column.previousType === undefined
80
+ ? textNode({ class: "coltype", x: coord(right), y: coord(centre + 3.5), "text-anchor": "end", "font-size": TABLE_ROW_TYPE_SIZE, "font-family": styles.subtitle["font-family"], fill: typeFill }, typeText)
81
+ : wrap("text", { class: "coltype", x: coord(right), y: coord(centre + 3.5), "text-anchor": "end", "font-size": TABLE_ROW_TYPE_SIZE, "font-family": styles.subtitle["font-family"], fill: typeFill }, wrap("tspan", { fill: palette.muted, "text-decoration": "line-through" }, column.previousType) +
82
+ wrap("tspan", {}, `\u00a0→\u00a0${column.type}`));
83
+ const nameRoom = right - typeWidth - KEY_CHIP_GAP - nameX;
84
+ const name = textNode({
85
+ class: column.delta === "removed" ? "colname strike" : "colname",
86
+ x: coord(nameX),
87
+ y: coord(centre + 4),
88
+ "font-size": TABLE_ROW_TEXT_SIZE,
89
+ "font-family": styles.subtitle["font-family"],
90
+ fill: ink,
91
+ "text-decoration": column.delta === "removed" ? "line-through" : undefined,
92
+ }, truncate(column.name, "mono", TABLE_ROW_TEXT_SIZE, nameRoom));
93
+ return lines([chip, name, type]);
94
+ }));
95
+ };
96
+ /** The closing row of a folded card: a dashed rule, then how many columns stayed out of the picture. */
97
+ const paintFold = (placed, palette) => {
98
+ const { fold, box } = placed;
99
+ if (fold === undefined)
100
+ return "";
101
+ const styles = stylesFor(palette);
102
+ const label = `+ ${fold.hidden} ${fold.unchangedOnly ? "unchanged columns" : "more columns"}`;
103
+ return lines([
104
+ tag("path", {
105
+ class: "rule",
106
+ d: `M${coord(box.x + CARD_PADDING_X)},${coord(fold.top)} h${coord(box.width - CARD_PADDING_X * 2)}`,
107
+ stroke: palette.cardBorder,
108
+ "stroke-width": 1,
109
+ "stroke-dasharray": "3 3",
110
+ }),
111
+ textNode({
112
+ class: "fold",
113
+ x: coord(box.x + CARD_PADDING_X + KEY_CHIP_WIDTH + KEY_CHIP_GAP),
114
+ y: coord(fold.centre + 4),
115
+ "font-size": TABLE_ROW_TEXT_SIZE,
116
+ "font-family": styles.subtitle["font-family"],
117
+ fill: palette.muted,
118
+ }, label),
119
+ ]);
120
+ };
121
+ const paintTable = (placed, palette) => {
122
+ const styles = stylesFor(palette);
123
+ const { table, box, titleSize } = placed;
124
+ const textX = box.x + CARD_PADDING_X + ICON_CHIP_SIZE + ICON_CHIP_GAP;
125
+ const textWidth = cardTextWidth(box.width, true);
126
+ const headerBottom = box.y + CARD_HEIGHT_WITH_SUBTITLE;
127
+ const groupClass = table.delta === "removed" ? "cardsh ghost" : table.delta === "unchanged" ? "cardsh context" : "cardsh";
128
+ return wrap("g", { class: groupClass, ...cardGroupAttributes(table.delta, palette) }, lines([
129
+ tag("rect", {
130
+ class: cardOutlineClass(table.delta),
131
+ x: coord(box.x),
132
+ y: coord(box.y),
133
+ width: coord(box.width),
134
+ height: coord(box.height),
135
+ rx: CARD_RADIUS,
136
+ ...cardAttributes(table.delta, palette),
137
+ }),
138
+ tag("rect", {
139
+ class: "chip",
140
+ x: coord(box.x + CARD_PADDING_X),
141
+ y: coord(box.y + (CARD_HEIGHT_WITH_SUBTITLE - ICON_CHIP_SIZE) / 2),
142
+ width: ICON_CHIP_SIZE,
143
+ height: ICON_CHIP_SIZE,
144
+ rx: ICON_CHIP_RADIUS,
145
+ ...styles.chip,
146
+ }),
147
+ tableGlyph(box.x + CARD_PADDING_X + ICON_CHIP_SIZE / 2, box.y + CARD_HEIGHT_WITH_SUBTITLE / 2, styles),
148
+ textNode({
149
+ class: table.delta === "removed" ? "ntitle strike" : "ntitle",
150
+ x: coord(textX),
151
+ y: coord(box.y + 27),
152
+ "font-size": titleSize,
153
+ ...styles.title,
154
+ "text-decoration": table.delta === "removed" ? "line-through" : undefined,
155
+ }, truncate(table.label, "sans-bold", titleSize, textWidth)),
156
+ textNode({ class: "nsub", x: coord(textX), y: coord(box.y + 45), ...styles.subtitle }, truncate(tableSubtitle(placed), "mono", SUBTITLE_SIZE, textWidth)),
157
+ tag("path", {
158
+ class: "rule",
159
+ d: `M${coord(box.x)},${coord(headerBottom)} h${coord(box.width)}`,
160
+ stroke: palette.cardBorder,
161
+ "stroke-width": 1,
162
+ }),
163
+ paintColumns(placed, palette),
164
+ paintFold(placed, palette),
165
+ paintBadgeStrip(badgeStrip(box, badgesFor(table.badges, table.delta)), table.delta, palette),
166
+ ]));
167
+ };
168
+ const paintRelation = (routed, palette) => {
169
+ const { relation, path, curve } = routed;
170
+ const tone = toneFor(relation.delta);
171
+ const classes = ["edge", `edge-${tone}`];
172
+ if (relation.delta === "unchanged")
173
+ classes.push("context");
174
+ return {
175
+ markup: lines([
176
+ tag("path", {
177
+ class: classes.join(" "),
178
+ d: path,
179
+ "marker-end": routed.head ? markerFor(tone) : undefined,
180
+ ...relationAttributes(relation, palette),
181
+ }),
182
+ tag("circle", {
183
+ class: "port",
184
+ cx: coord(curve.from.x),
185
+ cy: coord(curve.from.y),
186
+ r: 2.5,
187
+ fill: toneColour(palette, tone),
188
+ opacity: relation.delta === "removed" ? 0.7 : undefined,
189
+ }),
190
+ ]),
191
+ pill: routed.pill === undefined || relation.label === undefined
192
+ ? ""
193
+ : paintLabelPill(relation.label, routed.pill, tone, palette),
194
+ };
195
+ };
196
+ export const paintDataModel = (graph, palette) => {
197
+ const layout = layoutDataModel(graph);
198
+ const routed = routeRelations(layout, graph.relations);
199
+ const styles = stylesFor(palette);
200
+ const drawn = layout.tables.flatMap(({ table, box }) => {
201
+ const strip = badgeStrip(box, badgesFor(table.badges, table.delta));
202
+ return strip === undefined ? [box] : [box, strip.box];
203
+ });
204
+ const edgeMarkup = [];
205
+ const pillMarkup = [];
206
+ for (const relation of routed) {
207
+ const { markup, pill } = paintRelation(relation, palette);
208
+ edgeMarkup.push(markup);
209
+ pillMarkup.push(pill);
210
+ if (relation.pill !== undefined)
211
+ drawn.push(relation.pill);
212
+ }
213
+ const headerBaseline = layout.laneTop + (LANE_HEADER_BASELINE - LANE_TOP);
214
+ const lanes = layout.stores.map(({ store, box }) => {
215
+ const header = { id: store.id, label: store.label, subtitle: store.platform };
216
+ return lines([
217
+ tag("rect", {
218
+ class: "lanebox",
219
+ x: coord(box.x),
220
+ y: coord(box.y),
221
+ width: coord(box.width),
222
+ height: coord(box.height),
223
+ rx: LANE_RADIUS,
224
+ ...styles.lane,
225
+ }),
226
+ textNode({ class: "lanelabel", x: coord(box.x + LANE_PADDING_X), y: coord(headerBaseline), ...styles.laneLabel }, laneHeaderText(header)),
227
+ ]);
228
+ });
229
+ const canvas = canvasFor(layout, union([
230
+ ...layout.stores.map(({ box }) => box),
231
+ ...drawn,
232
+ ...routed.map(({ curve }) => curveBounds(curve)),
233
+ ]), DIAGRAM_MARGIN);
234
+ const painted = lines([
235
+ wrap("g", {}, lines(lanes)),
236
+ wrap("g", {}, lines(edgeMarkup)),
237
+ wrap("g", {}, lines(layout.tables.map((table) => paintTable(table, palette)))),
238
+ wrap("g", {}, lines(pillMarkup)),
239
+ ]);
240
+ return {
241
+ width: canvas.width,
242
+ height: canvas.height,
243
+ body: shifted(canvas, painted),
244
+ atlas: {
245
+ ...emptyAtlas(),
246
+ lanes: atlasBoxes(layout.stores.map(({ store, box }) => ({ id: store.id, box })), canvas),
247
+ tables: atlasBoxes(layout.tables.map(({ table, box }) => ({ id: table.id, box })), canvas),
248
+ edges: atlasBoxes(routed.map(({ relation, curve }) => ({ id: relation.id, box: curveBounds(curve) })), canvas),
249
+ },
250
+ };
251
+ };
252
+ //# sourceMappingURL=datamodel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"datamodel.js","sourceRoot":"","sources":["../../src/svg/datamodel.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,6 @@
1
1
  import type { NodeKind } from "@coldtea/pr-lens-schema";
2
2
  import type { SvgStyles } from "./styles.js";
3
+ /** A table: a box with a header rule and a column divider. */
4
+ export declare const tableGlyph: (cx: number, cy: number, styles: SvgStyles) => string;
3
5
  export declare const glyphGroup: (kind: NodeKind, cx: number, cy: number, styles: SvgStyles) => string;
4
6
  //# sourceMappingURL=icons.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../../src/svg/icons.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAGxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AA8H7C,eAAO,MAAM,UAAU,SAAU,QAAQ,MAAM,MAAM,MAAM,MAAM,UAAU,SAAS,KAAG,MACvC,CAAC"}
1
+ {"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../../src/svg/icons.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAGxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AA8H7C,8DAA8D;AAC9D,eAAO,MAAM,UAAU,OAAQ,MAAM,MAAM,MAAM,UAAU,SAAS,KAAG,MAiBpE,CAAC;AAEJ,eAAO,MAAM,UAAU,SAAU,QAAQ,MAAM,MAAM,MAAM,MAAM,UAAU,SAAS,KAAG,MACvC,CAAC"}
package/dist/svg/icons.js CHANGED
@@ -110,5 +110,19 @@ const kindGlyph = (kind, cx, cy, styles) => {
110
110
  return assertNever(kind, "Unhandled node kind");
111
111
  }
112
112
  };
113
+ /** A table: a box with a header rule and a column divider. */
114
+ export const tableGlyph = (cx, cy, styles) => wrap("g", {}, lines([
115
+ tag("rect", {
116
+ class: "glyph-stroke",
117
+ x: coord(cx - 7),
118
+ y: coord(cy - 6),
119
+ width: 14,
120
+ height: 12,
121
+ rx: 2,
122
+ ...styles.glyphStroke,
123
+ }),
124
+ tag("path", { class: "glyph-stroke", d: `M${coord(cx - 7)},${coord(cy - 2)} h14`, ...styles.glyphStroke }),
125
+ tag("path", { class: "glyph-stroke", d: `M${coord(cx - 2)},${coord(cy - 2)} v8`, ...styles.glyphStroke }),
126
+ ]));
113
127
  export const glyphGroup = (kind, cx, cy, styles) => wrap("g", {}, kindGlyph(kind, cx, cy, styles));
114
128
  //# sourceMappingURL=icons.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"icons.js","sourceRoot":"","sources":["../../src/svg/icons.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"icons.js","sourceRoot":"","sources":["../../src/svg/icons.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { Delta, FlowMessage, GraphEdge } from "@coldtea/pr-lens-schema";
1
+ import type { Delta, FlowMessage, GraphEdge, Relation } from "@coldtea/pr-lens-schema";
2
2
  import type { Palette } from "../theme.js";
3
3
  import type { Attributes } from "./primitives.js";
4
4
  import { type Tone } from "./document.js";
@@ -70,5 +70,7 @@ export declare const badgeColours: (tone: Tone, palette: Palette) => {
70
70
  text: string;
71
71
  };
72
72
  export declare const edgeAttributes: (edge: GraphEdge, palette: Palette) => Attributes;
73
+ /** A key between tables: an edge, dotted when nothing enforces it. */
74
+ export declare const relationAttributes: (relation: Relation, palette: Palette) => Attributes;
73
75
  export declare const messageAttributes: (message: FlowMessage, palette: Palette) => Attributes;
74
76
  //# sourceMappingURL=styles.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../src/svg/styles.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAE7E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAuB,KAAK,IAAI,EAAE,MAAM,eAAe,CAAC;AAG/D,eAAO,MAAM,SAAS,YAAa,OAAO;;QAChC,IAAI;;;QACC,WAAW;QAAM,aAAa;QAAO,gBAAgB;QAAW,IAAI;;;QACxE,aAAa;QAAO,IAAI;;;;;;;;QAEzB,IAAI;;;QACH,IAAI;;;QACE,MAAM;QAAiB,cAAc;QAAO,IAAI;;;QAClD,WAAW;QAAO,aAAa;QAAO,gBAAgB;;;QAC3D,IAAI;QAAU,cAAc;QAAK,OAAO;;;QACxC,IAAI;QAAgB,MAAM;QAAsB,cAAc;;;QAC1D,WAAW;QAAO,aAAa;;;QAC/B,MAAM;QAAoB,cAAc;QAAK,kBAAkB;;;QAC7D,IAAI;QAAqB,MAAM;;CAC7C,CAAC;AAEH,MAAM,MAAM,SAAS,GAAG,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC;AAiBrD,eAAO,MAAM,cAAc,UAAW,KAAK,WAAW,OAAO,KAAG,UAI9D,CAAC;AAgBH,eAAO,MAAM,mBAAmB,UAAW,KAAK,WAAW,OAAO,KAAG,UAGnE,CAAC;AAEH,eAAO,MAAM,YAAY,SAAU,IAAI,WAAW,OAAO;;;;CAaxD,CAAC;AAUF,eAAO,MAAM,cAAc,SAAU,SAAS,WAAW,OAAO,KAAG,UAelE,CAAC;AAEF,eAAO,MAAM,iBAAiB,YAAa,WAAW,WAAW,OAAO,KAAG,UAe1E,CAAC"}
1
+ {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../src/svg/styles.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAEvF,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAuB,KAAK,IAAI,EAAE,MAAM,eAAe,CAAC;AAG/D,eAAO,MAAM,SAAS,YAAa,OAAO;;QAChC,IAAI;;;QACC,WAAW;QAAM,aAAa;QAAO,gBAAgB;QAAW,IAAI;;;QACxE,aAAa;QAAO,IAAI;;;;;;;;QAEzB,IAAI;;;QACH,IAAI;;;QACE,MAAM;QAAiB,cAAc;QAAO,IAAI;;;QAClD,WAAW;QAAO,aAAa;QAAO,gBAAgB;;;QAC3D,IAAI;QAAU,cAAc;QAAK,OAAO;;;QACxC,IAAI;QAAgB,MAAM;QAAsB,cAAc;;;QAC1D,WAAW;QAAO,aAAa;;;QAC/B,MAAM;QAAoB,cAAc;QAAK,kBAAkB;;;QAC7D,IAAI;QAAqB,MAAM;;CAC7C,CAAC;AAEH,MAAM,MAAM,SAAS,GAAG,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC;AAiBrD,eAAO,MAAM,cAAc,UAAW,KAAK,WAAW,OAAO,KAAG,UAI9D,CAAC;AAgBH,eAAO,MAAM,mBAAmB,UAAW,KAAK,WAAW,OAAO,KAAG,UAGnE,CAAC;AAEH,eAAO,MAAM,YAAY,SAAU,IAAI,WAAW,OAAO;;;;CAaxD,CAAC;AAUF,eAAO,MAAM,cAAc,SAAU,SAAS,WAAW,OAAO,KAAG,UAelE,CAAC;AAEF,sEAAsE;AACtE,eAAO,MAAM,kBAAkB,aAAc,QAAQ,WAAW,OAAO,KAAG,UAIxE,CAAC;AAEH,eAAO,MAAM,iBAAiB,YAAa,WAAW,WAAW,OAAO,KAAG,UAe1E,CAAC"}
@@ -90,6 +90,12 @@ export const edgeAttributes = (edge, palette) => {
90
90
  return assertNever(edge.emphasis);
91
91
  }
92
92
  };
93
+ /** A key between tables: an edge, dotted when nothing enforces it. */
94
+ export const relationAttributes = (relation, palette) => ({
95
+ ...strokeAttributes(relation.delta, palette),
96
+ ...(relation.delta === "unchanged" ? { opacity: 0.82 } : {}),
97
+ ...(relation.enforced ? {} : { "stroke-dasharray": "2 4" }),
98
+ });
93
99
  export const messageAttributes = (message, palette) => {
94
100
  const attributes = {
95
101
  ...strokeAttributes(message.delta, palette),
@@ -1 +1 @@
1
- {"version":3,"file":"styles.js","sourceRoot":"","sources":["../../src/svg/styles.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"styles.js","sourceRoot":"","sources":["../../src/svg/styles.ts"],"names":[],"mappings":"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"}
package/dist/version.d.ts CHANGED
@@ -5,5 +5,5 @@
5
5
  * not otherwise need.
6
6
  */
7
7
  export declare const RENDERER_NAME = "@coldtea/pr-lens-renderer";
8
- export declare const RENDERER_VERSION = "0.3.5";
8
+ export declare const RENDERER_VERSION = "0.4.0";
9
9
  //# sourceMappingURL=version.d.ts.map
package/dist/version.js CHANGED
@@ -5,5 +5,5 @@
5
5
  * not otherwise need.
6
6
  */
7
7
  export const RENDERER_NAME = "@coldtea/pr-lens-renderer";
8
- export const RENDERER_VERSION = "0.3.5";
8
+ export const RENDERER_VERSION = "0.4.0";
9
9
  //# sourceMappingURL=version.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@coldtea/pr-lens-renderer",
3
- "version": "0.3.5",
3
+ "version": "0.4.0",
4
4
  "description": "The PR Lens renderer: a schema-valid graph document in, a self-contained animated SVG out.",
5
5
  "license": "MIT",
6
6
  "author": "Coldtea AI",
@@ -40,12 +40,12 @@
40
40
  "node": ">=20.11"
41
41
  },
42
42
  "dependencies": {
43
- "@coldtea/pr-lens-schema": "0.7.1"
43
+ "@coldtea/pr-lens-schema": "0.9.0"
44
44
  },
45
45
  "devDependencies": {
46
46
  "@types/node": "^20.19.0",
47
47
  "typescript": "7.0.2",
48
- "vitest": "4.1.11"
48
+ "vitest": "4.1.12"
49
49
  },
50
50
  "scripts": {
51
51
  "build": "rm -rf dist && tsc -p tsconfig.build.json",
package/src/atlas.ts CHANGED
@@ -17,10 +17,12 @@ export type RenderAtlas = {
17
17
  edges: Record<string, Box>;
18
18
  /** Keyed by flow, then by step: a flow step's id is unique only inside its own flow. */
19
19
  messages: Record<string, Record<string, Box>>;
20
+ /** The data-model lens's cards; its stores land in `lanes` and its relations in `edges`. */
21
+ tables: Record<string, Box>;
20
22
  };
21
23
 
22
24
  /** An atlas for a drawing that has placed nothing. */
23
- export const emptyAtlas = (): RenderAtlas => ({ lanes: {}, nodes: {}, edges: {}, messages: {} });
25
+ export const emptyAtlas = (): RenderAtlas => ({ lanes: {}, nodes: {}, edges: {}, messages: {}, tables: {} });
24
26
 
25
27
  export type AtlasEntry = { id: string; box: Box };
26
28
 
@@ -39,9 +39,15 @@ const narrowScope = (
39
39
  nodes: scope.nodes.filter(survives.node),
40
40
  edges: scope.edges.filter(survives.edge),
41
41
  flows: scope.flows.filter(survives.flow),
42
+ // Corrections address nodes; a table named here stays as it was.
43
+ tables: scope.tables,
42
44
  };
43
45
  const total =
44
- narrowed.lanes.length + narrowed.nodes.length + narrowed.edges.length + narrowed.flows.length;
46
+ narrowed.lanes.length +
47
+ narrowed.nodes.length +
48
+ narrowed.edges.length +
49
+ narrowed.flows.length +
50
+ narrowed.tables.length;
45
51
  return total > 0 ? narrowed : undefined;
46
52
  }
47
53
  default:
package/src/design.ts CHANGED
@@ -71,6 +71,32 @@ export const BADGE_RADIUS = 8;
71
71
  /** How far the badge row rides above the top edge of the card it labels. */
72
72
  export const BADGE_RISE = 8;
73
73
 
74
+ /** A table card: a node-sized header, a rule, then one row per column. */
75
+ export const TABLE_ROW_HEIGHT = 20;
76
+ export const TABLE_ROWS_PADDING_Y = 6;
77
+ export const TABLE_ROW_TEXT_SIZE = 11;
78
+ export const TABLE_ROW_TYPE_SIZE = 9.5;
79
+ /**
80
+ * A tall table folds: keys, changed columns and relation ends always draw,
81
+ * unchanged ones up to a few, the whole card up to a ceiling, and one closing
82
+ * row says how many were left out. A fold that would hide only a couple of
83
+ * rows is not worth its own row.
84
+ */
85
+ export const TABLE_ROWS_MAX = 24;
86
+ export const TABLE_UNCHANGED_ROWS_MAX = 8;
87
+ export const TABLE_FOLD_MIN_HIDDEN = 4;
88
+ /** The fold row: a breath after the last column, the dashed rule, then a row for the count. */
89
+ export const TABLE_FOLD_GAP = TABLE_ROWS_PADDING_Y;
90
+ export const TABLE_FOLD_HEIGHT = TABLE_FOLD_GAP + TABLE_ROW_HEIGHT;
91
+ export const KEY_CHIP_WIDTH = 24;
92
+ export const KEY_CHIP_HEIGHT = 14;
93
+ export const KEY_CHIP_GAP = 8;
94
+ /** A relation that skips a lane crosses above the lanes, one band per route. */
95
+ export const OVER_PITCH = 16;
96
+ export const OVER_CLEARANCE = 10;
97
+ /** Arrows landing on one column fan out this far at most, and never past the row. */
98
+ export const PORT_FAN_MAX = 5;
99
+
74
100
  export const PILL_HEIGHT = 15;
75
101
  export const PILL_PADDING_X = 8;
76
102
  export const PILL_TEXT_SIZE = 9.5;
@@ -67,13 +67,14 @@ export const badgeWidth = (text: string): number =>
67
67
  * (e.g. "new" on a node whose delta is "added") is dropped so the card
68
68
  * does not show it twice.
69
69
  */
70
- export const cardBadges = (node: GraphNode): string[] => {
71
- const delta = deltaBadgeText(node.delta);
72
- if (delta === undefined) return [...node.badges];
73
- const own = node.badges.filter((text) => text.toLowerCase() !== delta.toLowerCase());
74
- return [...own, delta];
70
+ export const badgesFor = (own: readonly string[], delta: Delta): string[] => {
71
+ const text = deltaBadgeText(delta);
72
+ if (text === undefined) return [...own];
73
+ return [...own.filter((badge) => badge.toLowerCase() !== text.toLowerCase()), text];
75
74
  };
76
75
 
76
+ export const cardBadges = (node: GraphNode): string[] => badgesFor(node.badges, node.delta);
77
+
77
78
  export type PlacedNode = {
78
79
  node: GraphNode;
79
80
  box: Box;
@@ -95,11 +96,16 @@ export type PlacedLane = { lane: Lane; box: Box };
95
96
  * returned when the card carries no badge, and the strip counts as occupied
96
97
  * space so an edge label does not settle on top of it.
97
98
  */
98
- export const badgeRow = (placed: PlacedNode): { badges: string[]; box: Box } | undefined => {
99
- const all = cardBadges(placed.node);
99
+ export type BadgeRow = { badges: string[]; box: Box };
100
+
101
+ export const badgeRow = (placed: PlacedNode): BadgeRow | undefined =>
102
+ badgeStrip(placed.box, cardBadges(placed.node));
103
+
104
+ /** The strip above any card, from the badges it carries. */
105
+ export const badgeStrip = (card: Box, all: readonly string[]): BadgeRow | undefined => {
100
106
  if (all.length === 0) return undefined;
101
107
 
102
- const room = placed.box.width - CARD_PADDING_X;
108
+ const room = card.width - CARD_PADDING_X;
103
109
  const shown: string[] = [];
104
110
  let used = 0;
105
111
  for (const text of [...all].reverse()) {
@@ -110,12 +116,12 @@ export const badgeRow = (placed: PlacedNode): { badges: string[]; box: Box } | u
110
116
  }
111
117
  if (shown.length === 0) return undefined;
112
118
 
113
- const right = placed.box.x + placed.box.width - CARD_PADDING_X / 2;
119
+ const right = card.x + card.width - CARD_PADDING_X / 2;
114
120
  return {
115
121
  badges: shown,
116
122
  box: {
117
123
  x: right - used,
118
- y: placed.box.y - BADGE_RISE,
124
+ y: card.y - BADGE_RISE,
119
125
  width: used,
120
126
  height: BADGE_HEIGHT,
121
127
  },