adr-kit 0.10.0 → 0.11.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 (63) hide show
  1. package/README.md +9 -6
  2. package/README.zh.md +7 -5
  3. package/dist/cli.d.ts.map +1 -1
  4. package/dist/cli.js +6 -2
  5. package/dist/cli.js.map +1 -1
  6. package/dist/commands/completion.d.ts.map +1 -1
  7. package/dist/commands/completion.js +3 -2
  8. package/dist/commands/completion.js.map +1 -1
  9. package/dist/commands/graph.d.ts +2 -0
  10. package/dist/commands/graph.d.ts.map +1 -1
  11. package/dist/commands/graph.js +37 -7
  12. package/dist/commands/graph.js.map +1 -1
  13. package/dist/commands/supersede.js +1 -1
  14. package/dist/commands/supersede.js.map +1 -1
  15. package/dist/core/adr.d.ts +1 -0
  16. package/dist/core/adr.d.ts.map +1 -1
  17. package/dist/core/adr.js.map +1 -1
  18. package/dist/core/canvas-view.d.ts +19 -3
  19. package/dist/core/canvas-view.d.ts.map +1 -1
  20. package/dist/core/canvas-view.js +210 -15
  21. package/dist/core/canvas-view.js.map +1 -1
  22. package/dist/core/deliberation-html.d.ts.map +1 -1
  23. package/dist/core/deliberation-html.js +88 -16
  24. package/dist/core/deliberation-html.js.map +1 -1
  25. package/dist/core/deliberation-view.d.ts.map +1 -1
  26. package/dist/core/deliberation-view.js +28 -195
  27. package/dist/core/deliberation-view.js.map +1 -1
  28. package/dist/core/deliberation.d.ts +13 -0
  29. package/dist/core/deliberation.d.ts.map +1 -1
  30. package/dist/core/deliberation.js +11 -1
  31. package/dist/core/deliberation.js.map +1 -1
  32. package/dist/core/graph-html.d.ts +1 -1
  33. package/dist/core/graph-html.d.ts.map +1 -1
  34. package/dist/core/graph-html.js +163 -44
  35. package/dist/core/graph-html.js.map +1 -1
  36. package/dist/core/graph-view.d.ts +1 -1
  37. package/dist/core/graph-view.d.ts.map +1 -1
  38. package/dist/core/graph-view.js +9 -187
  39. package/dist/core/graph-view.js.map +1 -1
  40. package/dist/core/relation-focus.d.ts +4 -0
  41. package/dist/core/relation-focus.d.ts.map +1 -0
  42. package/dist/core/relation-focus.js +89 -0
  43. package/dist/core/relation-focus.js.map +1 -0
  44. package/dist/core/share.d.ts +30 -0
  45. package/dist/core/share.d.ts.map +1 -0
  46. package/dist/core/share.js +420 -0
  47. package/dist/core/share.js.map +1 -0
  48. package/dist/core/templates.d.ts +2 -0
  49. package/dist/core/templates.d.ts.map +1 -1
  50. package/dist/core/templates.js +2 -0
  51. package/dist/core/templates.js.map +1 -1
  52. package/dist/core/tool-integrations.d.ts.map +1 -1
  53. package/dist/core/tool-integrations.js +47 -29
  54. package/dist/core/tool-integrations.js.map +1 -1
  55. package/dist/core/validate.d.ts +1 -1
  56. package/dist/core/validate.d.ts.map +1 -1
  57. package/dist/core/validate.js +25 -14
  58. package/dist/core/validate.js.map +1 -1
  59. package/dist/core/view-text.d.ts +7 -0
  60. package/dist/core/view-text.d.ts.map +1 -1
  61. package/dist/core/view-text.js +15 -0
  62. package/dist/core/view-text.js.map +1 -1
  63. package/package.json +1 -1
@@ -1,7 +1,9 @@
1
+ import { RELATION_STYLE, RELATION_SCRIPT } from './relation-focus.js';
1
2
  import { TAG_COLORS } from './graph.js';
2
3
  import { MAP_STYLE } from './graph-view.js';
