@kgdiff/viewer 0.3.0 β†’ 0.5.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 (120) hide show
  1. package/README.md +9 -8
  2. package/dist/context.d.ts +42 -0
  3. package/dist/context.d.ts.map +1 -0
  4. package/dist/context.js +87 -0
  5. package/dist/context.js.map +1 -0
  6. package/dist/controller.d.ts +30 -173
  7. package/dist/controller.d.ts.map +1 -1
  8. package/dist/controller.js +94 -1099
  9. package/dist/controller.js.map +1 -1
  10. package/dist/element.d.ts +12 -6
  11. package/dist/element.d.ts.map +1 -1
  12. package/dist/element.js +105 -236
  13. package/dist/element.js.map +1 -1
  14. package/dist/hash-sync.d.ts +4 -2
  15. package/dist/hash-sync.d.ts.map +1 -1
  16. package/dist/hash-sync.js +21 -5
  17. package/dist/hash-sync.js.map +1 -1
  18. package/dist/i18n.d.ts +7 -7
  19. package/dist/i18n.d.ts.map +1 -1
  20. package/dist/i18n.js +14 -14
  21. package/dist/i18n.js.map +1 -1
  22. package/dist/index.d.ts +24 -10
  23. package/dist/index.d.ts.map +1 -1
  24. package/dist/index.js.map +1 -1
  25. package/dist/keyboard.d.ts +6 -4
  26. package/dist/keyboard.d.ts.map +1 -1
  27. package/dist/keyboard.js +6 -5
  28. package/dist/keyboard.js.map +1 -1
  29. package/dist/pipeline.d.ts.map +1 -1
  30. package/dist/pipeline.js +3 -2
  31. package/dist/pipeline.js.map +1 -1
  32. package/dist/prefs.d.ts +7 -1
  33. package/dist/prefs.d.ts.map +1 -1
  34. package/dist/prefs.js +15 -3
  35. package/dist/prefs.js.map +1 -1
  36. package/dist/root.d.ts +54 -0
  37. package/dist/root.d.ts.map +1 -0
  38. package/dist/root.js +265 -0
  39. package/dist/root.js.map +1 -0
  40. package/dist/schedule.d.ts +22 -0
  41. package/dist/schedule.d.ts.map +1 -0
  42. package/dist/schedule.js +41 -0
  43. package/dist/schedule.js.map +1 -0
  44. package/dist/session.d.ts +253 -0
  45. package/dist/session.d.ts.map +1 -0
  46. package/dist/session.js +1239 -0
  47. package/dist/session.js.map +1 -0
  48. package/dist/standalone/kgdiff-viewer-compute.js +1 -1
  49. package/dist/standalone/kgdiff-viewer.js +4 -4
  50. package/dist/styles.d.ts +13 -6
  51. package/dist/styles.d.ts.map +1 -1
  52. package/dist/styles.js +270 -295
  53. package/dist/styles.js.map +1 -1
  54. package/dist/theme.d.ts +25 -0
  55. package/dist/theme.d.ts.map +1 -0
  56. package/dist/theme.js +149 -0
  57. package/dist/theme.js.map +1 -0
  58. package/dist/ui/change-list.d.ts +18 -0
  59. package/dist/ui/change-list.d.ts.map +1 -0
  60. package/dist/ui/change-list.js +331 -0
  61. package/dist/ui/change-list.js.map +1 -0
  62. package/dist/ui/context.d.ts +21 -5
  63. package/dist/ui/context.d.ts.map +1 -1
  64. package/dist/ui/context.js.map +1 -1
  65. package/dist/ui/dock.d.ts +17 -0
  66. package/dist/ui/dock.d.ts.map +1 -0
  67. package/dist/ui/dock.js +151 -0
  68. package/dist/ui/dock.js.map +1 -0
  69. package/dist/ui/filters.d.ts +9 -0
  70. package/dist/ui/filters.d.ts.map +1 -0
  71. package/dist/ui/filters.js +68 -0
  72. package/dist/ui/filters.js.map +1 -0
  73. package/dist/ui/header.d.ts +7 -2
  74. package/dist/ui/header.d.ts.map +1 -1
  75. package/dist/ui/header.js +26 -135
  76. package/dist/ui/header.js.map +1 -1
  77. package/dist/ui/popovers.d.ts.map +1 -1
  78. package/dist/ui/popovers.js +3 -2
  79. package/dist/ui/popovers.js.map +1 -1
  80. package/dist/ui/search.d.ts +13 -0
  81. package/dist/ui/search.d.ts.map +1 -0
  82. package/dist/ui/search.js +191 -0
  83. package/dist/ui/search.js.map +1 -0
  84. package/dist/ui/sidebar.d.ts +8 -16
  85. package/dist/ui/sidebar.d.ts.map +1 -1
  86. package/dist/ui/sidebar.js +15 -538
  87. package/dist/ui/sidebar.js.map +1 -1
  88. package/dist/ui/stage.d.ts +4 -0
  89. package/dist/ui/stage.d.ts.map +1 -1
  90. package/dist/ui/stage.js +42 -95
  91. package/dist/ui/stage.js.map +1 -1
  92. package/dist/ui/swatch.d.ts +7 -0
  93. package/dist/ui/swatch.d.ts.map +1 -0
  94. package/dist/ui/swatch.js +26 -0
  95. package/dist/ui/swatch.js.map +1 -0
  96. package/package.json +6 -6
  97. package/src/context.ts +106 -0
  98. package/src/controller.ts +120 -1196
  99. package/src/element.ts +114 -254
  100. package/src/hash-sync.ts +20 -6
  101. package/src/i18n.ts +15 -14
  102. package/src/index.ts +24 -10
  103. package/src/keyboard.ts +12 -6
  104. package/src/pipeline.ts +4 -1
  105. package/src/prefs.ts +19 -4
  106. package/src/root.ts +308 -0
  107. package/src/schedule.ts +43 -0
  108. package/src/session.ts +1386 -0
  109. package/src/styles.ts +277 -299
  110. package/src/theme.ts +167 -0
  111. package/src/ui/change-list.ts +401 -0
  112. package/src/ui/context.ts +23 -5
  113. package/src/ui/dock.ts +198 -0
  114. package/src/ui/filters.ts +79 -0
  115. package/src/ui/header.ts +40 -170
  116. package/src/ui/popovers.ts +3 -2
  117. package/src/ui/search.ts +220 -0
  118. package/src/ui/sidebar.ts +28 -667
  119. package/src/ui/stage.ts +50 -115
  120. package/src/ui/swatch.ts +31 -0
