@kgdiff/viewer 0.0.0-stage → 0.1.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 (155) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +52 -2
  3. package/dist/compute-loader.d.ts +13 -0
  4. package/dist/compute-loader.d.ts.map +1 -0
  5. package/dist/compute-loader.js +46 -0
  6. package/dist/compute-loader.js.map +1 -0
  7. package/dist/compute.d.ts +8 -0
  8. package/dist/compute.d.ts.map +1 -0
  9. package/dist/compute.js +8 -0
  10. package/dist/compute.js.map +1 -0
  11. package/dist/controller.d.ts +199 -0
  12. package/dist/controller.d.ts.map +1 -0
  13. package/dist/controller.js +1254 -0
  14. package/dist/controller.js.map +1 -0
  15. package/dist/dom.d.ts +32 -0
  16. package/dist/dom.d.ts.map +1 -0
  17. package/dist/dom.js +105 -0
  18. package/dist/dom.js.map +1 -0
  19. package/dist/element.d.ts +43 -0
  20. package/dist/element.d.ts.map +1 -0
  21. package/dist/element.js +656 -0
  22. package/dist/element.js.map +1 -0
  23. package/dist/framing.d.ts +45 -0
  24. package/dist/framing.d.ts.map +1 -0
  25. package/dist/framing.js +107 -0
  26. package/dist/framing.js.map +1 -0
  27. package/dist/hash-sync.d.ts +18 -0
  28. package/dist/hash-sync.d.ts.map +1 -0
  29. package/dist/hash-sync.js +45 -0
  30. package/dist/hash-sync.js.map +1 -0
  31. package/dist/i18n.d.ts +223 -0
  32. package/dist/i18n.d.ts.map +1 -0
  33. package/dist/i18n.js +436 -0
  34. package/dist/i18n.js.map +1 -0
  35. package/dist/icons.d.ts +37 -0
  36. package/dist/icons.d.ts.map +1 -0
  37. package/dist/icons.js +36 -0
  38. package/dist/icons.js.map +1 -0
  39. package/dist/index.d.ts +151 -0
  40. package/dist/index.d.ts.map +1 -0
  41. package/dist/index.js +41 -0
  42. package/dist/index.js.map +1 -0
  43. package/dist/keyboard.d.ts +64 -0
  44. package/dist/keyboard.d.ts.map +1 -0
  45. package/dist/keyboard.js +95 -0
  46. package/dist/keyboard.js.map +1 -0
  47. package/dist/list-model.d.ts +35 -0
  48. package/dist/list-model.d.ts.map +1 -0
  49. package/dist/list-model.js +70 -0
  50. package/dist/list-model.js.map +1 -0
  51. package/dist/payload.d.ts +10 -0
  52. package/dist/payload.d.ts.map +1 -0
  53. package/dist/payload.js +138 -0
  54. package/dist/payload.js.map +1 -0
  55. package/dist/pipeline.d.ts +31 -0
  56. package/dist/pipeline.d.ts.map +1 -0
  57. package/dist/pipeline.js +122 -0
  58. package/dist/pipeline.js.map +1 -0
  59. package/dist/prefs.d.ts +18 -0
  60. package/dist/prefs.d.ts.map +1 -0
  61. package/dist/prefs.js +38 -0
  62. package/dist/prefs.js.map +1 -0
  63. package/dist/registry.d.ts +3 -0
  64. package/dist/registry.d.ts.map +1 -0
  65. package/dist/registry.js +3 -0
  66. package/dist/registry.js.map +1 -0
  67. package/dist/renderer-port.d.ts +14 -0
  68. package/dist/renderer-port.d.ts.map +1 -0
  69. package/dist/renderer-port.js +16 -0
  70. package/dist/renderer-port.js.map +1 -0
  71. package/dist/replay.d.ts +55 -0
  72. package/dist/replay.d.ts.map +1 -0
  73. package/dist/replay.js +147 -0
  74. package/dist/replay.js.map +1 -0
  75. package/dist/review-store.d.ts +30 -0
  76. package/dist/review-store.d.ts.map +1 -0
  77. package/dist/review-store.js +120 -0
  78. package/dist/review-store.js.map +1 -0
  79. package/dist/search.d.ts +25 -0
  80. package/dist/search.d.ts.map +1 -0
  81. package/dist/search.js +90 -0
  82. package/dist/search.js.map +1 -0
  83. package/dist/standalone/kgdiff-viewer-compute.js +1 -0
  84. package/dist/standalone/kgdiff-viewer.js +5 -0
  85. package/dist/standalone-compute.d.ts +2 -0
  86. package/dist/standalone-compute.d.ts.map +1 -0
  87. package/dist/standalone-compute.js +8 -0
  88. package/dist/standalone-compute.js.map +1 -0
  89. package/dist/standalone.d.ts +2 -0
  90. package/dist/standalone.d.ts.map +1 -0
  91. package/dist/standalone.js +18 -0
  92. package/dist/standalone.js.map +1 -0
  93. package/dist/styles.d.ts +11 -0
  94. package/dist/styles.d.ts.map +1 -0
  95. package/dist/styles.js +627 -0
  96. package/dist/styles.js.map +1 -0
  97. package/dist/text-diff.d.ts +32 -0
  98. package/dist/text-diff.d.ts.map +1 -0
  99. package/dist/text-diff.js +211 -0
  100. package/dist/text-diff.js.map +1 -0
  101. package/dist/ui/context.d.ts +32 -0
  102. package/dist/ui/context.d.ts.map +1 -0
  103. package/dist/ui/context.js +49 -0
  104. package/dist/ui/context.js.map +1 -0
  105. package/dist/ui/detail.d.ts +9 -0
  106. package/dist/ui/detail.d.ts.map +1 -0
  107. package/dist/ui/detail.js +566 -0
  108. package/dist/ui/detail.js.map +1 -0
  109. package/dist/ui/header.d.ts +14 -0
  110. package/dist/ui/header.d.ts.map +1 -0
  111. package/dist/ui/header.js +195 -0
  112. package/dist/ui/header.js.map +1 -0
  113. package/dist/ui/popovers.d.ts +20 -0
  114. package/dist/ui/popovers.d.ts.map +1 -0
  115. package/dist/ui/popovers.js +180 -0
  116. package/dist/ui/popovers.js.map +1 -0
  117. package/dist/ui/sidebar.d.ts +25 -0
  118. package/dist/ui/sidebar.d.ts.map +1 -0
  119. package/dist/ui/sidebar.js +609 -0
  120. package/dist/ui/sidebar.js.map +1 -0
  121. package/dist/ui/stage.d.ts +18 -0
  122. package/dist/ui/stage.d.ts.map +1 -0
  123. package/dist/ui/stage.js +664 -0
  124. package/dist/ui/stage.js.map +1 -0
  125. package/package.json +58 -3
  126. package/src/compute-loader.ts +58 -0
  127. package/src/compute.ts +7 -0
  128. package/src/controller.ts +1393 -0
  129. package/src/dom.ts +131 -0
  130. package/src/element.ts +697 -0
  131. package/src/framing.ts +150 -0
  132. package/src/hash-sync.ts +54 -0
  133. package/src/i18n.ts +469 -0
  134. package/src/icons.ts +48 -0
  135. package/src/index.ts +171 -0
  136. package/src/keyboard.ts +128 -0
  137. package/src/list-model.ts +86 -0
  138. package/src/payload.ts +165 -0
  139. package/src/pipeline.ts +179 -0
  140. package/src/prefs.ts +55 -0
  141. package/src/registry.ts +2 -0
  142. package/src/renderer-port.ts +31 -0
  143. package/src/replay.ts +163 -0
  144. package/src/review-store.ts +125 -0
  145. package/src/search.ts +113 -0
  146. package/src/standalone-compute.ts +8 -0
  147. package/src/standalone.ts +18 -0
  148. package/src/styles.ts +638 -0
  149. package/src/text-diff.ts +208 -0
  150. package/src/ui/context.ts +70 -0
  151. package/src/ui/detail.ts +921 -0
  152. package/src/ui/header.ts +278 -0
  153. package/src/ui/popovers.ts +251 -0
  154. package/src/ui/sidebar.ts +752 -0
  155. package/src/ui/stage.ts +853 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"element.js","sourceRoot":"","sources":["../src/element.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Camera framing around floating chrome. The legend, minimap, replay transport and top chips
3
+ * float over the canvas; a fit or flight must keep its target clear of them without wasting the
4
+ * rest of the canvas. Each obstacle can be avoided through one side (an inset); all assignments
5
+ * are tried (4ⁿ, n ≤ ~6 visible chips) and the one that shows `bounds` largest wins, ties going
6
+ * to the free region closest to the canvas center. Pure; all sizes in canvas px.
7
+ */
8
+ import type { Rect } from '@kgdiff/core';
9
+ export interface Insets {
10
+ readonly top: number;
11
+ readonly right: number;
12
+ readonly bottom: number;
13
+ readonly left: number;
14
+ }
15
+ /** The canvas size and the chrome floating over it (rects relative to the canvas). */
16
+ export interface ChromeLayout {
17
+ readonly width: number;
18
+ readonly height: number;
19
+ readonly obstacles: readonly Rect[];
20
+ }
21
+ export interface CameraTarget {
22
+ readonly x: number;
23
+ readonly y: number;
24
+ readonly k: number;
25
+ }
26
+ /** Breathing room around the target, px. */
27
+ export declare const FRAME_PADDING = 24;
28
+ export declare const NO_INSETS: Insets;
29
+ /** Zoom that fits `bounds` into the canvas minus `insets` (unclamped; 0 when nothing fits). */
30
+ export declare function fitZoom(bounds: Rect, width: number, height: number, insets: Insets): number;
31
+ /**
32
+ * Insets (padding included) that keep `bounds` clear of every obstacle while showing it as
33
+ * large as possible, the free region as centered as possible. Obstacles outside the canvas are
34
+ * ignored. With no feasible assignment, only the padding is returned.
35
+ */
36
+ export declare function chromeInsets(bounds: Rect, layout: ChromeLayout, padding?: number, maxZoom?: number): Insets;
37
+ /**
38
+ * Where a fit lands: `bounds` centered in the canvas minus `insets`, zoom clamped to
39
+ * [minK, maxK] (the renderer's `fitState` with no extra safe area). Screen = (world − (x, y))·k +
40
+ * canvas center.
41
+ */
42
+ export declare function frameTarget(bounds: Rect, width: number, height: number, insets: Insets, minK: number, maxK: number): CameraTarget;
43
+ /** The part of `view` (world units) not covered by `insets` at zoom `k`. */
44
+ export declare function freeView(view: Rect, k: number, insets: Insets): Rect;
45
+ //# sourceMappingURL=framing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"framing.d.ts","sourceRoot":"","sources":["../src/framing.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEzC,MAAM,WAAW,MAAM;IACrB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,sFAAsF;AACtF,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,SAAS,IAAI,EAAE,CAAC;CACrC;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,4CAA4C;AAC5C,eAAO,MAAM,aAAa,KAAK,CAAC;AAShC,eAAO,MAAM,SAAS,EAAE,MAAgE,CAAC;AAEzF,+FAA+F;AAC/F,wBAAgB,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAO3F;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,IAAI,EACZ,MAAM,EAAE,YAAY,EACpB,OAAO,SAAgB,EACvB,OAAO,SAA2B,GACjC,MAAM,CAwDR;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CACzB,MAAM,EAAE,IAAI,EACZ,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,GACX,YAAY,CAQd;AAED,4EAA4E;AAC5E,wBAAgB,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAOpE"}
@@ -0,0 +1,107 @@
1
+ /** Breathing room around the target, px. */
2
+ export const FRAME_PADDING = 24;
3
+ /** Gap kept between the target and an obstacle, px. */
4
+ const OBSTACLE_GAP = 8;
5
+ /** Zooms within this ratio of the best count as equal (then the most centered region wins). */
6
+ const ZOOM_TOLERANCE = 0.94;
7
+ /** Above this many obstacles only the largest are considered (keeps the search tiny). */
8
+ const MAX_OBSTACLES = 6;
9
+ const MIN_FREE = 48;
10
+ export const NO_INSETS = Object.freeze({ top: 0, right: 0, bottom: 0, left: 0 });
11
+ /** Zoom that fits `bounds` into the canvas minus `insets` (unclamped; 0 when nothing fits). */
12
+ export function fitZoom(bounds, width, height, insets) {
13
+ const w = width - insets.left - insets.right;
14
+ const h = height - insets.top - insets.bottom;
15
+ if (w < MIN_FREE || h < MIN_FREE)
16
+ return 0;
17
+ const kw = bounds.width > 0 ? w / bounds.width : Number.POSITIVE_INFINITY;
18
+ const kh = bounds.height > 0 ? h / bounds.height : Number.POSITIVE_INFINITY;
19
+ return Math.min(kw, kh);
20
+ }
21
+ /**
22
+ * Insets (padding included) that keep `bounds` clear of every obstacle while showing it as
23
+ * large as possible, the free region as centered as possible. Obstacles outside the canvas are
24
+ * ignored. With no feasible assignment, only the padding is returned.
25
+ */
26
+ export function chromeInsets(bounds, layout, padding = FRAME_PADDING, maxZoom = Number.POSITIVE_INFINITY) {
27
+ const { width: W, height: H } = layout;
28
+ const base = { top: padding, right: padding, bottom: padding, left: padding };
29
+ const obstacles = layout.obstacles
30
+ .filter((r) => r.width > 0 &&
31
+ r.height > 0 &&
32
+ r.x < W &&
33
+ r.y < H &&
34
+ r.x + r.width > 0 &&
35
+ r.y + r.height > 0)
36
+ .sort((a, b) => b.width * b.height - a.width * a.height)
37
+ .slice(0, MAX_OBSTACLES);
38
+ // The inset each obstacle needs on each side to be avoided through it.
39
+ const needs = obstacles.map((r) => [
40
+ r.y + r.height + OBSTACLE_GAP, // top
41
+ W - r.x + OBSTACLE_GAP, // right
42
+ H - r.y + OBSTACLE_GAP, // bottom
43
+ r.x + r.width + OBSTACLE_GAP, // left
44
+ ]);
45
+ const cap = (k) => Math.min(k, maxZoom);
46
+ let best = base;
47
+ let bestK = -1;
48
+ let bestOff = Number.POSITIVE_INFINITY;
49
+ const count = 4 ** obstacles.length;
50
+ for (let code = 0; code < count; code++) {
51
+ let top = padding;
52
+ let right = padding;
53
+ let bottom = padding;
54
+ let left = padding;
55
+ let c = code;
56
+ for (const need of needs) {
57
+ const side = c & 3;
58
+ c >>= 2;
59
+ const v = need[side];
60
+ if (side === 0)
61
+ top = Math.max(top, v);
62
+ else if (side === 1)
63
+ right = Math.max(right, v);
64
+ else if (side === 2)
65
+ bottom = Math.max(bottom, v);
66
+ else
67
+ left = Math.max(left, v);
68
+ }
69
+ const insets = { top, right, bottom, left };
70
+ const k = cap(fitZoom(bounds, W, H, insets));
71
+ if (!(k > 0))
72
+ continue;
73
+ // Distance of the free region's center from the canvas center.
74
+ const off = Math.hypot((left - right) / 2, (top - bottom) / 2);
75
+ const better = k > bestK / ZOOM_TOLERANCE || (k >= bestK * ZOOM_TOLERANCE && off < bestOff - 0.5);
76
+ if (bestK < 0 || better) {
77
+ best = insets;
78
+ bestK = Math.max(k, bestK);
79
+ bestOff = off;
80
+ }
81
+ }
82
+ return best;
83
+ }
84
+ /**
85
+ * Where a fit lands: `bounds` centered in the canvas minus `insets`, zoom clamped to
86
+ * [minK, maxK] (the renderer's `fitState` with no extra safe area). Screen = (world − (x, y))·k +
87
+ * canvas center.
88
+ */
89
+ export function frameTarget(bounds, width, height, insets, minK, maxK) {
90
+ const fit = fitZoom(bounds, width, height, insets);
91
+ const k = Math.min(maxK, Math.max(minK, fit > 0 ? fit : maxK));
92
+ const sx = insets.left + (width - insets.left - insets.right) / 2;
93
+ const sy = insets.top + (height - insets.top - insets.bottom) / 2;
94
+ const cx = bounds.x + bounds.width / 2;
95
+ const cy = bounds.y + bounds.height / 2;
96
+ return { x: cx - (sx - width / 2) / k, y: cy - (sy - height / 2) / k, k };
97
+ }
98
+ /** The part of `view` (world units) not covered by `insets` at zoom `k`. */
99
+ export function freeView(view, k, insets) {
100
+ return {
101
+ x: view.x + insets.left / k,
102
+ y: view.y + insets.top / k,
103
+ width: Math.max(0, view.width - (insets.left + insets.right) / k),
104
+ height: Math.max(0, view.height - (insets.top + insets.bottom) / k),
105
+ };
106
+ }
107
+ //# sourceMappingURL=framing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"framing.js","sourceRoot":"","sources":["../src/framing.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Deep links for `sync-hash`: `#kgdiff=hunk:<id>;mode:<mode>`.
3
+ *
4
+ * Values are percent-encoded (hunk ids embed union ids, which may be IRIs containing `;`, `#`
5
+ * or `:`), so parsing splits on the first `:` of each `;`-separated field. Unknown fields are
6
+ * ignored; a malformed value drops just that field.
7
+ */
8
+ import type { ViewerMode } from './index.js';
9
+ export interface HashState {
10
+ readonly hunk?: string;
11
+ readonly mode?: ViewerMode;
12
+ }
13
+ export declare function isViewerMode(value: unknown): value is ViewerMode;
14
+ /** Parse a location hash (with or without `#`). Returns null when it is not a kgdiff link. */
15
+ export declare function parseHash(hash: string): HashState | null;
16
+ /** Encode `state` as a hash (`#kgdiff=…`); empty state gives `#kgdiff=`. */
17
+ export declare function formatHash(state: HashState): string;
18
+ //# sourceMappingURL=hash-sync.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hash-sync.d.ts","sourceRoot":"","sources":["../src/hash-sync.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,CAAC,EAAE,UAAU,CAAC;CAC5B;AAKD,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,UAAU,CAEhE;AAUD,8FAA8F;AAC9F,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAexD;AAED,4EAA4E;AAC5E,wBAAgB,UAAU,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,CAKnD"}
@@ -0,0 +1,45 @@
1
+ const PREFIX = 'kgdiff=';
2
+ const MODES = new Set(['overlay', 'swipe', 'replay', 'changes']);
3
+ export function isViewerMode(value) {
4
+ return typeof value === 'string' && MODES.has(value);
5
+ }
6
+ function decode(value) {
7
+ try {
8
+ return decodeURIComponent(value);
9
+ }
10
+ catch {
11
+ return undefined;
12
+ }
13
+ }
14
+ /** Parse a location hash (with or without `#`). Returns null when it is not a kgdiff link. */
15
+ export function parseHash(hash) {
16
+ const raw = hash.startsWith('#') ? hash.slice(1) : hash;
17
+ if (!raw.startsWith(PREFIX))
18
+ return null;
19
+ let hunk;
20
+ let mode;
21
+ for (const field of raw.slice(PREFIX.length).split(';')) {
22
+ const colon = field.indexOf(':');
23
+ if (colon <= 0)
24
+ continue;
25
+ const key = field.slice(0, colon);
26
+ const value = decode(field.slice(colon + 1));
27
+ if (value === undefined || value === '')
28
+ continue;
29
+ if (key === 'hunk')
30
+ hunk = value;
31
+ else if (key === 'mode' && isViewerMode(value))
32
+ mode = value;
33
+ }
34
+ return { ...(hunk !== undefined ? { hunk } : {}), ...(mode !== undefined ? { mode } : {}) };
35
+ }
36
+ /** Encode `state` as a hash (`#kgdiff=…`); empty state gives `#kgdiff=`. */
37
+ export function formatHash(state) {
38
+ const fields = [];
39
+ if (state.hunk !== undefined)
40
+ fields.push(`hunk:${encodeURIComponent(state.hunk)}`);
41
+ if (state.mode !== undefined)
42
+ fields.push(`mode:${state.mode}`);
43
+ return `#${PREFIX}${fields.join(';')}`;
44
+ }
45
+ //# sourceMappingURL=hash-sync.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hash-sync.js","sourceRoot":"","sources":["../src/hash-sync.ts"],"names":[],"mappings":"AAcA,MAAM,MAAM,GAAG,SAAS,CAAC;AACzB,MAAM,KAAK,GAAwB,IAAI,GAAG,CAAa,CAAC,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;AAElG,MAAM,UAAU,YAAY,CAAC,KAAc;IACzC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACvD,CAAC;AAED,SAAS,MAAM,CAAC,KAAa;IAC3B,IAAI,CAAC;QACH,OAAO,kBAAkB,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,8FAA8F;AAC9F,MAAM,UAAU,SAAS,CAAC,IAAY;IACpC,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACxD,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC;QAAE,OAAO,IAAI,CAAC;IACzC,IAAI,IAAwB,CAAC;IAC7B,IAAI,IAA4B,CAAC;IACjC,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QACxD,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,KAAK,IAAI,CAAC;YAAE,SAAS;QACzB,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QAClC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;QAC7C,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,EAAE;YAAE,SAAS;QAClD,IAAI,GAAG,KAAK,MAAM;YAAE,IAAI,GAAG,KAAK,CAAC;aAC5B,IAAI,GAAG,KAAK,MAAM,IAAI,YAAY,CAAC,KAAK,CAAC;YAAE,IAAI,GAAG,KAAK,CAAC;IAC/D,CAAC;IACD,OAAO,EAAE,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;AAC9F,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,UAAU,CAAC,KAAgB;IACzC,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS;QAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACpF,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS;QAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;IAChE,OAAO,IAAI,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;AACzC,CAAC"}
package/dist/i18n.d.ts ADDED
@@ -0,0 +1,223 @@
1
+ /**
2
+ * UI strings (`en`, `zh-CN`). Hunk titles and facet names come from core (`formatHunk`,
3
+ * `facetLabel`); everything the viewer itself says lives here.
4
+ *
5
+ * Placeholders are `{name}`. Keys ending in `.one` / `.other` are plural pairs used through
6
+ * `plural()`. Chinese UI quotes names with 「」, English with “ ”.
7
+ */
8
+ import type { Locale } from '@kgdiff/core';
9
+ declare const en: {
10
+ readonly 'brand.tagline': 'git diff for knowledge graphs';
11
+ readonly 'header.compare': 'Compared versions';
12
+ readonly 'mode.label': 'View mode';
13
+ readonly 'mode.overlay': 'Overlay';
14
+ readonly 'mode.swipe': 'Swipe';
15
+ readonly 'mode.replay': 'Replay';
16
+ readonly 'mode.changes': 'Changes only';
17
+ readonly 'family.added': 'Added';
18
+ readonly 'family.removed': 'Removed';
19
+ readonly 'family.content': 'Content';
20
+ readonly 'family.structure': 'Structure';
21
+ readonly 'family.identity': 'Identity';
22
+ readonly 'family.neutral': 'Unchanged';
23
+ readonly 'familyHint.added': 'Only in the new version';
24
+ readonly 'familyHint.removed': 'Only in the old version';
25
+ readonly 'familyHint.content': 'Renamed, attributes, types, synonyms';
26
+ readonly 'familyHint.structure': 'Moved or relinked';
27
+ readonly 'familyHint.identity': 'Merged, split or re-keyed';
28
+ readonly 'familyHint.neutral': 'Unchanged context';
29
+ readonly 'phase.remove': 'Removed';
30
+ readonly 'phase.restructure': 'Restructured';
31
+ readonly 'phase.modify': 'Modified';
32
+ readonly 'phase.add': 'Added';
33
+ readonly 'kind.add': 'Addition';
34
+ readonly 'kind.remove': 'Removal';
35
+ readonly 'kind.merge': 'Merge';
36
+ readonly 'kind.split': 'Split';
37
+ readonly 'kind.modify': 'Edit';
38
+ readonly 'kind.relations': 'Relations';
39
+ readonly 'status.unchanged': 'Unchanged';
40
+ readonly 'status.added': 'Added';
41
+ readonly 'status.removed': 'Removed';
42
+ readonly 'status.modified': 'Modified';
43
+ readonly 'stat.added': '{n} added';
44
+ readonly 'stat.removed': '{n} removed';
45
+ readonly 'stat.modified': '{n} modified';
46
+ readonly 'stat.restructured': '{n} restructured';
47
+ readonly 'stat.filter': 'Show only these changes';
48
+ readonly 'stat.label': 'Change summary';
49
+ readonly 'action.fit': 'Fit to view';
50
+ readonly 'action.help': 'Keyboard shortcuts';
51
+ readonly 'action.sidebar': 'Toggle sidebar';
52
+ readonly 'action.zoomIn': 'Zoom in';
53
+ readonly 'action.zoomOut': 'Zoom out';
54
+ readonly 'action.settings': 'Display settings';
55
+ readonly 'menu.theme': 'Theme';
56
+ readonly 'menu.palette': 'Colors';
57
+ readonly 'menu.language': 'Language';
58
+ readonly 'theme.auto': 'Auto';
59
+ readonly 'theme.light': 'Light';
60
+ readonly 'theme.dark': 'Dark';
61
+ readonly 'palette.default': 'Default';
62
+ readonly 'palette.colorblind': 'Color-blind safe';
63
+ readonly 'sidebar.label': 'Change list';
64
+ readonly 'sidebar.changes': 'Changes';
65
+ readonly 'sidebar.search': 'Search nodes';
66
+ readonly 'sidebar.searchPlaceholder': 'Search nodes…';
67
+ readonly 'sidebar.searchClear': 'Clear search';
68
+ readonly 'sidebar.noResults': 'No nodes match “{q}”';
69
+ readonly 'sidebar.results.one': '{n} node';
70
+ readonly 'sidebar.results.other': '{n} nodes';
71
+ readonly 'sidebar.filters': 'Filter by kind of change';
72
+ readonly 'sidebar.clearFilters': 'Show all';
73
+ readonly 'sidebar.filteredEmpty': 'No changes match the filters.';
74
+ readonly 'sidebar.noChanges': 'No changes to review.';
75
+ readonly 'sidebar.sheet': 'Resize panel';
76
+ readonly 'sidebar.sheetValue': '{p} of the height';
77
+ readonly 'review.progress': '{done} of {total} reviewed';
78
+ readonly 'review.toggle': 'Reviewed';
79
+ readonly 'review.mark': 'Mark as reviewed';
80
+ readonly 'review.unmark': 'Mark as not reviewed';
81
+ readonly 'review.complete': 'All changes reviewed';
82
+ readonly 'detail.label': 'Change details';
83
+ readonly 'detail.empty': 'Select a change to see what happened.';
84
+ readonly 'detail.emptyHint': 'Use j / k to step through changes.';
85
+ readonly 'detail.prev': 'Previous change';
86
+ readonly 'detail.next': 'Next change';
87
+ readonly 'detail.identity': 'Overview';
88
+ readonly 'detail.id': 'Id';
89
+ readonly 'detail.types': 'Types';
90
+ readonly 'detail.status': 'Status';
91
+ readonly 'detail.name': 'Name';
92
+ readonly 'detail.before': 'Before';
93
+ readonly 'detail.after': 'After';
94
+ readonly 'detail.attributes': 'Attributes';
95
+ readonly 'detail.key': 'Key';
96
+ readonly 'detail.aliases': 'Synonyms';
97
+ readonly 'detail.hierarchy': 'Hierarchy';
98
+ readonly 'detail.relations': 'Relations';
99
+ readonly 'detail.composition': 'Composition';
100
+ readonly 'detail.evidence': 'Match evidence';
101
+ readonly 'detail.nodes': 'Nodes';
102
+ readonly 'detail.showMore': 'Show more';
103
+ readonly 'detail.showLess': 'Show less';
104
+ readonly 'detail.unchangedAttrs.one': '{n} unchanged attribute';
105
+ readonly 'detail.unchangedAttrs.other': '{n} unchanged attributes';
106
+ readonly 'detail.moreRelations.one': '{n} more relation';
107
+ readonly 'detail.moreRelations.other': '{n} more relations';
108
+ readonly 'detail.was': 'was {x}';
109
+ readonly 'detail.viaHint': 'via replacement hint';
110
+ readonly 'detail.viaHeuristic': 'heuristic';
111
+ readonly 'detail.confidence': '{p} confidence';
112
+ readonly 'detail.matchScore': '{p} match';
113
+ readonly 'detail.matchHint': 'Matched through a replacement hint';
114
+ readonly 'detail.evidence.label': 'Label';
115
+ readonly 'detail.evidence.neighbors': 'Neighbours';
116
+ readonly 'detail.evidence.types': 'Types';
117
+ readonly 'detail.evidence.attrs': 'Attributes';
118
+ readonly 'detail.suggestion': 'Possible match';
119
+ readonly 'detail.suggestion.ambiguous': 'ambiguous';
120
+ readonly 'detail.suggestion.below': 'below threshold';
121
+ readonly 'detail.deprecated': 'Deprecated';
122
+ readonly 'detail.undeprecated': 'No longer deprecated';
123
+ readonly 'detail.replacedBy': 'Replaced by';
124
+ readonly 'detail.replaces': 'Replaces';
125
+ readonly 'detail.emptyValue': 'empty';
126
+ readonly 'detail.none': 'none';
127
+ readonly 'detail.unchangedNode': 'Unchanged node';
128
+ readonly 'detail.implicit': 'Created for a dangling relation';
129
+ readonly 'detail.collapsed': 'duplicate, collapsed';
130
+ readonly 'detail.mergedFrom': 'Merged from';
131
+ readonly 'detail.splitInto': 'Split into';
132
+ readonly 'detail.edgeAttrs': 'attributes changed';
133
+ readonly 'detail.showOnCanvas': 'Show on canvas';
134
+ readonly 'replay.label': 'Replay controls';
135
+ readonly 'replay.play': 'Play';
136
+ readonly 'replay.pause': 'Pause';
137
+ readonly 'replay.speed': 'Playback speed {s}';
138
+ readonly 'replay.position': '{i} / {n}';
139
+ readonly 'replay.finished': 'Replay finished';
140
+ readonly 'replay.restart': 'Restart';
141
+ readonly 'replay.scrubber': 'Replay position';
142
+ readonly 'swipe.divider': 'Comparison divider';
143
+ readonly 'focus.context': 'Context';
144
+ readonly 'focus.hops': 'Context hops';
145
+ readonly 'focus.expand': 'Click to expand';
146
+ readonly 'focus.expandUnavailable': 'Expanding needs the kgdiff compute add-on';
147
+ readonly 'focus.expandNearest': 'Show hidden context near the selection';
148
+ readonly 'announce.expanded': 'Expanded {label}';
149
+ readonly 'announce.nothingHidden': 'No hidden context';
150
+ readonly 'help.expand': 'Show hidden context (changes only)';
151
+ readonly 'legend.title': 'Legend';
152
+ readonly 'legend.toggle': 'Toggle legend';
153
+ readonly 'minimap.label': 'Overview';
154
+ readonly 'tooltip.relations.one': '{n} relation';
155
+ readonly 'tooltip.relations.other': '{n} relations';
156
+ readonly 'tooltip.select': 'Click to select';
157
+ readonly 'help.title': 'Keyboard shortcuts';
158
+ readonly 'help.close': 'Close';
159
+ readonly 'help.enter': 'Fly to the selected change';
160
+ readonly 'help.esc': 'Clear selection, close popovers';
161
+ readonly 'help.space': 'Play / pause (replay)';
162
+ readonly 'help.arrows': 'Step (replay) · move divider (swipe)';
163
+ readonly 'help.theme': 'Cycle theme';
164
+ readonly 'help.homeEnd': 'First / last change';
165
+ readonly 'state.loading': 'Preparing the diff';
166
+ readonly 'step.parse': 'Parsing';
167
+ readonly 'step.match': 'Matching nodes';
168
+ readonly 'step.layout': 'Laying out';
169
+ readonly 'step.scene': 'Drawing';
170
+ readonly 'state.identical.title': 'No differences';
171
+ readonly 'state.identical.body': 'Both versions have {nodes} and {edges}.';
172
+ readonly 'count.nodes.one': '{n} node';
173
+ readonly 'count.nodes.other': '{n} nodes';
174
+ readonly 'count.edges.one': '{n} edge';
175
+ readonly 'count.edges.other': '{n} edges';
176
+ readonly 'state.error.title': 'This diff could not be shown';
177
+ readonly 'state.error.details': 'Details';
178
+ readonly 'state.empty.title': 'Nothing to compare yet';
179
+ readonly 'state.empty.body': 'Load two versions of a graph to see what changed.';
180
+ readonly 'aria.canvas': 'Graph diff. Before: {nb} nodes, {eb} edges. After: {na} nodes, {ea} edges. {changes}.';
181
+ readonly 'aria.changes.one': '{n} change';
182
+ readonly 'aria.changes.other': '{n} changes';
183
+ readonly 'announce.change': 'Change {i} of {n}: {title}';
184
+ readonly 'announce.node': 'Node {label}, {status}';
185
+ readonly 'announce.mode': '{mode} view';
186
+ readonly 'announce.cleared': 'Selection cleared';
187
+ readonly 'announce.reviewed': 'Marked as reviewed. {progress}';
188
+ readonly 'announce.unreviewed': 'Marked as not reviewed. {progress}';
189
+ readonly 'announce.finished': 'Replay finished';
190
+ readonly 'announce.chapter': '{phase}: {n} changes';
191
+ readonly 'error.formats': 'Parsing text needs @kgdiff/formats (import it, or pass parsed graphs).';
192
+ readonly 'error.notLoaded': 'Nothing is loaded yet.';
193
+ };
194
+ export type MessageKey = keyof typeof en;
195
+ export type Messages = Readonly<Record<MessageKey, string>>;
196
+ export declare const MESSAGES: Readonly<Record<Locale, Messages>>;
197
+ export declare const LOCALES: readonly Locale[];
198
+ /** `zh*` → `zh-CN`, anything else → `en`. */
199
+ export declare function normalizeLocale(value: string | null | undefined): Locale | null;
200
+ /** The browser's preferred locale among the supported ones (default `en`). */
201
+ export declare function detectLocale(): Locale;
202
+ export declare function formatNumber(n: number, locale: Locale): string;
203
+ export declare function formatPercent(x: number): string;
204
+ export type Params = Readonly<Record<string, string | number>>;
205
+ /** Localized message with `{name}` placeholders; numbers are formatted for the locale. */
206
+ export declare function translate(locale: Locale, key: MessageKey, params?: Params): string;
207
+ type PluralBase<K> = K extends `${infer B}.one` ? B : never;
208
+ export type PluralKey = PluralBase<MessageKey>;
209
+ /** Plural pair `<key>.one` / `<key>.other` with `{n}`. */
210
+ export declare function plural(locale: Locale, key: PluralKey, n: number, params?: Params): string;
211
+ /** Quote a node name the way the locale does: “name” / 「name」. */
212
+ export declare function quote(text: string, locale: Locale): string;
213
+ /** A translator bound to one locale. */
214
+ export interface Translator {
215
+ readonly locale: Locale;
216
+ t(key: MessageKey, params?: Params): string;
217
+ plural(key: PluralKey, n: number, params?: Params): string;
218
+ num(n: number): string;
219
+ quote(text: string): string;
220
+ }
221
+ export declare function translator(locale: Locale): Translator;
222
+ export {};
223
+ //# sourceMappingURL=i18n.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../src/i18n.ts"],"names":[],"mappings":"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"}