@schlessera/brain-ui-react 0.16.0 → 0.17.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.
@@ -1 +1 @@
1
- {"version":3,"file":"graph-store.js","sourceRoot":"","sources":["../../src/stores/graph-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"graph-store.js","sourceRoot":"","sources":["../../src/stores/graph-store.ts"],"names":[],"mappings":"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"}
package/dist/theme.css ADDED
@@ -0,0 +1,435 @@
1
+ /*
2
+ * brain-ui-react theme + component styles.
3
+ *
4
+ * Import this from a Tailwind v4 entry (the @theme block feeds the utility
5
+ * classes the components use), together with
6
+ * @source "../node_modules/@schlessera/brain-ui-react/src";
7
+ * so the consumer build scans the component sources. Consumers without a
8
+ * Tailwind build use the precompiled ./styles.css export instead.
9
+ */
10
+ @theme {
11
+ /* Backgrounds - warm-tinted darks */
12
+ --color-background: #0c0e12;
13
+ --color-surface: #141619;
14
+ --color-surface-raised: #1a1d22;
15
+ --color-surface-overlay: #1e2128;
16
+
17
+ /* Borders */
18
+ --color-border: #2a2d35;
19
+ --color-border-subtle: #1f2229;
20
+
21
+ /* Text hierarchy */
22
+ --color-foreground: #e8e4df;
23
+ --color-muted: #141619;
24
+ --color-muted-foreground: #8a8691;
25
+ --color-card: #141619;
26
+ --color-card-foreground: #e8e4df;
27
+
28
+ /* Primary: Amber */
29
+ --color-primary: #e09f3e;
30
+ --color-primary-foreground: #0c0e12;
31
+
32
+ /* Secondary */
33
+ --color-secondary: #1a1d22;
34
+ --color-secondary-foreground: #e8e4df;
35
+ --color-accent: #5bb5a2;
36
+ --color-accent-foreground: #0c0e12;
37
+
38
+ /* Semantic */
39
+ --color-destructive: #f87171;
40
+ --color-input: #2a2d35;
41
+ --color-ring: #e09f3e80;
42
+
43
+ /* Radius */
44
+ --radius: 0.5rem;
45
+
46
+ /* Fonts */
47
+ --font-display: "DM Serif Text", Georgia, serif;
48
+ --font-body: "Plus Jakarta Sans", system-ui, sans-serif;
49
+ --font-mono: "JetBrains Mono", ui-monospace, monospace;
50
+ }
51
+
52
+ /* Amber filament line */
53
+ .filament {
54
+ height: 1px;
55
+ background: linear-gradient(
56
+ to right,
57
+ transparent 0%,
58
+ #e09f3e 30%,
59
+ #eab354 50%,
60
+ #e09f3e 70%,
61
+ transparent 100%
62
+ );
63
+ opacity: 0.7;
64
+ transition: opacity 0.3s ease;
65
+ }
66
+
67
+ .filament--active {
68
+ opacity: 1;
69
+ height: 2px;
70
+ background:
71
+ radial-gradient(circle at center, #eab354 0%, transparent 40%) no-repeat,
72
+ linear-gradient(
73
+ to right,
74
+ transparent 0%,
75
+ #e09f3e 30%,
76
+ #eab354 50%,
77
+ #e09f3e 70%,
78
+ transparent 100%
79
+ );
80
+ background-size:
81
+ 80px 2px,
82
+ 100% 1px;
83
+ animation: filament-scan 3s linear infinite;
84
+ }
85
+
86
+ @keyframes filament-scan {
87
+ 0% {
88
+ background-position:
89
+ -200% center,
90
+ 0% center;
91
+ }
92
+ 100% {
93
+ background-position:
94
+ 200% center,
95
+ 0% center;
96
+ }
97
+ }
98
+
99
+ /* Breathing animation for streaming indicators */
100
+ @keyframes breathe {
101
+ 0%,
102
+ 100% {
103
+ box-shadow: 0 0 0 0 rgba(224, 159, 62, 0.15);
104
+ opacity: 1;
105
+ }
106
+ 50% {
107
+ box-shadow: 0 0 8px 2px rgba(224, 159, 62, 0.15);
108
+ opacity: 0.6;
109
+ }
110
+ }
111
+
112
+ /* Whatsup briefing styling */
113
+ .whatsup-briefing {
114
+ font-family: var(--font-body);
115
+ font-size: 0.875rem;
116
+ line-height: 1.7;
117
+ color: #e8e4df;
118
+ }
119
+ .whatsup-briefing h2 {
120
+ color: #5bb5a2;
121
+ font-family: var(--font-display);
122
+ font-size: 0.9rem;
123
+ font-weight: 400;
124
+ letter-spacing: 0.02em;
125
+ padding-bottom: 0.375rem;
126
+ margin-bottom: 0.5rem;
127
+ margin-top: 1.5rem;
128
+ border-bottom: 1px solid #2a2d35;
129
+ }
130
+ .whatsup-briefing h2:first-child {
131
+ margin-top: 0;
132
+ }
133
+
134
+ /* Entity color-coding */
135
+ .whatsup-briefing .entity-co {
136
+ color: #67b8e3;
137
+ font-weight: 600;
138
+ }
139
+ .whatsup-briefing .entity-p {
140
+ color: #5bb5a2;
141
+ font-weight: 600;
142
+ }
143
+ .whatsup-briefing .entity-proj {
144
+ color: #b197d4;
145
+ font-weight: 600;
146
+ }
147
+ .whatsup-briefing .entity-ev {
148
+ color: #e09f3e;
149
+ font-weight: 600;
150
+ }
151
+ .whatsup-briefing .entity-d {
152
+ color: #67b8e3;
153
+ }
154
+ .whatsup-briefing .entity-st {
155
+ color: #eab354;
156
+ }
157
+ .whatsup-briefing .entity-f {
158
+ color: #8a8691;
159
+ font-family: var(--font-mono);
160
+ font-size: 0.85em;
161
+ }
162
+
163
+ /* ── Brain prose: unified markdown styles ── */
164
+ .brain-prose {
165
+ font-family: var(--font-body);
166
+ font-size: 0.875rem;
167
+ line-height: 1.7;
168
+ color: #e8e4df;
169
+ }
170
+
171
+ /* Headings */
172
+ .brain-prose h1 {
173
+ font-family: var(--font-display);
174
+ font-size: 1.5rem;
175
+ font-weight: 400;
176
+ color: #e8e4df;
177
+ margin-top: 2rem;
178
+ margin-bottom: 0.75rem;
179
+ }
180
+ .brain-prose h2 {
181
+ font-family: var(--font-display);
182
+ font-size: 1.15rem;
183
+ font-weight: 400;
184
+ color: #e09f3e;
185
+ margin-top: 1.75rem;
186
+ margin-bottom: 0.5rem;
187
+ padding-bottom: 0.375rem;
188
+ border-bottom: 1px solid #2a2d35;
189
+ }
190
+ .brain-prose h3 {
191
+ font-family: var(--font-body);
192
+ font-size: 0.95rem;
193
+ font-weight: 600;
194
+ color: #e8e4df;
195
+ margin-top: 1.5rem;
196
+ margin-bottom: 0.375rem;
197
+ }
198
+ .brain-prose h4 {
199
+ font-family: var(--font-body);
200
+ font-size: 0.875rem;
201
+ font-weight: 600;
202
+ color: #8a8691;
203
+ text-transform: uppercase;
204
+ letter-spacing: 0.04em;
205
+ margin-top: 1.25rem;
206
+ margin-bottom: 0.375rem;
207
+ }
208
+ .brain-prose :is(h1, h2, h3, h4):first-child {
209
+ margin-top: 0;
210
+ }
211
+
212
+ /* Paragraphs */
213
+ .brain-prose p {
214
+ margin-top: 0.5rem;
215
+ margin-bottom: 0.5rem;
216
+ }
217
+
218
+ /* Bold / italic */
219
+ .brain-prose strong {
220
+ font-weight: 600;
221
+ color: #e8e4df;
222
+ }
223
+ .brain-prose em {
224
+ font-style: italic;
225
+ color: #c0bcb5;
226
+ }
227
+
228
+ /* Links */
229
+ .brain-prose a {
230
+ color: #e09f3e;
231
+ text-decoration: underline;
232
+ text-decoration-color: rgba(224, 159, 62, 0.3);
233
+ text-underline-offset: 2px;
234
+ transition: color 0.15s;
235
+ }
236
+ .brain-prose a:hover {
237
+ color: rgba(224, 159, 62, 0.8);
238
+ }
239
+
240
+ /* Lists */
241
+ .brain-prose ul {
242
+ list-style-type: disc;
243
+ padding-left: 1.5rem;
244
+ margin-top: 0.5rem;
245
+ margin-bottom: 0.5rem;
246
+ }
247
+ .brain-prose ol {
248
+ list-style-type: decimal;
249
+ padding-left: 1.5rem;
250
+ margin-top: 0.5rem;
251
+ margin-bottom: 0.5rem;
252
+ }
253
+ .brain-prose li {
254
+ margin-top: 0.25rem;
255
+ margin-bottom: 0.25rem;
256
+ padding-left: 0.25rem;
257
+ }
258
+ .brain-prose li::marker {
259
+ color: #5bb5a2;
260
+ }
261
+
262
+ /* Tables */
263
+ .brain-prose table {
264
+ width: 100%;
265
+ font-size: 0.8125rem;
266
+ border-collapse: collapse;
267
+ margin-top: 0.75rem;
268
+ margin-bottom: 0.75rem;
269
+ }
270
+ .brain-prose thead th {
271
+ text-align: left;
272
+ font-weight: 600;
273
+ font-size: 0.75rem;
274
+ text-transform: uppercase;
275
+ letter-spacing: 0.04em;
276
+ color: #8a8691;
277
+ padding: 0.5rem 0.75rem;
278
+ border-bottom: 2px solid #2a2d35;
279
+ background: #141619;
280
+ }
281
+ .brain-prose tbody td {
282
+ padding: 0.5rem 0.75rem;
283
+ border-bottom: 1px solid #1f2229;
284
+ vertical-align: top;
285
+ }
286
+ .brain-prose tbody tr:hover {
287
+ background: rgba(224, 159, 62, 0.03);
288
+ }
289
+
290
+ /* Code - inline */
291
+ .brain-prose :not(pre) > code {
292
+ font-family: var(--font-mono);
293
+ font-size: 0.8em;
294
+ background: #1a1d22;
295
+ padding: 0.125rem 0.375rem;
296
+ border-radius: 0.25rem;
297
+ color: #e8e4df;
298
+ }
299
+
300
+ /* Code - blocks */
301
+ .brain-prose pre {
302
+ font-family: var(--font-mono);
303
+ font-size: 0.8125rem;
304
+ line-height: 1.6;
305
+ background: #141619;
306
+ border: 1px solid #2a2d35;
307
+ border-radius: 0.5rem;
308
+ padding: 1rem;
309
+ overflow-x: auto;
310
+ margin-top: 0.75rem;
311
+ margin-bottom: 0.75rem;
312
+ }
313
+ .brain-prose pre code {
314
+ background: none;
315
+ padding: 0;
316
+ font-size: inherit;
317
+ }
318
+
319
+ /* Mermaid diagrams (rendered from ```mermaid fences) */
320
+ .brain-prose .mermaid-figure {
321
+ margin: 0.75rem 0;
322
+ text-align: center;
323
+ }
324
+ .brain-prose .mermaid-figure svg {
325
+ max-width: 100%;
326
+ height: auto;
327
+ }
328
+
329
+ /* Blockquotes */
330
+ .brain-prose blockquote {
331
+ border-left: 3px solid #e09f3e;
332
+ background: rgba(224, 159, 62, 0.04);
333
+ padding: 0.75rem 1rem;
334
+ margin: 0.75rem 0;
335
+ border-radius: 0 0.375rem 0.375rem 0;
336
+ }
337
+ .brain-prose blockquote p {
338
+ color: #c0bcb5;
339
+ font-style: italic;
340
+ }
341
+
342
+ /* Horizontal rules */
343
+ .brain-prose hr {
344
+ border: none;
345
+ height: 1px;
346
+ background: linear-gradient(to right, transparent, #2a2d35 20%, #2a2d35 80%, transparent);
347
+ margin: 1.5rem 0;
348
+ }
349
+
350
+ /* Images */
351
+ .brain-prose img {
352
+ border-radius: 0.5rem;
353
+ margin-top: 0.75rem;
354
+ margin-bottom: 0.75rem;
355
+ }
356
+
357
+ /* File reference links — distinct from external links */
358
+ .brain-file-link {
359
+ color: var(--color-accent);
360
+ text-decoration: underline;
361
+ text-decoration-style: dotted;
362
+ text-decoration-color: rgba(91, 181, 162, 0.4);
363
+ text-underline-offset: 3px;
364
+ font-family: var(--font-mono);
365
+ font-size: 0.95em;
366
+ cursor: pointer;
367
+ transition: color 0.15s, background-color 0.15s;
368
+ padding: 0 2px;
369
+ border-radius: 3px;
370
+ }
371
+ .brain-file-link:hover {
372
+ color: var(--color-foreground);
373
+ background-color: rgba(91, 181, 162, 0.1);
374
+ text-decoration-color: rgba(91, 181, 162, 0.8);
375
+ }
376
+ /* Override .brain-prose a styling when it's a file link */
377
+ .brain-prose a.brain-file-link {
378
+ color: var(--color-accent);
379
+ text-decoration-color: rgba(91, 181, 162, 0.4);
380
+ }
381
+ .brain-prose a.brain-file-link:hover {
382
+ color: var(--color-foreground);
383
+ text-decoration-color: rgba(91, 181, 162, 0.8);
384
+ }
385
+
386
+ /* Directory links read slightly differently — italic + folder-cue color */
387
+ .brain-file-link--dir,
388
+ .brain-prose a.brain-file-link--dir {
389
+ color: var(--color-primary);
390
+ text-decoration-color: rgba(224, 159, 62, 0.4);
391
+ }
392
+ .brain-file-link--dir:hover,
393
+ .brain-prose a.brain-file-link--dir:hover {
394
+ color: var(--color-foreground);
395
+ background-color: rgba(224, 159, 62, 0.1);
396
+ text-decoration-color: rgba(224, 159, 62, 0.8);
397
+ }
398
+
399
+ /* Wikilinks — match file-link styling but use a subtle bracket cue */
400
+ .brain-wiki-link::before,
401
+ .brain-prose a.brain-wiki-link::before {
402
+ content: "↗";
403
+ margin-right: 0.15em;
404
+ font-size: 0.85em;
405
+ opacity: 0.55;
406
+ }
407
+ .brain-wiki-link--unresolved {
408
+ color: var(--color-muted-foreground);
409
+ text-decoration: underline;
410
+ text-decoration-style: dotted;
411
+ text-decoration-color: rgba(138, 134, 145, 0.5);
412
+ text-underline-offset: 3px;
413
+ cursor: help;
414
+ }
415
+ .brain-wiki-link--unresolved::before {
416
+ content: "✗";
417
+ margin-right: 0.15em;
418
+ font-size: 0.8em;
419
+ opacity: 0.6;
420
+ }
421
+
422
+ /* Tree node highlight flash for openDir() navigation */
423
+ @keyframes brain-tree-flash {
424
+ 0% {
425
+ background-color: rgba(91, 181, 162, 0.35);
426
+ box-shadow: inset 0 0 0 1px rgba(91, 181, 162, 0.6);
427
+ }
428
+ 100% {
429
+ background-color: transparent;
430
+ box-shadow: inset 0 0 0 1px transparent;
431
+ }
432
+ }
433
+ .brain-tree-highlight {
434
+ animation: brain-tree-flash 1.6s ease-out;
435
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@schlessera/brain-ui-react",
3
- "version": "0.16.0",
3
+ "version": "0.17.0",
4
4
  "description": "brain-kit chat-UI React components: chat surface, tool-call timeline, file browser, voice dictation, stores, and WebSocket transport",
5
5
  "license": "MIT",
6
6
  "keywords": [
@@ -22,7 +22,9 @@
22
22
  "publishConfig": {
23
23
  "access": "public"
24
24
  },
25
- "sideEffects": false,
25
+ "sideEffects": [
26
+ "**/*.css"
27
+ ],
26
28
  "type": "module",
27
29
  "exports": {
28
30
  ".": {
@@ -31,7 +33,8 @@
31
33
  "default": "./dist/index.js"
32
34
  },
33
35
  "./styles.css": "./dist/styles.css",
34
- "./theme.css": "./src/theme.css"
36
+ "./theme.css": "./dist/theme.css",
37
+ "./package.json": "./package.json"
35
38
  },
36
39
  "files": [
37
40
  "src",
@@ -39,11 +42,11 @@
39
42
  "README.md"
40
43
  ],
41
44
  "scripts": {
42
- "test": "bun test tests",
45
+ "test": "bun test tests --timeout 30000",
43
46
  "prepublishOnly": "bun ../../scripts/check-dist.ts"
44
47
  },
45
48
  "dependencies": {
46
- "@schlessera/brain-ui-sdk": "0.16.0",
49
+ "@schlessera/brain-ui-sdk": "0.17.0",
47
50
  "@simplewebauthn/browser": "^13.2.2",
48
51
  "clsx": "^2",
49
52
  "framer-motion": "^12.38.0",
@@ -63,13 +66,16 @@
63
66
  "react-dom": ">=18"
64
67
  },
65
68
  "devDependencies": {
69
+ "@happy-dom/global-registrator": "^20.11.6",
66
70
  "@tailwindcss/cli": "^4",
71
+ "@testing-library/dom": "^10.4.1",
72
+ "@testing-library/react": "^16.3.2",
67
73
  "@types/bun": "^1.3.14",
68
74
  "@types/react": "^19",
69
75
  "@types/react-dom": "^19",
70
- "tailwindcss": "^4",
71
- "typescript": "^6.0.3",
72
76
  "react": "^19",
73
- "react-dom": "^19"
77
+ "react-dom": "^19",
78
+ "tailwindcss": "^4",
79
+ "typescript": "^6.0.3"
74
80
  }
75
81
  }
@@ -19,7 +19,7 @@ import type { ToolCall } from "../../stores/chat-store.js";
19
19
  * (`~/brain`).
20
20
  */
21
21
  export function isInsideBrainRepo(path: string): boolean {
22
- if (/^\/data\/brain\//.test(path) || /^\/home\/[^/]+\/brain\//.test(path)) {
22
+ if (path.startsWith("/data/brain/") || /^\/home\/[^/]+\/brain\//.test(path)) {
23
23
  return true;
24
24
  }
25
25
  // Repo-relative: not absolute and not escaping upward.
@@ -21,6 +21,10 @@ import { linkifyPaths, FileLink } from "./brain-markdown.js";
21
21
  import { MarkdownContent } from "./markdown-content.js";
22
22
  import { isInternalRepoPath } from "../../stores/file-store.js";
23
23
  import { GET_LOCATION_TOOL_NAME, normalizeToolName } from "../../lib/tool-names.js";
24
+ import { computeDiffRows, type WordToken } from "../../lib/diff.js";
25
+
26
+ // Re-exported so existing imports of the diff engine from this module keep working.
27
+ export { computeDiffRows };
24
28
 
25
29
  // ============================================================
26
30
  // Shared helpers
@@ -265,143 +269,6 @@ function PathHeader({ path, badge }: { path: string | null; badge?: string | nul
265
269
  );
266
270
  }
267
271
 
268
- // ------------------------------------------------------------
269
- // Diff helpers — line-level LCS with word-level refinement
270
- // ------------------------------------------------------------
271
-
272
- type DiffOp<T> = { kind: "same" | "del" | "ins"; value: T };
273
-
274
- /**
275
- * Hand-rolled LCS diff (standard DP + forward walk) so we avoid pulling in the
276
- * `diff` package. Returns ops in source order: `same` where the sequences
277
- * agree, `del` for items only in `a`, `ins` for items only in `b`.
278
- */
279
- function diffSeq<T>(
280
- a: T[],
281
- b: T[],
282
- eq: (x: T, y: T) => boolean = (x, y) => x === y
283
- ): DiffOp<T>[] {
284
- const m = a.length;
285
- const n = b.length;
286
- // dp[i][j] = length of the LCS of a[i:] and b[j:]
287
- const dp: number[][] = Array.from({ length: m + 1 }, () => new Array(n + 1).fill(0));
288
- for (let i = m - 1; i >= 0; i--) {
289
- for (let j = n - 1; j >= 0; j--) {
290
- dp[i][j] = eq(a[i], b[j])
291
- ? dp[i + 1][j + 1] + 1
292
- : Math.max(dp[i + 1][j], dp[i][j + 1]);
293
- }
294
- }
295
- const ops: DiffOp<T>[] = [];
296
- let i = 0;
297
- let j = 0;
298
- while (i < m && j < n) {
299
- if (eq(a[i], b[j])) {
300
- ops.push({ kind: "same", value: a[i] });
301
- i++;
302
- j++;
303
- } else if (dp[i + 1][j] >= dp[i][j + 1]) {
304
- ops.push({ kind: "del", value: a[i] });
305
- i++;
306
- } else {
307
- ops.push({ kind: "ins", value: b[j] });
308
- j++;
309
- }
310
- }
311
- while (i < m) ops.push({ kind: "del", value: a[i++] });
312
- while (j < n) ops.push({ kind: "ins", value: b[j++] });
313
- return ops;
314
- }
315
-
316
- /** A word token, flagged when it differs from its counterpart line. */
317
- type WordToken = { text: string; changed: boolean };
318
-
319
- /**
320
- * Token-level LCS for a single deleted/inserted line pair. Splitting on
321
- * `/(\s+)/` keeps the whitespace as its own tokens so we can reassemble the
322
- * line exactly. Unchanged tokens are shared between both sides.
323
- */
324
- function wordDiff(oldLine: string, newLine: string): { del: WordToken[]; ins: WordToken[] } {
325
- const a = oldLine.split(/(\s+)/);
326
- const b = newLine.split(/(\s+)/);
327
- // Token-level LCS is O(words²); a pathological minified line would be slow.
328
- // Above the cap, skip word refinement and flag the whole line as changed.
329
- if (a.length * b.length > 10_000) {
330
- return {
331
- del: [{ text: oldLine, changed: true }],
332
- ins: [{ text: newLine, changed: true }],
333
- };
334
- }
335
- const ops = diffSeq(a, b);
336
- const del: WordToken[] = [];
337
- const ins: WordToken[] = [];
338
- for (const op of ops) {
339
- if (op.kind === "same") {
340
- del.push({ text: op.value, changed: false });
341
- ins.push({ text: op.value, changed: false });
342
- } else if (op.kind === "del") {
343
- del.push({ text: op.value, changed: true });
344
- } else {
345
- ins.push({ text: op.value, changed: true });
346
- }
347
- }
348
- return { del, ins };
349
- }
350
-
351
- /** A rendered diff row. `tokens` is set only for word-refined single-line edits. */
352
- type DiffRow = {
353
- kind: "same" | "del" | "ins";
354
- line: string;
355
- tokens: WordToken[] | null;
356
- };
357
-
358
- /**
359
- * Merge `old_string`/`new_string` into a single diff: unchanged lines appear
360
- * once as neutral, deletions/insertions keep the red/green treatment. A change
361
- * block that is exactly one deleted line against one inserted line gets
362
- * word-level highlighting.
363
- */
364
- export function computeDiffRows(oldStr: string, newStr: string): DiffRow[] {
365
- const oldLines = oldStr.split("\n");
366
- const newLines = newStr.split("\n");
367
- // Line-level LCS is O(m×n) in time and memory; a huge Edit (thousands of
368
- // lines) would build a massive DP matrix and hang the UI. Above the cap, fall
369
- // back to a naive "all old removed, all new added" diff.
370
- if (oldLines.length * newLines.length > 250_000) {
371
- return [
372
- ...oldLines.map((line): DiffRow => ({ kind: "del", line, tokens: null })),
373
- ...newLines.map((line): DiffRow => ({ kind: "ins", line, tokens: null })),
374
- ];
375
- }
376
- const ops = diffSeq(oldLines, newLines);
377
- const rows: DiffRow[] = [];
378
- let idx = 0;
379
- while (idx < ops.length) {
380
- if (ops[idx].kind === "same") {
381
- rows.push({ kind: "same", line: ops[idx].value, tokens: null });
382
- idx++;
383
- continue;
384
- }
385
- // Collect a maximal run of changes, grouping deletes before inserts.
386
- const dels: string[] = [];
387
- const inss: string[] = [];
388
- while (idx < ops.length && ops[idx].kind !== "same") {
389
- if (ops[idx].kind === "del") dels.push(ops[idx].value);
390
- else inss.push(ops[idx].value);
391
- idx++;
392
- }
393
- if (dels.length === 1 && inss.length === 1) {
394
- const { del, ins } = wordDiff(dels[0], inss[0]);
395
- rows.push({ kind: "del", line: dels[0], tokens: del });
396
- rows.push({ kind: "ins", line: inss[0], tokens: ins });
397
- } else {
398
- for (const d of dels) rows.push({ kind: "del", line: d, tokens: null });
399
- for (const s of inss) rows.push({ kind: "ins", line: s, tokens: null });
400
- }
401
- }
402
- return rows;
403
- }
404
-
405
272
  /** Render a diff line, emphasizing changed word tokens when refined. */
406
273
  function DiffLine({ tokens, line, changedClass }: {
407
274
  tokens: WordToken[] | null;