package/dist/element.js CHANGED
@@ -1,27 +1,33 @@
1
1
  /**
2
- * `<kgdiff-viewer>`: attribute / property reflection, lifecycle, public methods and events
3
- * around a `ViewerController` and the Shadow-DOM UI.
2
+ * `<kgdiff-viewer>`, the default layout (RFC 0001 Β§4): a root (the session, keyboard map, live
3
+ * region, events and theme tokens; `root.ts`) and the regions bound to it, the stage with its
4
+ * chrome, the change list, the search, the family filters and the detail panel, placed as they
5
+ * always were (a 360 px sidebar; a bottom sheet below 760 px). Around them: attribute /
6
+ * property reflection, lifecycle, the public methods and deep links.
4
7
  */
5
8
  import { KgdiffError } from '@kgdiff/core';
6
- import { ViewerController } from './controller.js';
7
9
  import { h } from './dom.js';
8
10
  import { formatHash, parseHash } from './hash-sync.js';
9
11
  import { detectLocale, translate, translator } from './i18n.js';
10
- import { isTypingTarget, keyAction } from './keyboard.js';
11
12
  import { assertPayload } from './payload.js';
12
- import { DEFAULT_LOOP_DELAY, THEME_PREFERENCES, toChrome, toDelay, toLegend, toLocale, toMode, toPalette, toTheme, } from './prefs.js';
13
- import { defaultStorage } from './review-store.js';
14
- import { STYLES, themeVariables } from './styles.js';
13
+ import { DEFAULT_LOOP_DELAY, LEGACY_CHANGES_MODE, toChrome, toDelay, toLegend, toLocale, toMode, toPalette, toScope, toTheme, } from './prefs.js';
14
+ import { bindRegion, uiContext, ViewerRoot } from './root.js';
15
+ import { ALL_TOPICS } from './session.js';
16
+ import { ChangeList } from './ui/change-list.js';
17
+ import { Detail } from './ui/detail.js';
18
+ import { Filters } from './ui/filters.js';
15
19
  import { Header } from './ui/header.js';