3
- import { CANVAS_HINT, CANVAS_SCRIPT, canvasControlsHTML } from './canvas-view.js';
4
- import { escapeHtml, wrapText } from './view-text.js';
4
+ import { CANVAS_STYLE, CANVAS_SCRIPT, canvasHeaderHTML, canvasDockHTML } from './canvas-view.js';
5
+ import { SHARE_SCRIPT, SHARE_STYLE } from './share.js';
6
+ import { escapeHtml, wrapText, estimateTextWidth } from './view-text.js';
5
7
  const CARD_W = 248;
6
8
  const PAD_X = 16;
7
9
  const PAD_Y = 14;
@@ -15,6 +17,18 @@ const NODE_GAP = 22;
15
17
  const TOP = 72;
16
18
  const LEFT = 28;
17
19
  const BOTTOM = 30;
20
+ /**
21
+ * The card's footer font size. A decision with a deliberation tree is marked by
22
+ * the card's own pale green fill, not by anything in this row, so the tag run
23
+ * gets the card's whole inner width.
24
+ */
25
+ const FOOTER_FONT = 10;
26
+ /** Drawing-box margin: room for the stroke width and the arrowheads. */
27
+ const MAP_MARGIN = 16;
28
+ /** Width of footer text as the card layout budgets it. */
29
+ function footerWidth(text) {
30
+ return estimateTextWidth(text, FOOTER_FONT);
31
+ }
18
32
  /** The graph title keeps its "N " prefix; the card shows the number separately. */
19
33
  function displayTitle(node) {
20
34
  return node.title.replace(/^\d+\s+/, '');
@@ -65,16 +79,86 @@ function tagColors(nodes) {
65
79
  }
66
80
  return colors;
67
81
  }
