@nkzw/codiff-core 1.14.0 → 1.15.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.
package/dist/style.css CHANGED
@@ -5350,6 +5350,17 @@ html[data-codiff-platform="darwin"] .workspace-top-bar {
5350
5350
  overflow: hidden;
5351
5351
  }
5352
5352
 
5353
+ @supports (text-box: trim-both cap alphabetic) {
5354
+ .review-top-bar-repository-head, .review-top-bar-repository-tail {
5355
+ text-box: trim-both cap alphabetic;
5356
+ padding-block: .5em;
5357
+ }
5358
+
5359
+ .review-top-bar-source-label {
5360
+ text-box: trim-both cap alphabetic;
5361
+ }
5362
+ }
5363
+
5353
5364
  .review-top-bar-branch {
5354
5365
  color: var(--muted);
5355
5366
  corner-shape: squircle;
@@ -5435,7 +5446,7 @@ a.review-top-bar-repository:focus-visible, a.review-top-bar-source:focus-visible
5435
5446
  color: var(--muted);
5436
5447
  corner-shape: squircle;
5437
5448
  cursor: pointer;
5438
- font: 600 11px/1 var(--font-sans);
5449
+ font: 600 11px/1.35 var(--font-sans);
5439
5450
  white-space: nowrap;
5440
5451
  background: none;
5441
5452
  border: 0;
@@ -7268,17 +7279,57 @@ html[data-codiff-platform="darwin"] .sidebar {
7268
7279
  box-shadow: inset 0 -1px 0 var(--file-border);
7269
7280
  color: var(--text);
7270
7281
  font: 13px/1.35 var(--font-sans);
7271
- grid-template-columns: minmax(0, 1fr);
7282
+ height: var(--codiff-file-header-height, 54px);
7283
+ grid-template-columns: minmax(0, 1fr) auto;
7272
7284
  grid-auto-columns: max-content;
7273
7285
  grid-auto-flow: column;
7274
7286
  align-items: center;
7275
7287
  gap: 10px;
7276
7288
  min-width: 0;
7277
- height: 54px;
7278
7289
  padding: 9px 10px;
7279
7290
  display: grid;
7280
7291
  }
7281
7292
 
7293
+ .codiff-file-details {
7294
+ align-items: center;
7295
+ gap: 10px;
7296
+ min-width: 0;
7297
+ display: flex;
7298
+ }
7299
+
7300
+ .codiff-edit-revert-button {
7301
+ width: 64px;
7302
+ }
7303
+
7304
+ .compact-file-headers .codiff-file-header:has(.codiff-file-details) {
7305
+ grid-template-rows: minmax(0, 1fr) 30px;
7306
+ grid-template-columns: minmax(0, 1fr);
7307
+ grid-auto-flow: row;
7308
+ gap: 6px;
7309
+ }
7310
+
7311
+ .compact-file-headers .codiff-file-details {
7312
+ scrollbar-width: none;
7313
+ justify-content: safe flex-end;
7314
+ gap: 6px;
7315
+ margin: -4px;
7316
+ padding: 4px;
7317
+ overflow-x: auto;
7318
+ }
7319
+
7320
+ .compact-file-headers .codiff-file-details .codiff-button, .compact-file-headers .codiff-file-details .codiff-viewed-button, .compact-file-headers .codiff-file-details .codiff-load-button {
7321
+ padding-inline: 8px;
7322
+ }
7323
+
7324
+ .compact-file-headers .codiff-copy-path-button, .compact-file-headers .codiff-open-file-button {
7325
+ width: 24px;
7326
+ height: 20px;
7327
+ }
7328
+
7329
+ .compact-file-headers .codiff-file-details > .codiff-line-count, .compact-file-headers .codiff-file-details > .codiff-section-badge, .compact-file-headers .codiff-file-details > .codiff-generated-badge {
7330
+ flex: none;
7331
+ }
7332
+
7282
7333
  .codiff-walkthrough-header-item {
7283
7334
  box-shadow: none !important;
7284
7335
  background: none !important;
@@ -7309,7 +7360,7 @@ html[data-codiff-platform="darwin"] .sidebar {
7309
7360
  color: var(--muted);
7310
7361
  }
7311
7362
 
7312
- .codiff-header-toggle, .codiff-source-description-collapse-button, .codiff-file-comment-button, .codiff-markdown-button, .codiff-button, .codiff-viewed-button, .codiff-copy-path-button {
7363
+ .codiff-header-toggle, .codiff-source-description-collapse-button, .codiff-file-comment-button, .codiff-markdown-button, .codiff-button, .codiff-viewed-button, .codiff-copy-path-button, .codiff-open-file-button {
7313
7364
  -webkit-app-region: no-drag;
7314
7365
  color: var(--text);
7315
7366
  cursor: pointer;
@@ -7321,7 +7372,7 @@ html[data-codiff-platform="darwin"] .sidebar {
7321
7372
  display: inline-flex;
7322
7373
  }
7323
7374
 
7324
- .codiff-copy-path-button {
7375
+ .codiff-copy-path-button, .codiff-open-file-button {
7325
7376
  color: var(--copy-icon);
7326
7377
  corner-shape: squircle;
7327
7378
  opacity: 0;
@@ -7330,14 +7381,14 @@ html[data-codiff-platform="darwin"] .sidebar {
7330
7381
  width: 30px;
7331
7382
  height: 30px;
7332
7383
  padding: 0;
7333
- transition: background .12s, color .12s, opacity .12s;
7384
+ transition: background .16s, box-shadow .25s, color .12s, opacity .12s, transform .25s cubic-bezier(.34, 1.56, .64, 1);
7334
7385
  }
7335
7386
 
7336
- .codiff-file-header:hover .codiff-copy-path-button, .codiff-copy-path-button:focus-visible, .codiff-copy-path-button.copied {
7387
+ .codiff-file-header:hover .codiff-copy-path-button, .codiff-file-header:hover .codiff-open-file-button, .codiff-copy-path-button:focus-visible, .codiff-open-file-button:focus-visible, .codiff-copy-path-button.copied {
7337
7388
  opacity: 1;
7338
7389
  }
7339
7390
 
7340
- .codiff-copy-path-button:hover {
7391
+ .codiff-copy-path-button:hover, .codiff-open-file-button:hover:not(:disabled) {
7341
7392
  color: var(--copy-icon);
7342
7393
  background: #7f7f7f1c;
7343
7394
  }
@@ -7346,6 +7397,14 @@ html[data-codiff-platform="darwin"] .sidebar {
7346
7397
  color: var(--viewed);
7347
7398
  }
7348
7399
 
7400
+ .codiff-open-file-button:disabled {
7401
+ cursor: default;
7402
+ }
7403
+
7404
+ .codiff-open-file-button:disabled svg {
7405
+ opacity: .4;
7406
+ }
7407
+
7349
7408
  .codiff-button.plan-download-button {
7350
7409
  width: 30px;
7351
7410
  height: 30px;
@@ -7364,13 +7423,12 @@ html[data-codiff-platform="darwin"] .sidebar {
7364
7423
 
7365
7424
  .codiff-header-toggle {
7366
7425
  text-align: left;
7367
- grid-template-columns: 30px minmax(0, 1fr) auto;
7426
+ grid-template-columns: 30px minmax(0, 1fr);
7368
7427
  justify-content: stretch;
7369
7428
  gap: 10px;
7370
7429
  min-width: 0;
7371
7430
  padding: 0;
7372
7431
  display: grid;
7373
- overflow: hidden;
7374
7432
  }
7375
7433
 
7376
7434
  .codiff-header-toggle:hover {
@@ -7393,7 +7451,7 @@ html[data-codiff-platform="darwin"] .sidebar {
7393
7451
  display: inline-flex;
7394
7452
  }
7395
7453
 
7396
- .codiff-header-toggle:hover:not(:has(.codiff-copy-path-button:hover)) .codiff-chevron-box, .codiff-source-description-collapse-button:hover .codiff-chevron-box, .codiff-file-comment-button:hover, .codiff-markdown-button:hover, .codiff-button:hover:not(:disabled), .codiff-viewed-button:hover {
7454
+ .codiff-header-toggle:hover:not(:has(.codiff-copy-path-button:hover, .codiff-open-file-button:hover)) .codiff-chevron-box, .codiff-source-description-collapse-button:hover .codiff-chevron-box, .codiff-file-comment-button:hover, .codiff-markdown-button:hover, .codiff-button:hover:is(:not(:disabled), [data-autosaving]), .codiff-viewed-button:hover {
7397
7455
  background: #7f7f7f1c;
7398
7456
  }
7399
7457
 
@@ -7409,7 +7467,6 @@ html[data-codiff-platform="darwin"] .sidebar {
7409
7467
 
7410
7468
  .codiff-file-heading {
7411
7469
  min-width: 0;
7412
- overflow: hidden;
7413
7470
  }
7414
7471
 
7415
7472
  .codiff-file-path-row {
@@ -7436,6 +7493,23 @@ html[data-codiff-platform="darwin"] .sidebar {
7436
7493
  transition: color .16s;
7437
7494
  }
7438
7495
 
7496
+ .codiff-file-path:has(.codiff-file-name) {
7497
+ display: flex;
7498
+ }
7499
+
7500
+ .codiff-file-directory {
7501
+ text-overflow: ellipsis;
7502
+ min-width: 0;
7503
+ overflow: hidden;
7504
+ }
7505
+
7506
+ .codiff-file-name {
7507
+ text-overflow: ellipsis;
7508
+ flex: none;
7509
+ max-width: 100%;
7510
+ overflow: hidden;
7511
+ }
7512
+
7439
7513
  .codiff-file-old-path {
7440
7514
  color: var(--muted);
7441
7515
  font: 11px/1.35 var(--font-mono);
@@ -7485,19 +7559,11 @@ html[data-codiff-platform="darwin"] .sidebar {
7485
7559
  color: var(--diff-deletion);
7486
7560
  }
7487
7561
 
7488
- .codiff-status-badge.added, .codiff-status-badge.untracked, .codiff-section-badge.unstaged {
7562
+ .codiff-section-badge.unstaged {
7489
7563
  color: #1f7a44;
7490
7564
  }
7491
7565
 
7492
- .codiff-status-badge.deleted {
7493
- color: #b8312f;
7494
- }
7495
-
7496
- .codiff-status-badge.conflicted {
7497
- color: var(--danger);
7498
- }
7499
-
7500
- .codiff-status-badge.renamed, .codiff-section-badge.staged {
7566
+ .codiff-section-badge.staged {
7501
7567
  color: #8f5d18;
7502
7568
  }
7503
7569
 
@@ -7529,13 +7595,16 @@ html[data-codiff-platform="darwin"] .sidebar {
7529
7595
  opacity: .72;
7530
7596
  }
7531
7597
 
7598
+ .codiff-button, .codiff-copy-path-button, .codiff-open-file-button {
7599
+ transform: scale(1);
7600
+ box-shadow: inset 0 0 0 1px #fff0, 0 10px 32px -24px #0000, 0 8px 20px -16px #0000;
7601
+ }
7602
+
7532
7603
  .codiff-button {
7533
7604
  white-space: nowrap;
7534
7605
  flex: none;
7535
7606
  gap: 7px;
7536
7607
  transition: background .16s, box-shadow .25s, transform .25s cubic-bezier(.34, 1.56, .64, 1);
7537
- transform: scale(1);
7538
- box-shadow: inset 0 0 0 1px #fff0, 0 10px 32px -24px #0000, 0 8px 20px -16px #0000;
7539
7608
  }
7540
7609
 
7541
7610
  .codiff-button-size-default {
@@ -7586,18 +7655,21 @@ html[data-codiff-platform="darwin"] .sidebar {
7586
7655
  text-decoration: underline;
7587
7656
  }
7588
7657
 
7589
- .codiff-button:hover:not(:disabled) {
7658
+ .codiff-button:hover:is(:not(:disabled), [data-autosaving]), .codiff-copy-path-button:hover:not(:disabled), .codiff-open-file-button:hover:not(:disabled) {
7590
7659
  transform: scale(1.05);
7591
7660
  box-shadow: 0 10px 32px -24px #000000eb, 0 8px 20px -16px #000000d1;
7592
7661
  }
7593
7662
 
7594
- .codiff-button:active:not(:disabled):not(:has(.review-submit-toggle:active)) {
7663
+ .codiff-button:active:not(:disabled):not(:has(.review-submit-toggle:active)), .codiff-copy-path-button:active:not(:disabled), .codiff-open-file-button:active:not(:disabled) {
7595
7664
  transform: scale(.95);
7596
7665
  }
7597
7666
 
7598
7667
  .codiff-button:disabled {
7599
- color: var(--muted);
7600
7668
  cursor: default;
7669
+ }
7670
+
7671
+ .codiff-button:disabled:not([data-autosaving]) {
7672
+ color: var(--muted);
7601
7673
  opacity: .55;
7602
7674
  }
7603
7675
 
@@ -8834,3 +8906,10 @@ diffs-container .review-comment-thread {
8834
8906
  display: none;
8835
8907
  }
8836
8908
  }
8909
+
8910
+ .codiff-code-edit-error {
8911
+ color: var(--danger);
8912
+ background: var(--app-bg);
8913
+ padding: 8px 16px;
8914
+ font-size: 12px;
8915
+ }
package/dist/types.d.ts CHANGED
@@ -245,6 +245,19 @@ export type SaveMarkdownDocumentResult = {
245
245
  document: CodiffMarkdownDocument;
246
246
  status: 'saved';
247
247
  };
248
+ export type RepositoryFileDocument = {
249
+ content: string;
250
+ path: string;
251
+ root: string;
252
+ version: string;
253
+ };
254
+ export type SaveRepositoryFileRequest = Omit<RepositoryFileDocument, 'version'> & {
255
+ baseVersion: string;
256
+ };
257
+ export type SaveRepositoryFileResult = {
258
+ document: RepositoryFileDocument;
259
+ status: 'conflict' | 'saved';
260
+ };
248
261
  export type PlanCommentAuthor = {
249
262
  avatarUrl?: string;
250
263
  email?: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nkzw/codiff-core",
3
- "version": "1.14.0",
3
+ "version": "1.15.0",
4
4
  "description": "A fast diff viewer.",
5
5
  "license": "MIT",
6
6
  "author": {
@@ -54,12 +54,12 @@
54
54
  "@nkzw/mdx-editor": "^1.0.3",
55
55
  "@nkzw/use-relative-time": "^1.2.3",
56
56
  "@phosphor-icons/react": "^2.1.10",
57
- "@pierre/diffs": "1.4.2",
57
+ "@pierre/diffs": "1.5.1",
58
58
  "@pierre/trees": "1.0.0-beta.6",
59
59
  "@radix-ui/react-slot": "^1.3.3",
60
60
  "class-variance-authority": "^0.7.1",
61
61
  "ghostty-web": "^0.4.0",
62
- "lucide-react": "^1.46.0",
62
+ "lucide-react": "^1.48.0",
63
63
  "valibot": "^1.5.0"
64
64
  },
65
65
  "peerDependencies": {