16
20
  import { HelpDialog, Menu } from './ui/popovers.js';
21
+ import { Search } from './ui/search.js';
17
22
  import { Sidebar } from './ui/sidebar.js';
18
23
  import { Stage } from './ui/stage.js';
19
- /** Below this width the sidebar becomes a bottom sheet and the mode control shows icons. */
24
+ /** Below this width the sidebar becomes a bottom sheet. */
20
25
  export const COMPACT_WIDTH = 760;
21
- /** Below this width the header drops the diffstat pills and version tags. */
26
+ /** Below this width the title drops the version tags. */
22
27
  const NARROW_WIDTH = 1100;
23
28
  const OBSERVED = [
24
29
  'mode',
30
+ 'scope',
25
31
  'theme',
26
32
  'palette',
27
33
  'locale',
@@ -35,6 +41,7 @@ const OBSERVED = [
35
41
  ];
36
42
  const UPGRADED = [
37
43
  'mode',
44
+ 'scope',
38
45
  'theme',
39
46
  'palette',
40
47
  'locale',
@@ -68,30 +75,6 @@ function deepFreeze(value) {
68
75
  }
69
76
  return value;
70
77
  }
71
- function media(query) {
72
- return typeof window !== 'undefined' && typeof window.matchMedia === 'function'
73
- ? window.matchMedia(query)
74
- : null;
75
- }
76
- /**
77
- * Resolve once the browser had a chance to paint the loading step. Hidden tabs never run
78
- * animation frames, so a short timer resolves it there (loading must never stall).
79
- */
80
- function nextPaint() {
81
- return new Promise((resolve) => {
82
- let done = false;
83
- const finish = () => {
84
- if (done)
85
- return;
86
- done = true;
87
- resolve();
88
- };
89
- if (typeof requestAnimationFrame === 'function') {
90
- requestAnimationFrame(() => setTimeout(finish, 0));
91
- }
92
- setTimeout(finish, 50);
93
- });
94
- }
95
78
  export class KgdiffViewer extends HTMLElement {
96
79
  static get observedAttributes() {
97
80
  return OBSERVED;
@@ -99,9 +82,9 @@ export class KgdiffViewer extends HTMLElement {
99
82
  /** @internal */
100
83
  controller;
101
84
  #shadow;
85
+ #root;
102
86
  #ui = null;
103
87
  #currentPayload = null;
104
- #renderFailed = false;
105
88
  #reflecting = false;
106
89
  #compact = false;
107
90
  #cleanup = [];
@@ -112,33 +95,14 @@ export class KgdiffViewer extends HTMLElement {
112
95
  constructor() {
113
96
  super();
114
97
  this.#shadow = this.attachShadow({ mode: 'open' });
115
- const host = {
116
- ready: (stats) => this.#emit('kgdiff-ready', { stats }),
117
- select: (hunk, node) => {
118
- this.#emit('kgdiff-select', { hunk, node });
119
- this.#writeHash();
120
- },
121
- mode: (mode) => {
122
- this.#emit('kgdiff-mode', { mode });
98
+ this.#root = new ViewerRoot(this, this.#shadow, this.#actions(), (type) => {
99
+ if (type === 'kgdiff-select' || type === 'kgdiff-mode')
123
100
  this.#writeHash();
124
- },
125
- review: (hunk, reviewed, progress) => this.#emit('kgdiff-review', { hunk, reviewed, progress }),
126
- error: (error) => this.#emit('kgdiff-error', { error }),
127
- announce: (text) => this.#announce(text),
128
- replayEnd: (loop) => this.#emit('kgdiff-replay-end', { loop }),
129
- };
130
- this.controller = new ViewerController(host, {
131
- now: () => (typeof performance !== 'undefined' ? performance.now() : Date.now()),
132
- requestFrame: (cb) => typeof requestAnimationFrame === 'function' ? requestAnimationFrame(cb) : 0,
133
- cancelFrame: (id) => {
134
- if (typeof cancelAnimationFrame === 'function')
135
- cancelAnimationFrame(id);
136
- },
137
- yieldToPaint: nextPaint,
138
- storage: defaultStorage(),
139
101
  });
102
+ this.controller = this.#root.controller;
140
103
  this.controller.locale = toLocale(this.getAttribute('locale')) ?? detectLocale();
141
- this.controller.subscribe((topics) => this.#render(topics));
104
+ // The layout renders first, then the regions in the order they bound to the root.
105
+ this.#root.attach({ update: (topics) => this.#update(topics) });
142
106
  }
143
107
  // ─── Lifecycle ────────────────────────────────────────────────────────────
144
108
  connectedCallback() {
@@ -153,6 +117,8 @@ export class KgdiffViewer extends HTMLElement {
153
117
  }
154
118
  }
155
119
  }
120
+ // Provide the session (the regions bind to it) and follow the system's preferences.
121
+ this.#cleanup.push(this.#root.connect());
156
122
  if (!this.#ui)
157
123
  this.#build();
158
124
  connected.push(this);
@@ -171,33 +137,17 @@ export class KgdiffViewer extends HTMLElement {
171
137
  canvas.addEventListener('pointerdown', focusCanvas);
172
138
  this.#cleanup.push(() => canvas.removeEventListener('pointerdown', focusCanvas));
173
139
  }
174
- this.#watchMedia();
175
140
  this.#watchSize();
176
141
  const onKey = (e) => this.#onKeyDown(e);
177
142
  document.addEventListener('keydown', onKey);
178
143
  this.#cleanup.push(() => document.removeEventListener('keydown', onKey));
179
- const onStorage = (e) => this.controller.syncReview(e.key);
180
- window.addEventListener('storage', onStorage);
181
- this.#cleanup.push(() => window.removeEventListener('storage', onStorage));
182
144
  const onHash = () => this.#readHash();
183
145
  window.addEventListener('hashchange', onHash);
184
146
  this.#cleanup.push(() => window.removeEventListener('hashchange', onHash));
185
147
  this.controller.setChrome(() => ui.stage.chromeLayout());
186
- document.fonts?.ready?.then(() => this.#ui?.header.layout()).catch(() => undefined);
148
+ document.fonts?.ready?.then(() => this.#ui?.stage.layout()).catch(() => undefined);
187
149
  this.#readHash();
188
- this.#render(new Set([
189
- 'status',
190
- 'data',
191
- 'mode',
192
- 'theme',
193
- 'locale',
194
- 'filters',
195
- 'review',
196
- 'selection',
197
- 'focus',
198
- 'swipe',
199
- 'replay',
200
- ]));
150
+ this.#root.render(ALL_TOPICS);
201
151
  }
202
152
  disconnectedCallback() {
203
153
  const i = connected.indexOf(this);
@@ -215,6 +165,7 @@ export class KgdiffViewer extends HTMLElement {
215
165
  return;
216
166
  switch (name) {
217
167
  case 'mode':
168
+ case 'scope':
218
169
  case 'theme':
219
170
  case 'palette':
220
171
  case 'locale':
@@ -245,19 +196,35 @@ export class KgdiffViewer extends HTMLElement {
245
196
  }
246
197
  /**
247
198
  * Apply a preference from an attribute or a property. Valid values are explicit (a report's
248
- * `view` does not override them); invalid ones fall back to the default (`overlay`, `auto`,
249
- * `default`, the browser's language). Properties reflect the normalized value.
199
+ * `view` does not override them); invalid ones fall back to the default (`overlay`, `all`,
200
+ * `auto`, `default`, the browser's language). Properties reflect the normalized value; the
201
+ * legacy mode `changes` reflects as `overlay` + scope `changes`.
250
202
  */
251
203
  #applyPreference(name, raw, reflect) {
252
204
  const c = this.controller;
205
+ // `mode="changes"` is rewritten to the attribute pair it stands for.
206
+ const legacy = name === 'mode' && raw === LEGACY_CHANGES_MODE;
253
207
  let value;
254
208
  switch (name) {
255
209
  case 'mode': {
210
+ if (legacy) {
211
+ c.explicit.add('scope');
212
+ c.setView('overlay', 'changes');
213
+ value = 'overlay';
214
+ break;
215
+ }
256
216
  const v = toMode(raw);
257
217
  c.setMode(v ?? 'overlay');
258
218
  value = v;
259
219
  break;
260
220
  }
221
+ case 'scope': {
222
+ const v = toScope(raw);
223
+ c.setScope(v ?? 'all');
224
+ // A locked scope stays `changes`: the attribute says what is shown.
225
+ value = v === null ? null : c.scope;
226
+ break;
227
+ }
261
228
  case 'theme': {
262
229
  const v = toTheme(raw);
263
230
  c.setThemePreference(v ?? 'auto');
@@ -283,8 +250,10 @@ export class KgdiffViewer extends HTMLElement {
283
250
  c.explicit.delete(name);
284
251
  else
285
252
  c.explicit.add(name);
286
- if (reflect)
253
+ if (reflect || legacy)
287
254
  this.#reflect(name, value);
255
+ if (legacy)
256
+ this.#reflect('scope', c.scope);
288
257
  }
289
258
  // ─── Properties ───────────────────────────────────────────────────────────
290
259
  get mode() {
@@ -293,6 +262,12 @@ export class KgdiffViewer extends HTMLElement {
293
262
  set mode(value) {
294
263
  this.#applyPreference('mode', value, true);
295
264
  }
265
+ get scope() {
266
+ return this.controller.scope;
267
+ }
268
+ set scope(value) {
269
+ this.#applyPreference('scope', value, true);
270
+ }
296
271
  get theme() {
297
272
  return this.controller.themePreference;
298
273
  }
@@ -411,9 +386,6 @@ export class KgdiffViewer extends HTMLElement {
411
386
  this.controller.fail(error);
412
387
  }
413
388
  // ─── Internals ────────────────────────────────────────────────────────────
414
- #emit(type, detail) {
415
- this.dispatchEvent(new CustomEvent(type, { detail, bubbles: true, composed: true }));
416
- }
417
389
  #reflect(name, value) {
418
390
  if (this.getAttribute(name) === value)
419
391
  return;
@@ -428,16 +400,6 @@ export class KgdiffViewer extends HTMLElement {
428
400
  this.#reflecting = false;
429
401
  }
430
402
  }
431
- #announce(text) {
432
- const live = this.#ui?.live;
433
- if (!live)
434
- return;
435
- live.textContent = '';
436
- // A fresh text node in a later task makes screen readers announce repeats too.
437
- setTimeout(() => {
438
- live.textContent = text;
439
- }, 30);
440
- }
441
403
  get #sidebarOpen() {
442
404
  return this.getAttribute('sidebar') !== 'closed';
443
405
  }
@@ -476,16 +438,12 @@ export class KgdiffViewer extends HTMLElement {
476
438
  #applyHold() {
477
439
  this.controller.hold(this.#pointerOver && this.loop && this.pauseOnHover);
478
440
  }
479
- #build() {
480
- const style = h('style', { text: STYLES });
481
- const vars = h('style');
482
- const ctx = {
483
- controller: this.controller,
441
+ /** What the layout does for the regions: preferences reflect as attributes, panels open. */
442
+ #actions() {
443
+ return {
484
444
  tr: () => translator(this.controller.locale),
485
- root: this.#shadow,
486
- setMode: (mode) => {
487
- this.controller.setMode(mode);
488
- },
445
+ setMode: (mode) => this.controller.setMode(mode),
446
+ toggleScope: () => this.controller.toggleScope(),
489
447
  setThemePreference: (pref) => {
490
448
  this.theme = pref;
491
449
  },
@@ -501,15 +459,26 @@ export class KgdiffViewer extends HTMLElement {
501
459
  openHelp: () => this.#ui?.help.show(),
502
460
  focusSearch: () => this.#focusSearch(),
503
461
  };
504
- const header = new Header(ctx);
505
- const stage = new Stage(ctx);
506
- const sidebar = new Sidebar(ctx);
507
- const menu = new Menu(ctx);
508
- const help = new HelpDialog(ctx);
509
- const live = h('div', { class: 'sr-only', 'aria-live': 'polite', 'aria-atomic': 'true' });
510
- const root = h('div', { class: 'root' }, header.el, h('div', { class: 'body' }, stage.el, sidebar.el), menu.el, help.el, live);
511
- this.#shadow.append(style, vars, root);
512
- this.#ui = { root, vars, header, stage, sidebar, menu, help, live };
462
+ }
463
+ #build() {
464
+ const root = h('div', { class: 'root' });
465
+ this.#shadow.append(root);
466
+ // Each region binds to the root on its own (context protocol); the layout only places them.
467
+ const header = bindRegion(root, (ui) => new Header(ui));
468
+ const list = bindRegion(root, (ui) => new ChangeList(ui));
469
+ const search = bindRegion(root, (ui) => new Search(ui));
470
+ const filters = bindRegion(root, (ui) => new Filters(ui));
471
+ const detail = bindRegion(root, (ui) => new Detail(ui));
472
+ const stage = bindRegion(root, (ui) => new Stage(ui));
473
+ const ui = uiContext(this.#root, this.#shadow);
474
+ const menu = new Menu(ui);
475
+ const help = new HelpDialog(ui);
476
+ const sidebar = new Sidebar(ui.tr, list, search, filters, detail);
477
+ // The title and the actions float over the canvas; the menu drops from the actions.
478
+ header.attachMenu(menu.el);
479
+ stage.el.appendChild(header.el);
480
+ root.append(h('div', { class: 'body' }, stage.el, sidebar.el), help.el, this.#root.live);
481
+ this.#ui = { root, header, stage, list, sidebar, menu, help };
513
482
  // Close the menu on outside clicks.
514
483
  root.addEventListener('pointerdown', (e) => {
515
484
  if (!menu.open)
@@ -529,38 +498,21 @@ export class KgdiffViewer extends HTMLElement {
529
498
  this.#applySidebar();
530
499
  this.#applyChrome();
531
500
  }
532
- /** Render, never throwing: a failure shows the error state with safe appearance defaults. */
533
- #render(topics) {
534
- try {
535
- this.#renderTopics(topics);
536
- this.#renderFailed = false;
537
- }
538
- catch (error) {
539
- console.error('[kgdiff] render failed:', error);
540
- if (this.#renderFailed)
541
- return;
542
- this.#renderFailed = true;
543
- const c = this.controller;
544
- c.explicit.clear();
545
- c.setThemePreference('auto');
546
- c.setPalette('default');
547
- c.fail(error instanceof Error ? error : new Error(String(error)));
548
- }
549
- }
550
- #renderTopics(topics) {
501
+ /** The layout's part of a render (the root renders the regions after it). */
502
+ #update(topics) {
551
503
  const ui = this.#ui;
552
504
  const c = this.controller;
553
- if (topics.has('mode'))
505
+ if (topics.has('mode')) {
554
506
  this.#reflect('mode', c.mode);
507
+ this.#reflect('scope', c.scope);
508
+ }
555
509
  if (topics.has('theme')) {
556
510
  this.#reflect('theme', c.themePreference === 'auto' && !this.hasAttribute('theme') ? null : c.themePreference);
557
511
  }
558
512
  if (!ui)
559
513
  return;
560
- if (topics.has('theme') || topics.has('status')) {
561
- ui.vars.textContent = `:host { ${themeVariables(c.theme)} }`;
514
+ if (topics.has('theme') || topics.has('status'))
562
515
  ui.root.dataset.theme = c.themeName;
563
- }
564
516
  if (topics.has('locale') || topics.has('status')) {
565
517
  ui.root.setAttribute('lang', c.locale);
566
518
  if (ui.menu.open)
@@ -570,11 +522,11 @@ export class KgdiffViewer extends HTMLElement {
570
522
  }
571
523
  if (topics.has('theme') && ui.menu.open)
572
524
  ui.menu.render();
573
- ui.header.update(topics);
574
525
  ui.sidebar.update(topics);
575
- ui.stage.update(topics);
576
- if (topics.has('mode') || topics.has('status'))
526
+ if (topics.has('mode') || topics.has('status')) {
577
527
  ui.root.dataset.mode = c.mode;
528
+ ui.root.dataset.scope = c.scope;
529
+ }
578
530
  }
579
531
  #toggleSidebar(open) {
580
532
  const next = open ?? !this.#sidebarOpen;
@@ -595,22 +547,7 @@ export class KgdiffViewer extends HTMLElement {
595
547
  #focusSearch() {
596
548
  if (!this.#sidebarOpen)
597
549
  this.#toggleSidebar(true);
598
- this.#ui?.sidebar.focusSearch();
599
- }
600
- #watchMedia() {
601
- const dark = media('(prefers-color-scheme: light)');
602
- const motion = media('(prefers-reduced-motion: reduce)');
603
- const apply = () => {
604
- this.controller.setSystemDark(!(dark?.matches ?? false));
605
- this.controller.setReducedMotion(motion?.matches ?? false);
606
- };
607
- apply();
608
- for (const q of [dark, motion]) {
609
- if (!q)
610
- continue;
611
- q.addEventListener?.('change', apply);
612
- this.#cleanup.push(() => q.removeEventListener?.('change', apply));
613
- }
550
+ this.#root.focus('search');
614
551
  }
615
552
  #watchSize() {
616
553
  if (typeof ResizeObserver !== 'function')
@@ -626,8 +563,8 @@ export class KgdiffViewer extends HTMLElement {
626
563
  this.#compact = compact;
627
564
  ui.root.dataset.compact = String(compact);
628
565
  }
629
- ui.header.layout();
630
- ui.sidebar.renderWindow();
566
+ ui.stage.layout();
567
+ ui.list.renderWindow();
631
568
  if (compact)
632
569
  ui.sidebar.syncSheet();
633
570
  this.controller.layoutChanged();
@@ -664,83 +601,7 @@ export class KgdiffViewer extends HTMLElement {
664
601
  }
665
602
  return;
666
603
  }
667
- const target = path[0] ?? null;
668
- if (isTypingTarget(target))
669
- return;
670
- const c = this.controller;
671
- const action = keyAction(e, c.mode);
672
- if (!action)
673
- return;
674
- // Enter / Space on a focused control activate that control.
675
- const el = target;
676
- if ((e.key === 'Enter' || e.key === ' ') &&
677
- el?.closest?.('button, a, summary, [role="radio"], [role="menuitemradio"]')) {
678
- return;
679
- }
680
- if (c.status !== 'ready' && !['help', 'theme', 'sidebar', 'escape'].includes(action.type))
681
- return;
682
- e.preventDefault();
683
- switch (action.type) {
684
- case 'mode':
685
- c.setMode(action.mode);
686
- break;
687
- case 'next':
688
- c.next();
689
- break;
690
- case 'prev':
691
- c.prev();
692
- break;
693
- case 'first':
694
- c.first();
695
- break;
696
- case 'last':
697
- c.last();
698
- break;
699
- case 'fly':
700
- c.flyToSelection();
701
- break;
702
- case 'escape':
703
- if (!ui.sidebar.escape())
704
- c.clearSelection();
705
- break;
706
- case 'play-pause':
707
- c.togglePlay();
708
- break;
709
- case 'step':
710
- c.stepReplay(action.direction);
711
- break;
712
- case 'divider':
713
- c.setSplit(c.split + action.delta);
714
- break;
715
- case 'fit':
716
- void c.fit();
717
- break;
718
- case 'zoom':
719
- c.zoom(action.direction);
720
- break;
721
- case 'search':
722
- this.#focusSearch();
723
- break;
724
- case 'review':
725
- c.toggleReviewed();
726
- break;
727
- case 'sidebar':
728
- this.#toggleSidebar();
729
- break;
730
- case 'theme': {
731
- const i = THEME_PREFERENCES.indexOf(c.themePreference);
732
- this.theme = THEME_PREFERENCES[(i + 1) % THEME_PREFERENCES.length];
733
- break;
734
- }
735
- case 'help':
736
- ui.help.show();
737
- break;
738
- case 'expand':
739
- c.expandNearest();
740
- break;
741
- default:
742
- action;
743
- }
604
+ this.#root.handleKey(e);
744
605
  }
745
606
  // ─── Deep links ───────────────────────────────────────────────────────────
746
607
  #readHash() {
@@ -752,10 +613,14 @@ export class KgdiffViewer extends HTMLElement {
752
613
  this.#lastHash = location.hash;
753
614
  if (!state)
754
615
  return;
755
- if (state.mode) {
756
- // A deep link outranks the large-graph default and a report's preferred mode.
757
- this.controller.explicit.add('mode');
758
- this.controller.setMode(state.mode);
616
+ if (state.mode || state.scope) {
617
+ // A deep link outranks the large-graph default and a report's preferred view.
618
+ const c = this.controller;
619
+ if (state.mode)
620
+ c.explicit.add('mode');
621
+ if (state.scope)
622
+ c.explicit.add('scope');
623
+ c.setView(state.mode ?? c.mode, state.scope ?? c.scope);
759
624
  }
760
625
  if (state.hunk)
761
626
  this.controller.selectHunkById(state.hunk, { fly: true });
@@ -765,7 +630,11 @@ export class KgdiffViewer extends HTMLElement {
765
630
  return;
766
631
  const c = this.controller;
767
632
  const hunk = c.selectedHunk >= 0 ? c.scene?.hunks[c.selectedHunk]?.id : undefined;
768
- const hash = formatHash({ ...(hunk !== undefined ? { hunk } : {}), mode: c.mode });
633
+ const hash = formatHash({
634
+ ...(hunk !== undefined ? { hunk } : {}),
635
+ mode: c.mode,
636
+ scope: c.scope,
637
+ });
769
638
  if (hash === location.hash)
770
639
  return;
771
640
  this.#lastHash = hash;
@@ -1 +1 @@
1
- {"version":3,"file":"element.js","sourceRoot":"","sources":["../src/element.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"element.js","sourceRoot":"","sources":["../src/element.ts"],"names":[],"mappings":"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"}