68
- /** A left-to-right cubic curve between a source card's right and a target's left edge. */
69
- function edgePath(from, to) {
70
- const sx = from.x + CARD_W;
71
- const sy = from.y + from.height / 2;
72
- const tx = to.x;
73
- const ty = to.y + to.height / 2;
74
- const bend = Math.max(40, Math.abs(tx - sx) * 0.4);
75
- return 'M' + sx + ',' + sy + ' C' + (sx + bend) + ',' + sy + ' ' + (tx - bend) + ',' + ty + ' ' + tx + ',' + ty;
82
+ /**
83
+ * The exact span of one cubic on a single axis: the endpoints plus the
84
+ * derivative's roots inside (0,1). The control-point hull is far wider than
85
+ * the curve it bounds, so sizing the drawing box to the hull would leave the
86
+ * map floating in a mostly empty frame.
87
+ */
88
+ function cubicSpan(p0, p1, p2, p3) {
89
+ const at = (t) => {
90
+ const u = 1 - t;
91
+ return u * u * u * p0 + 3 * u * u * t * p1 + 3 * u * t * t * p2 + t * t * t * p3;
92
+ };
93
+ let min = Math.min(p0, p3);
94
+ let max = Math.max(p0, p3);
95
+ const consider = (t) => {
96
+ if (!(t > 0 && t < 1))
97
+ return;
98
+ const value = at(t);
99
+ min = Math.min(min, value);
100
+ max = Math.max(max, value);
101
+ };
102
+ // B'(t)/3 = a(1-t)^2 + 2b(1-t)t + ct^2, in the form At^2 + Bt + C.
103
+ const a = p1 - p0, b = p2 - p1, c = p3 - p2;
104
+ const A = a - 2 * b + c, B = 2 * (b - a), C = a;
105
+ if (Math.abs(A) < 1e-9) {
106
+ if (Math.abs(B) > 1e-9)
107
+ consider(-C / B);
108
+ }
109
+ else {
110
+ const disc = B * B - 4 * A * C;
111
+ if (disc >= 0) {
112
+ const root = Math.sqrt(disc);
113
+ consider((-B + root) / (2 * A));
114
+ consider((-B - root) / (2 * A));
115
+ }
116
+ }
117
+ return { min, max };
118
+ }
119
+ /** Facing sides for cross-date links; same-date links loop beside the column. */
120
+ function edgeSides(from, to) {
121
+ return from.x === to.x ? [1, 1] : from.x < to.x ? [1, -1] : [-1, 1];
122
+ }
123
+ function edgeCurve(from, to, sourceY, targetY, lane) {
124
+ const [sourceSide, targetSide] = edgeSides(from, to);
125
+ const sx = from.x + (sourceSide === 1 ? CARD_W : 0);
126
+ const tx = to.x + (targetSide === 1 ? CARD_W : 0);
127
+ const sy = sourceY, ty = targetY;
128
+ // Bounded lanes keep same-date loops in the column gutter. Endpoints are
129
+ // distributed separately, so dense columns do not stack all arrowheads.
130
+ const bend = from.x === to.x ? 32 + (lane % 5) * 12 : Math.max(32, Math.abs(tx - sx) * 0.4);
131
+ const c1x = sx + sourceSide * bend;
132
+ const c2x = tx + targetSide * bend;
133
+ const x = cubicSpan(sx, c1x, c2x, tx);
134
+ const y = cubicSpan(sy, sy, ty, ty);
135
+ return {
136
+ d: 'M' + sx + ',' + sy + ' C' + c1x + ',' + sy + ' ' + c2x + ',' + ty + ' ' + tx + ',' + ty,
137
+ minX: x.min, maxX: x.max, minY: y.min, maxY: y.max,
138
+ };
76
139
  }
77
- function nodeMarkup(placed, colors) {
140
+ /**
141
+ * The `#a #b` run for up to three tags, filled up to `maxWidth`: it is cut at
142
+ * the last character that still fits beside the marker, so a truncated row
143
+ * reaches the marker instead of stopping a whole tag short of it. An ellipsis
144
+ * marks what was left out — a fourth tag, or the rest of the cut tag.
145
+ */
146
+ function fitTagRun(tags, maxWidth) {
147
+ const run = tags.slice(0, 3).map((tag) => '#' + tag).join(' ');
148
+ const more = tags.length > 3;
149
+ if (!more && footerWidth(run) <= maxWidth)
150
+ return run;
151
+ let cut = '';
152
+ for (const char of run) {
153
+ const next = (cut + char).trimEnd();
154
+ if (footerWidth(next + '…') > maxWidth)
155
+ break;
156
+ cut += char;
157
+ }
158
+ const kept = cut.trimEnd();
159
+ return (kept === '' ? run.slice(0, 1) : kept) + '…';
160
+ }
161
+ function nodeMarkup(placed, colors, recordHref) {
78
162
  const { node, x, y, height, lines } = placed;
79
163
  const classes = ['node'];
80
164
  if (node.status === 'superseded')
@@ -88,7 +172,7 @@ function nodeMarkup(placed, colors) {
88
172
  const metaY = y + PAD_Y + META_H - 5;
89
173
  const titleY = y + PAD_Y + META_H + GAP + TITLE_H - 6;
90
174
  const parts = [];
91
- parts.push('<a href="' + escapeHtml(node.path) + '">');
175
+ parts.push('<a href="' + escapeHtml(recordHref(node.path)) + '">');
92
176
  parts.push('<g class="' + classes.join(' ') + '" data-adr="' + node.number + '" data-has-deliberation="' + String(node.hasDeliberation) + '">');
93
177
  parts.push('<rect x="' + x + '" y="' + y + '" width="' + CARD_W + '" height="' + height + '" rx="12" stroke="' + stroke + '"/>');
94
178
  parts.push('<text class="num" x="' + (x + PAD_X) + '" y="' + metaY + '">#' + node.number + '</text>');
@@ -99,15 +183,13 @@ function nodeMarkup(placed, colors) {
99
183
  lines.forEach((line, index) => {
100
184
  parts.push('<text class="title" x="' + (x + PAD_X) + '" y="' + (titleY + index * TITLE_H) + '">' + escapeHtml(line) + '</text>');
101
185
  });
102
- if (node.tags.length > 0 || node.hasDeliberation) {
186
+ if (node.tags.length > 0) {
103
187
  const footerY = titleY + (lines.length - 1) * TITLE_H + GAP + FOOTER_H - 2;
104
- if (node.tags.length > 0) {
105
- const tags = node.tags.slice(0, 3).map((tag) => '#' + tag).join(' ');
106
- parts.push('<text class="tag" x="' + (x + PAD_X) + '" y="' + footerY + '">' + escapeHtml(tags) + '</text>');
107
- }
108
- if (node.hasDeliberation) {
109
- parts.push('<text class="badge" x="' + (x + CARD_W - PAD_X) + '" y="' + footerY + '" text-anchor="end">deliberation</text>');
110
- }
188
+ // The clip is the SVG counterpart of an HTML card's edge: a run the fallback
189
+ // font renders wider than budgeted is cut, never drawn over the card border.
190
+ const budget = CARD_W - PAD_X * 2;
191
+ parts.push('<clipPath id="tags-' + node.number + '"><rect x="' + (x + PAD_X) + '" y="' + (footerY - 10) + '" width="' + budget + '" height="14"/></clipPath>');
192
+ parts.push('<text class="tag" x="' + (x + PAD_X) + '" y="' + footerY + '" clip-path="url(#tags-' + node.number + ')">' + escapeHtml(fitTagRun(node.tags, budget)) + '</text>');
111
193
  }
112
194
  parts.push('</g>');
113
195
  parts.push('</a>');
@@ -118,31 +200,66 @@ function nodeMarkup(placed, colors) {
118
200
  * is computed here, at generation time, so the page needs no network, no CDN,
119
201
  * and no runtime; every node links to its record file.
120
202
  */
121
- export function renderDecisionMapHtml(graph, title = 'Decision map') {
203
+ export function renderDecisionMapHtml(graph, title = 'Decision map', recordHref = (recordPath) => recordPath) {
122
204
  const { placed, columns, width, height } = layout(graph);
123
205
  const colors = tagColors(placed.map((entry) => entry.node));
124
206
  const byNumber = new Map(placed.map((entry) => [entry.node.number, entry]));
125
207
  const edges = [];
126
- const drawEdge = (edge, kind) => {
127
- const from = byNumber.get(edge.from);
128
- const to = byNumber.get(edge.to);
129
- if (from === undefined || to === undefined)
130
- return;
131
- edges.push('<path class="edge ' + kind + '" d="' + edgePath(from, to) + '" marker-end="url(#arrow-' + kind + ')"/>');
132
- };
133
- for (const edge of graph.referenceEdges)
134
- drawEdge(edge, 'reference');
135
- for (const edge of graph.supersedeEdges)
136
- drawEdge(edge, 'supersede');
208
+ const routes = [
209
+ ...graph.referenceEdges.map(edge => ({ edge, kind: 'reference' })),
210
+ ...graph.supersedeEdges.map(edge => ({ edge, kind: 'supersede' })),
211
+ ].flatMap(({ edge, kind }) => {
212
+ const from = byNumber.get(edge.from), to = byNumber.get(edge.to);
213
+ return from && to ? [{ edge, kind, from, to, sourceY: 0, targetY: 0 }] : [];
214
+ });
215
+ const ports = new Map();
216
+ for (const route of routes) {
217
+ const sides = edgeSides(route.from, route.to);
218
+ for (const [node, other, side, end] of [
219
+ [route.from, route.to, sides[0], 'sourceY'],
220
+ [route.to, route.from, sides[1], 'targetY'],
221
+ ]) {
222
+ const key = node.node.number + ':' + side;
223
+ const group = ports.get(key) ?? [];
224
+ group.push({ route, end, node, other });
225
+ ports.set(key, group);
226
+ }
227
+ }
228
+ for (const group of ports.values()) {
229
+ group.sort((a, b) => (a.other.y + a.other.height / 2) - (b.other.y + b.other.height / 2));
230
+ const node = group[0].node;
231
+ const step = Math.min(10, (node.height - PAD_Y * 2) / Math.max(1, group.length - 1));
232
+ group.forEach((port, i) => {
233
+ port.route[port.end] = node.y + node.height / 2 + (i - (group.length - 1) / 2) * step;
234
+ });
235
+ }
236
+ const lanes = new Map();
237
+ const box = { minX: 0, minY: 0, maxX: width, maxY: height };
238
+ for (const { edge, kind, from, to, sourceY, targetY } of routes) {
239
+ const lane = lanes.get(from.x) ?? 0;
240
+ if (from.x === to.x)
241
+ lanes.set(from.x, lane + 1);
242
+ const curve = edgeCurve(from, to, sourceY, targetY, lane);
243
+ box.minX = Math.min(box.minX, curve.minX);
244
+ box.maxX = Math.max(box.maxX, curve.maxX);
245
+ box.minY = Math.min(box.minY, curve.minY);
246
+ box.maxY = Math.max(box.maxY, curve.maxY);
247
+ edges.push('<path class="edge ' + kind + '" d="' + curve.d + '" data-from="' + edge.from
248
+ + '" data-to="' + edge.to + '" marker-end="url(#arrow-' + kind + ')"/>');
249
+ }
137
250
  const deliberated = graph.nodes.filter((node) => node.hasDeliberation).length;
138
251
  const stats = [
139
252
  ['decisions', graph.nodes.length],
140
253
  ['supersessions', graph.supersedeEdges.length],
141
254
  ['references', graph.referenceEdges.length],
142
- ['deliberated', deliberated],
255
+ ['deliberation trees', deliberated],
143
256
  ];
257
+ const viewX = Math.round(box.minX - MAP_MARGIN);
258
+ const viewY = Math.round(box.minY - MAP_MARGIN);
259
+ const viewW = Math.round(box.maxX - box.minX) + MAP_MARGIN * 2;
260
+ const viewH = Math.round(box.maxY - box.minY) + MAP_MARGIN * 2;
144
261
  const svg = [
145
- '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 ' + width + ' ' + height + '" width="' + width + '" height="' + height + '" role="img" aria-label="Decision map">',
262
+ '<svg xmlns="http://www.w3.org/2000/svg" viewBox="' + viewX + ' ' + viewY + ' ' + viewW + ' ' + viewH + '" width="' + viewW + '" height="' + viewH + '" role="img" aria-label="Decision map">',
146
263
  '<defs>',
147
264
  '<marker id="arrow-supersede" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="7" markerHeight="7" orient="auto-start-reverse"><path d="M0,0 L10,5 L0,10 z" fill="#294d3e"/></marker>',
148
265
  '<marker id="arrow-reference" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="7" markerHeight="7" orient="auto-start-reverse"><path d="M0,0 L10,5 L0,10 z" fill="#b6c7ba"/></marker>',
@@ -153,25 +270,27 @@ export function renderDecisionMapHtml(graph, title = 'Decision map') {
153
270
  }
154
271
  svg.push(...edges);
155
272
  for (const entry of placed)
156
- svg.push(nodeMarkup(entry, colors));
273
+ svg.push(nodeMarkup(entry, colors, recordHref));
157
274
  svg.push('</svg>');
158
275
  const body = graph.nodes.length === 0 ? '<p class="empty">No decisions yet.</p>' : svg.join('');
159
276
  const html = [
160
277
  '<!doctype html>',
161
278
  '<html lang="en">',
162
279
  '<head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1">',
163
- '<title>' + escapeHtml(title) + ' — decision map</title><style>' + MAP_STYLE + '</style></head>',
280
+ '<title>' + escapeHtml(title) + ' — decision map</title><style>' + MAP_STYLE + CANVAS_STYLE + SHARE_STYLE + RELATION_STYLE + '</style></head>',
164
281
  '<body>',
165
- '<header><div class="brand"><span class="logo" aria-hidden="true">↳</span> ADR Kit <small>DECISION MAP</small></div></header>',
166
- '<section class="intro"><div class="eyebrow">DECISIONS / RELATIONSHIP MAP</div><h1>' + escapeHtml(title) + '</h1>',
167
- '<p>Solid edges supersede; dashed edges are record references. Grouped by the date each decision was created.</p>',
168
- '<div class="stats">' + stats.map(([label, value]) => '<div class="stat"><strong>' + value + '</strong>' + label + '</div>').join('') + '</div></section>',
282
+ canvasHeaderHTML(title, stats, 'Solid edges supersede; dashed edges are record references. Grouped by creation date. Hover or focus a decision to trace its direct relationships; Escape clears the highlight.'),
169
283
  '<main id="viewport" tabindex="0" aria-label="Decision map" aria-describedby="instructions"><div id="world">' + body + '</div>',
170
- '<div id="instructions" class="hint">' + CANVAS_HINT + '</div>',
171
- canvasControlsHTML('Fit map'),
284
+ canvasDockHTML(
285
+ // The legend quotes the marks the map draws, so each entry waits for the
286
+ // edge or the marker it points at to exist.
287
+ [
288
+ graph.supersedeEdges.length === 0 ? '' : '<span><i class="swatch"></i> superseded by</span>',
289
+ graph.referenceEdges.length === 0 ? '' : '<span><i class="swatch ref"></i> references</span>',
290
+ deliberated === 0 ? '' : '<span><i class="swatch delib"></i> has deliberation tree</span>',
291
+ ].filter(Boolean).join(''), 'Fit map'),
172
292
  '</main>',
173
- '<footer><div class="legend"><span><i class="swatch"></i> superseded by</span><span><i class="swatch ref"></i> references</span><span><i class="swatch delib"></i> has deliberation tree</span></div></footer>',
174
- '<script>' + CANVAS_SCRIPT + '</script>',
293
+ '<script>' + CANVAS_SCRIPT + SHARE_SCRIPT + RELATION_SCRIPT + '</script>',
175
294
  '</body></html>',
176
295
  '',
177
296
  ];
@@ -1 +1 @@
1
- {"version":3,"file":"graph-html.js","sourceRoot":"","sources":["../../src/core/graph-html.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"graph-html.js","sourceRoot":"","sources":["../../src/core/graph-html.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
- /** Inline assets for the offline decision map. No network or runtime dependency. */
1
+ /** Map-specific inline styles; the viewer shell is shared with the tree. */
2
2
  export declare const MAP_STYLE: string;
3
3
  //# sourceMappingURL=graph-view.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"graph-view.d.ts","sourceRoot":"","sources":["../../src/core/graph-view.ts"],"names":[],"mappings":"AAAA,oFAAoF;AACpF,eAAO,MAAM,SAAS,QA+PrB,CAAC"}
1
+ {"version":3,"file":"graph-view.d.ts","sourceRoot":"","sources":["../../src/core/graph-view.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,eAAO,MAAM,SAAS,QA6ErB,CAAC"}
@@ -1,96 +1,5 @@
1
- /** Inline assets for the offline decision map. No network or runtime dependency. */
1
+ /** Map-specific inline styles; the viewer shell is shared with the tree. */
2
2
  export const MAP_STYLE = String.raw `
3
-
4
- :root {
5
- font-family: Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
6
- color: #233c36;
7
- background: #f6f8f5
8
- }
9
- * {
10
- box-sizing: border-box
11
- }
12
- body {
13
- margin: 0
14
- }
15
- a {
16
- color: inherit
17
- }
18
- header {
19
- height: 64px;
20
- background: #fff;
21
- display: flex;
22
- align-items: center;
23
- justify-content: space-between;
24
- padding: 0 28px;
25
- border-bottom: 1px solid #e1e7e1;
26
- gap: 14px
27
- }
28
- .brand {
29
- font-size: 16px;
30
- font-weight: 750;
31
- letter-spacing: -.5px;
32
- display: flex;
33
- align-items: center;
34
- gap: 10px
35
- }
36
- .logo {
37
- background: #284f40;
38
- color: #fff;
39
- border-radius: 8px;
40
- padding: 6px 9px;
41
- font-family: monospace
42
- }
43
- .brand small {
44
- font-size: 11px;
45
- color: #728079;
46
- font-weight: 500;
47
- letter-spacing: 1px;
48
- margin-left: 14px
49
- }
50
- .intro {
51
- padding: 24px 32px 6px
52
- }
53
- .eyebrow {
54
- color: #788b7b;
55
- letter-spacing: 2px;
56
- font: 11px monospace;
57
- margin-bottom: 8px
58
- }
59
- h1 {
60
- font-size: 23px;
61
- letter-spacing: -.6px;
62
- margin: 0;
63
- font-weight: 650
64
- }
65
- .intro p {
66
- font-size: 12px;
67
- color: #718078;
68
- margin: 8px 0 0
69
- }
70
- .stats {
71
- display: flex;
72
- gap: 10px;
73
- flex-wrap: wrap;
74
- margin-top: 16px
75
- }
76
- .stat {
77
- background: #fff;
78
- border: 1px solid #e1e7e1;
79
- border-radius: 10px;
80
- padding: 8px 13px;
81
- font-size: 11px;
82
- color: #728079
83
- }
84
- .stat strong {
85
- color: #233c36;
86
- font-size: 15px;
87
- font-weight: 600;
88
- margin-right: 5px
89
- }
90
- main {
91
- padding: 8px 20px 26px;
92
- overflow-x: auto
93
- }
94
3
  svg {
95
4
  display: block
96
5
  }
@@ -116,9 +25,8 @@ svg {
116
25
  fill: #7c8a80;
117
26
  font-size: 10px
118
27
  }
119
- .node .badge {
120
- fill: #387456;
121
- font-size: 10px
28
+ .node.has-deliberation rect {
29
+ fill: #edf6ef
122
30
  }
123
31
  .node.superseded rect {
124
32
  stroke-dasharray: 5 4
@@ -150,21 +58,6 @@ svg {
150
58
  stroke-width: 1.4;
151
59
  stroke-dasharray: 5 4
152
60
  }
153
- footer {
154
- padding: 16px 32px 30px;
155
- color: #87928a;
156
- font-size: 10px
157
- }
158
- .legend {
159
- display: flex;
160
- gap: 18px;
161
- flex-wrap: wrap
162
- }
163
- .legend span {
164
- display: flex;
165
- align-items: center;
166
- gap: 7px
167
- }
168
61
  .swatch {
169
62
  width: 24px;
170
63
  height: 0;
@@ -174,85 +67,14 @@ footer {
174
67
  border-top: 1.5px dashed #b6c7ba
175
68
  }
176
69
  .swatch.delib {
177
- width: 10px;
178
- height: 10px;
179
- border: 0;
70
+ width: 18px;
71
+ height: 12px;
72
+ border: 1px solid #dce4dc;
180
73
  border-radius: 3px;
181
74
  background: #edf6ef
182
75
  }
183
- #world {
184
- position: relative;
185
- transform-origin: 0 0
186
- }
187
- .controls {
188
- position: absolute;
189
- bottom: 22px;
190
- right: 24px;
191
- display: none;
192
- align-items: center;
193
- padding: 5px;
194
- gap: 3px;
195
- background: #fff;
196
- border: 1px solid #dce4dc;
197
- border-radius: 11px;
198
- box-shadow: 0 4px 20px #294d3e0a
199
- }
200
- .controls button {
201
- border: 0;
202
- background: none;
203
- font: inherit;
204
- color: inherit;
205
- cursor: pointer;
206
- padding: 6px 9px;
207
- border-radius: 7px
208
- }
209
- .controls button:hover {
210
- background: #edf3ef
211
- }
212
- .controls output {
213
- font: 11px monospace;
214
- width: 44px;
215
- text-align: center
216
- }
217
- .hint {
218
- position: absolute;
219
- bottom: 25px;
220
- left: 28px;
221
- display: none;
222
- color: #7a8a7f;
223
- font-size: 11px;
224
- background: #f6f8f5df;
225
- padding: 7px;
226
- border-radius: 5px
227
- }
228
- .interactive main {
229
- height: calc(100dvh - 250px);
230
- min-height: 420px;
231
- padding: 0;
232
- overflow: hidden;
233
- touch-action: none;
234
- cursor: grab;
235
- position: relative
236
- }
237
- .interactive #world {
238
- position: absolute
239
- }
240
- .interactive .controls {
241
- display: flex
242
- }
243
- .interactive .hint {
244
- display: block
245
- }
246
- main.dragging {
247
- cursor: grabbing
248
- }
249
- @media (max-width: 700px) {
250
- .interactive main {
251
- height: calc(100dvh - 240px)
252
- }
253
- .interactive .hint {
254
- display: none
255
- }
256
- }
76
+ #world { position: relative; transform-origin: 0 0; }
77
+ main { overflow: auto; }
78
+ .empty { padding: 24px; }
257
79
  `;
258
80
  //# sourceMappingURL=graph-view.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"graph-view.js","sourceRoot":"","sources":["../../src/core/graph-view.ts"],"names":[],"mappings":"AAAA,oFAAoF;AACpF,MAAM,CAAC,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+PlC,CAAC"}
1
+ {"version":3,"file":"graph-view.js","sourceRoot":"","sources":["../../src/core/graph-view.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,MAAM,CAAC,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6ElC,CAAC"}
@@ -0,0 +1,4 @@
1
+ /** Shared hover/keyboard emphasis for both offline views (ADR 11). */
2
+ export declare const RELATION_STYLE: string;
3
+ export declare const RELATION_SCRIPT: string;
4
+ //# sourceMappingURL=relation-focus.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"relation-focus.d.ts","sourceRoot":"","sources":["../../src/core/relation-focus.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,eAAO,MAAM,cAAc,QAQ1B,CAAC;AAEF,eAAO,MAAM,eAAe,QA6E3B,CAAC"}