diffs-pane 0.1.0 → 0.2.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.
@@ -5,8 +5,8 @@
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
6
  <meta name="color-scheme" content="dark light" />
7
7
  <title>diffs-pane</title>
8
- <script type="module" crossorigin src="./assets/index-DQmd9stL.js"></script>
9
- <link rel="stylesheet" crossorigin href="./assets/index-yTQdnwMD.css">
8
+ <script type="module" crossorigin src="./assets/index-CzSq0MRa.js"></script>
9
+ <link rel="stylesheet" crossorigin href="./assets/index-BQk-ERmu.css">
10
10
  </head>
11
11
  <body>
12
12
  <div id="root"></div>
package/dist/vcs/exec.js CHANGED
@@ -30,10 +30,24 @@ export function execFile(command, args, options) {
30
30
  let settled = false;
31
31
  let timedOut = false;
32
32
  let aborted = false;
33
- const timer = setTimeout(() => {
33
+ const timeoutCheckMs = Math.max(1, Math.min(1_000, Math.floor(timeoutMs / 4)));
34
+ let activeElapsedMs = 0;
35
+ let lastTimeoutCheck = Date.now();
36
+ const timeoutTimer = setInterval(() => {
37
+ const now = Date.now();
38
+ const elapsed = now - lastTimeoutCheck;
39
+ lastTimeoutCheck = now;
40
+ if (elapsed < 0 || elapsed > timeoutCheckMs * 2) {
41
+ // The event loop was suspended. Give the child a new active-time window.
42
+ activeElapsedMs = 0;
43
+ return;
44
+ }
45
+ activeElapsedMs += elapsed;
46
+ if (activeElapsedMs < timeoutMs)
47
+ return;
34
48
  timedOut = true;
35
49
  child.kill('SIGKILL');
36
- }, timeoutMs);
50
+ }, timeoutCheckMs);
37
51
  const onAbort = () => {
38
52
  aborted = true;
39
53
  child.kill('SIGKILL');
@@ -43,7 +57,7 @@ export function execFile(command, args, options) {
43
57
  if (settled)
44
58
  return;
45
59
  settled = true;
46
- clearTimeout(timer);
60
+ clearInterval(timeoutTimer);
47
61
  signal?.removeEventListener('abort', onAbort);
48
62
  if (error)
49
63
  reject(error);
@@ -1 +1 @@
1
- {"version":3,"file":"exec.js","sourceRoot":"","sources":["../../src/vcs/exec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"exec.js","sourceRoot":"","sources":["../../src/vcs/exec.ts"],"names":[],"mappings":"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"}
package/dist/vcs/git.js CHANGED
@@ -12,6 +12,8 @@ export class GitBackend {
12
12
  root;
13
13
  stateDirOverride;
14
14
  kind = 'git';
15
+ snapshotEnvironment;
16
+ workTreeSnapshots = new WeakMap();
15
17
  constructor(root, stateDirOverride) {
16
18
  this.root = root;
17
19
  this.stateDirOverride = stateDirOverride;
@@ -39,12 +41,14 @@ export class GitBackend {
39
41
  * private diffs-pane state directory and read repository objects as alternates.
40
42
  */
41
43
  async snapshotEnv(signal) {
44
+ if (this.snapshotEnvironment)
45
+ return this.snapshotEnvironment;
42
46
  const commonDirResult = await this.git(['rev-parse', '--git-common-dir'], { signal });
43
47
  const commonDir = commonDirResult.stdout.trim();
44
48
  const repositoryObjects = join(isAbsolute(commonDir) ? commonDir : resolve(this.root, commonDir), 'objects');
45
49
  const snapshotObjects = gitObjectsPath(this.root, this.stateDirOverride);
46
50
  mkdirSync(snapshotObjects, { recursive: true, mode: 0o700 });
47
- return {
51
+ this.snapshotEnvironment = {
48
52
  GIT_OBJECT_DIRECTORY: snapshotObjects,
49
53
  GIT_ALTERNATE_OBJECT_DIRECTORIES: [
50
54
  repositoryObjects,
@@ -53,6 +57,7 @@ export class GitBackend {
53
57
  .filter((path) => path !== undefined && path !== '')
54
58
  .join(delimiter),
55
59
  };
60
+ return this.snapshotEnvironment;
56
61
  }
57
62
  /** Snapshot tracked and untracked-but-unignored files through a temporary index. */
58
63
  async snapshotWorkTree(signal, objectEnv) {
@@ -76,6 +81,18 @@ export class GitBackend {
76
81
  await rm(dir, { recursive: true, force: true });
77
82
  }
78
83
  }
84
+ /** Reuse one immutable current tree when multiple filters refresh together. */
85
+ snapshotWorkTreeForCompute(options, objectEnv) {
86
+ const token = options.snapshotKey;
87
+ if (!token)
88
+ return this.snapshotWorkTree(options.signal, objectEnv);
89
+ let snapshot = this.workTreeSnapshots.get(token);
90
+ if (!snapshot) {
91
+ snapshot = this.snapshotWorkTree(options.signal, objectEnv);
92
+ this.workTreeSnapshots.set(token, snapshot);
93
+ }
94
+ return snapshot;
95
+ }
79
96
  /** Tree of the current index, computed from a copy so nothing is mutated. */
80
97
  async indexTree(signal, objectEnv) {
81
98
  const gitDirResult = await this.git(['rev-parse', '--absolute-git-dir'], { signal });
@@ -165,7 +182,7 @@ export class GitBackend {
165
182
  }
166
183
  }
167
184
  objectEnv ??= await this.snapshotEnv(signal);
168
- const currentTree = await this.snapshotWorkTree(signal, objectEnv);
185
+ const currentTree = await this.snapshotWorkTreeForCompute(options, objectEnv);
169
186
  const diff = await this.git(['diff-tree', '-r', '-p', '--find-renames', '--no-color', baseTree, currentTree], { signal, env: objectEnv });
170
187
  return diff.stdout;
171
188
  }
@@ -1 +1 @@
1
- {"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/vcs/git.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/vcs/git.ts"],"names":[],"mappings":"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"}
package/dist/vcs/jj.js CHANGED
@@ -1,34 +1,58 @@
1
+ import { setTimeout as delay } from 'node:timers/promises';
1
2
  import { ExecError, execFile } from './exec.js';
2
3
  import { VcsError } from './types.js';
4
+ const STALE_RETRY_COUNT = 4;
5
+ const STALE_RETRY_BASE_DELAY_MS = 100;
6
+ const DEFAULT_BRANCH_BASE = 'coalesce(parents(latest(heads(::@ & bookmarks() & ~::trunk()))), fork_point(trunk() | @))';
3
7
  export class JjBackend {
4
8
  root;
5
9
  kind = 'jj';
10
+ commandQueue = Promise.resolve();
6
11
  constructor(root) {
7
12
  this.root = root;
8
13
  }
9
14
  metadataDirs() {
10
15
  return ['.jj'];
11
16
  }
12
- async jj(args, signal) {
13
- try {
14
- const result = await execFile('jj', ['--color', 'never', '--no-pager', ...args], {
15
- cwd: this.root,
16
- signal,
17
- });
18
- return result.stdout;
19
- }
20
- catch (error) {
21
- if (error instanceof ExecError && !error.aborted) {
22
- const stderr = error.result?.stderr ?? '';
23
- if (/stale/i.test(stderr) && /working copy/i.test(stderr)) {
24
- // Never run mutating recovery commands automatically.
25
- throw new VcsError('The jj working copy is stale. Run `jj workspace update-stale` manually, then the diff will refresh.');
26
- }
27
- if (/fork_point|trunk\(\)/.test(stderr) && /(unknown|not.*resolve|No such)/i.test(stderr)) {
28
- throw new VcsError(`jj could not resolve the branch base revision: ${stderr.trim()}`);
17
+ jj(args, signal) {
18
+ const command = this.commandQueue.then(() => this.runJj(args, signal));
19
+ // A failed command must not reject the queue tail.
20
+ this.commandQueue = command.then(() => undefined, () => undefined);
21
+ return command;
22
+ }
23
+ async runJj(args, signal) {
24
+ for (let staleRetries = 0;; staleRetries++) {
25
+ if (signal?.aborted)
26
+ throw new ExecError('jj aborted', null, true);
27
+ try {
28
+ // Let jj finish updating .jj/working_copy. Killing it after the
29
+ // snapshot can leave the workspace stale.
30
+ const result = await execFile('jj', ['--color', 'never', '--no-pager', ...args], {
31
+ cwd: this.root,
32
+ });
33
+ if (signal?.aborted)
34
+ throw new ExecError('jj aborted', result, true);
35
+ return result.stdout;
36
+ }
37
+ catch (error) {
38
+ if (error instanceof ExecError && !error.aborted) {
39
+ const stderr = error.result?.stderr ?? '';
40
+ if (/stale/i.test(stderr) && /working copy/i.test(stderr)) {
41
+ // A concurrent jj command may finish its working-copy update
42
+ // during this retry window.
43
+ if (staleRetries < STALE_RETRY_COUNT) {
44
+ await waitUnlessAborted(STALE_RETRY_BASE_DELAY_MS * (staleRetries + 1), signal);
45
+ continue;
46
+ }
47
+ throw new VcsError('The jj working copy is stale. Run `jj workspace update-stale` to update it.');
48
+ }
49
+ if (/fork_point|trunk\(\)/.test(stderr) &&
50
+ /(unknown|not.*resolve|No such)/i.test(stderr)) {
51
+ throw new VcsError(`jj could not resolve the branch base revision: ${stderr.trim()}`);
52
+ }
29
53
  }
54
+ throw error;
30
55
  }
31
- throw error;
32
56
  }
33
57
  }
34
58
  /**
@@ -50,7 +74,7 @@ export class JjBackend {
50
74
  // jj has no staging area: show the current working-copy change (@).
51
75
  return this.jj(['diff', '--git'], signal);
52
76
  case 'branch': {
53
- const from = options.base ?? 'fork_point(trunk() | @)';
77
+ const from = options.base ?? DEFAULT_BRANCH_BASE;
54
78
  return this.jj(['diff', '--git', '--from', from, '--to', '@'], signal);
55
79
  }
56
80
  case 'turn': {
@@ -61,4 +85,14 @@ export class JjBackend {
61
85
  }
62
86
  }
63
87
  }
88
+ async function waitUnlessAborted(ms, signal) {
89
+ try {
90
+ await delay(ms, undefined, { signal });
91
+ }
92
+ catch (error) {
93
+ if (signal?.aborted)
94
+ throw new ExecError('jj aborted', null, true);
95
+ throw error;
96
+ }
97
+ }
64
98
  //# sourceMappingURL=jj.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"jj.js","sourceRoot":"","sources":["../../src/vcs/jj.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"jj.js","sourceRoot":"","sources":["../../src/vcs/jj.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/vcs/types.ts"],"names":[],"mappings":"AAgBA,mEAAmE;AACnE,MAAM,OAAO,QAAS,SAAQ,KAAK;IACjC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;IACzB,CAAC;CACF"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/vcs/types.ts"],"names":[],"mappings":"AAkBA,mEAAmE;AACnE,MAAM,OAAO,QAAS,SAAQ,KAAK;IACjC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;IACzB,CAAC;CACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "diffs-pane",
3
- "version": "0.1.0",
3
+ "version": "0.2.0",
4
4
  "description": "Standalone live diff viewer and review pane for Git and jj working trees. Outputs authenticated localhost URLs.",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",
@@ -1 +0,0 @@
1
- @font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./geist-cyrillic-ext-wght-normal-DjL33-gN.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./geist-cyrillic-wght-normal-BEAKL7Jp.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./geist-vietnamese-wght-normal-6IgcOCM7.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./geist-latin-ext-wght-normal-DC-KSUi6.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./geist-latin-wght-normal-BgDaEnEv.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Commit Mono;src:url(./CommitMono-ytizKI8U.woff2) format("woff2-variations");font-style:normal;font-weight:200 700;font-display:swap}:root{color-scheme:dark light;--bg: #0a0a0a;--bg-raised: #171717;--text: #a3a3a3;--text-dim: #878787;--surface: color-mix(in srgb, var(--text) 7%, var(--bg-raised));--border: color-mix(in srgb, var(--text) 22%, var(--bg-raised));--accent: #009fff;--danger: #ff2e3f;--warning: #ffca00;--status-add: #07c480;--status-delete: #ff2e3f;--status-modified: #009fff;--selection: color-mix(in srgb, var(--text) 20%, var(--bg-raised));--hover: color-mix(in srgb, var(--text) 14%, var(--bg-raised));--stats-add: #4ade80;--stats-delete: #f87171;--font-interface: "Geist Variable", "Geist", system-ui, sans-serif;--font-code: "Commit Mono", ui-monospace, monospace;font-family:var(--font-interface);font-weight:400;font-feature-settings:"liga" 1,"calt" 1}@media(prefers-color-scheme:light){:root{--bg: #ffffff;--bg-raised: #f5f5f5;--text: #525252;--text-dim: #626262;--surface: color-mix(in srgb, var(--text) 7%, var(--bg-raised));--border: color-mix(in srgb, var(--text) 22%, var(--bg-raised));--accent: #009fff;--danger: #d52c36;--warning: #d5a910;--status-add: #18a46c;--status-delete: #d52c36;--status-modified: #009fff;--selection: color-mix(in srgb, var(--text) 20%, var(--bg-raised));--hover: color-mix(in srgb, var(--text) 14%, var(--bg-raised));--stats-add: #16a34a;--stats-delete: #dc2626}}*{box-sizing:border-box}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}html,body,#root{margin:0;height:100%;background:var(--bg);color:var(--text)}.app{display:flex;flex-direction:column;height:100%}.toolbar{display:flex;align-items:center;gap:10px;padding:6px 10px;border-bottom:1px solid var(--border);background:var(--bg-raised);flex:none}.toolbar-title{display:flex;align-items:center;gap:8px;min-width:0}.repo-name{overflow:hidden;font-size:13px;font-weight:500;text-overflow:ellipsis;white-space:nowrap}.vcs-badge{font-size:11px;padding:1px 6px;border:1px solid var(--border);border-radius:10px;color:var(--text-dim)}.source-select{position:relative;display:inline-flex;align-items:center;min-width:112px}.source-select select{width:100%;appearance:none;border:1px solid var(--border);border-radius:7px;background:var(--surface);color:var(--text);font:inherit;font-size:12px;line-height:18px;padding:3px 28px 3px 8px;cursor:pointer}.source-select>svg{position:absolute;right:8px;width:15px;height:15px;color:var(--text-dim);pointer-events:none}.source-select select:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.tab{appearance:none;border:none;background:transparent;color:var(--text-dim);font-size:12px;padding:3px 8px;border-radius:6px;cursor:pointer}.tab:hover:not(:disabled){color:var(--text)}.tab.active{background:var(--surface);color:var(--text);box-shadow:0 0 0 1px var(--border)}.tab:disabled{opacity:.4;cursor:not-allowed}.toolbar-right{margin-left:auto;display:flex;align-items:center;gap:12px}.display-options{position:relative}.display-options-menu{position:absolute;z-index:20;top:calc(100% + 8px);right:0;width:300px;padding:12px;border:1px solid var(--border);border-radius:12px;background:var(--surface);box-shadow:0 12px 32px #00000038}.display-layout{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding-bottom:12px;border-bottom:1px solid var(--border)}.display-layout button{appearance:none;display:inline-flex;align-items:center;justify-content:center;gap:7px;height:36px;border:1px solid var(--border);border-radius:8px;background:var(--bg-raised);color:var(--text-dim);font:inherit;font-size:13px;cursor:pointer}.display-layout button>svg{width:15px;height:15px}.display-layout button:hover:not(:disabled),.display-layout button.active{color:var(--text)}.display-layout button:disabled{cursor:not-allowed;opacity:.4}.display-layout button.active{border-color:color-mix(in srgb,var(--accent) 55%,var(--border));background:color-mix(in srgb,var(--accent) 10%,var(--bg))}.display-option-row{appearance:none;display:flex;align-items:center;justify-content:space-between;width:100%;padding:14px 2px 2px;border:none;background:transparent;color:var(--text);font:inherit;font-size:13px;cursor:pointer}.switch{position:relative;width:32px;height:18px;border-radius:9px;background:var(--text-dim);transition:background .15s ease}.switch>span{position:absolute;top:3px;left:3px;width:12px;height:12px;border-radius:50%;background:#fff;transition:transform .15s ease}.display-option-row[aria-checked=true] .switch{background:var(--accent)}.display-option-row[aria-checked=true] .switch>span{transform:translate(14px)}.display-layout button:focus-visible,.display-option-row:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.connection{font-size:12px;color:var(--warning)}.connection.ended{color:var(--danger)}.content{position:relative;display:flex;flex:1;min-height:0}.sidebar{width:280px;flex:none;display:flex;flex-direction:column;border-right:1px solid var(--border);background:var(--bg-raised);min-height:0;contain:strict}.sidebar-backdrop{position:absolute;z-index:14;inset:0;appearance:none;border:0;background:#00000040;cursor:default}.sidebar-tabs{display:flex;align-items:center;gap:4px;padding:4px 8px}.sidebar-tabs .tab{display:inline-flex;align-items:center;gap:5px}.sidebar-tabs .tab>svg{width:15px;height:15px}.badge-count{display:inline-flex;align-items:center;justify-content:center;min-width:16px;height:16px;padding:0 4px;border-radius:8px;font-size:10px;font-variant-numeric:tabular-nums;background:color-mix(in srgb,currentColor 18%,transparent)}.sidebar-body{display:flex;flex-direction:column;flex:1;min-height:0}.sidebar-body[hidden]{display:none}.sidebar-search-button{margin-left:auto}.icon-button{appearance:none;border:1px solid transparent;background:transparent;color:var(--text-dim);line-height:1;width:28px;height:28px;padding:4px;border-radius:6px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.icon-button>svg{width:15px;height:15px}.icon-button:hover{color:var(--text);background:var(--surface)}.icon-button[aria-pressed=true],.sidebar-toggle[aria-expanded=true]{color:var(--accent);border-color:var(--border);background:var(--surface)}.icon-button:focus-visible,.collapse-button:focus-visible,.comment-action-button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.tree-host{flex:1;min-height:120px;overflow:auto}.file-tree{--trees-density-override: .8;--trees-padding-inline-override: 8px;--trees-font-family-override: var(--font-interface);--trees-font-size-override: 13px;--trees-font-weight-regular-override: 400;--trees-font-weight-semibold-override: 500;--trees-accent-override: var(--accent);--trees-bg-override: var(--bg-raised);--trees-bg-muted-override: var(--hover);--trees-fg-override: var(--text-dim);--trees-fg-muted-override: var(--text-dim);--trees-input-bg-override: var(--surface);--trees-border-color-override: var(--border);--trees-selected-bg-override: var(--selection);--trees-selected-fg-override: var(--text);--trees-status-added-override: var(--status-add);--trees-status-untracked-override: var(--status-add);--trees-status-modified-override: var(--status-modified);--trees-status-deleted-override: var(--status-delete);height:100%}.sidebar-empty{padding:24px 16px;color:var(--text-dim);font-size:12px;text-align:center;display:flex;flex-direction:column;gap:8px;align-items:center}.sidebar-empty p{margin:0;line-height:1.5}.sidebar-empty code{font-family:var(--font-code);font-size:12px}.hint-plus{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:4px;background:var(--accent);color:#fff;font-weight:700}.comments-list{flex:1;overflow:auto;padding:2px 8px 8px}.comments-section-path{margin:8px 0 2px;font-size:11px;font-weight:600;font-family:var(--font-interface);color:var(--text-dim);word-break:break-all}.comment-link{display:block;width:100%;text-align:left;background:none;border:none;padding:4px 0;cursor:pointer;color:var(--text)}.comment-link:hover{background:color-mix(in srgb,var(--accent) 12%,transparent)}.comment-line{display:inline-block;font-family:var(--font-code);font-size:11px;color:var(--text-dim);margin-right:6px}.comment-line.additions{color:var(--status-add)}.comment-line.deletions{color:var(--status-delete)}.comment-link .badge{display:inline-block;font-size:10px;color:var(--warning);border:1px solid var(--warning);border-radius:8px;padding:0 5px;margin-right:6px}.comment-link .comment-preview{display:block;font-size:12px;color:var(--text-dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.diff-stats{flex:none;border-top:1px solid var(--border);color:var(--text-dim)}.diff-stats-trigger{appearance:none;display:flex;align-items:center;gap:8px;width:100%;padding:8px 10px;border:0;background:transparent;color:inherit;font:inherit;font-size:13px;text-align:left;cursor:pointer}.diff-stats-trigger:hover{color:var(--text)}.diff-stats-trigger>svg{width:15px;height:15px;opacity:.55}.diff-stats-details{padding:0 10px 8px 36px}.diff-stat-row{display:flex;align-items:center;justify-content:space-between;min-height:28px;border-top:1px solid color-mix(in srgb,var(--border) 75%,transparent);font-size:12px}.diff-stat-row strong{padding-left:1ch;color:var(--text);font-weight:600;font-variant-numeric:tabular-nums}.diff-stat-row strong.additions{color:var(--stats-add)}.diff-stat-row strong.deletions{color:var(--stats-delete)}.diff-pane{flex:1;min-width:0;display:flex;flex-direction:column}.code-view{--diffs-font-family: var(--font-code);--diffs-header-font-family: var(--font-interface);--diffs-font-features: "liga" 1, "calt" 1;--diffs-font-size: 13px;--diffs-line-height: 20px;flex:1;overflow:auto;padding:0 8px;font-weight:400}.code-view>div{margin-top:4px!important}.banner{margin:12px;padding:10px 14px;border-radius:8px;border:1px solid var(--border);font-size:13px}.banner.error{border-color:color-mix(in srgb,var(--danger) 50%,transparent);background:color-mix(in srgb,var(--danger) 10%,transparent)}.fullscreen-message{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:8px;color:var(--text-dim)}.fullscreen-message.error p{color:var(--danger)}.file-header{display:flex;align-items:center;gap:6px;min-width:0;min-height:40px;padding-inline:8px;flex:1;font-size:13px;font-weight:400}.collapse-button{appearance:none;border:none;background:transparent;color:var(--text-dim);width:20px;height:20px;margin-left:-4px;border-radius:5px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;flex:none}.collapse-button:hover{color:var(--text);background:color-mix(in srgb,currentColor 12%,transparent)}.chevron{width:15px;height:15px;transition:transform .15s ease}.chevron.collapsed{transform:rotate(-90deg)}.file-status{flex:none;width:16px;height:16px;line-height:16px;text-align:center;border-radius:4px;font-size:10px;font-weight:700;color:#fff}.file-status.added{background:var(--status-add)}.file-status.deleted{background:var(--status-delete)}.file-status.modified{background:var(--status-modified)}.file-status.renamed{background:#007aff}.file-path{font-family:var(--font-interface);font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-stats{margin-left:auto;display:flex;gap:5px;font-size:11px;flex:none}.file-stats .add{color:var(--status-add)}.file-stats .del{color:var(--status-delete)}.file-stats.binary{color:var(--text-dim)}.comment-card{margin:4px 8px;border:1px solid var(--border);border-radius:8px;background:var(--surface);font-size:13px;max-width:720px}.comment-card.draft{border-color:color-mix(in srgb,var(--accent) 60%,transparent)}.comment-row+.comment-row{border-top:1px solid var(--border)}.comment-row,.comment-card.draft{padding:8px 10px}.comment-meta{display:flex;align-items:center;gap:8px;color:var(--text-dim);font-size:11px;margin-bottom:4px}.comment-side{font-family:var(--font-code);font-weight:700}.comment-actions{margin-left:auto;display:flex;gap:6px}.comment-action-button{appearance:none;display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;padding:3px;border:none;border-radius:5px;background:none;color:var(--text-dim);cursor:pointer}.comment-action-button>svg{width:15px;height:15px}.comment-action-button:hover{color:var(--accent);background:color-mix(in srgb,currentColor 10%,transparent)}.comment-action-button.danger:hover{color:var(--danger)}.comment-body{white-space:pre-wrap;line-height:1.45}.comment-editor textarea{width:100%;resize:vertical;background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:6px 8px;font:inherit;font-size:13px}.comment-editor-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:6px}.comment-editor-actions button{border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:6px;padding:4px 12px;font-size:12px;cursor:pointer}.comment-editor-actions button.primary{background:var(--accent);border-color:var(--accent);color:#fff}.comment-editor-actions button:disabled{opacity:.5;cursor:not-allowed}.comment-error{color:var(--danger);font-size:12px;margin-top:4px}@media(max-width:767px){.toolbar{gap:6px;padding:5px 6px}.toolbar-title{max-width:34vw}.toolbar-title .vcs-badge{display:none}.source-select{min-width:92px}.toolbar-right{gap:4px}.display-options-menu{width:min(280px,calc(100vw - 12px))}.content.narrow .sidebar{position:absolute;z-index:15;inset:0 auto 0 0;width:min(280px,86vw);box-shadow:12px 0 32px #0000003d}.code-view{padding-inline:4px}}@media(max-width:430px){.toolbar-title{max-width:24vw}.repo-name{font-size:12px}.source-select{min-width:82px}}