@pierre/diffs 1.3.6 → 1.4.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 (254) hide show
  1. package/dist/components/CodeView.d.ts +113 -68
  2. package/dist/components/CodeView.d.ts.map +1 -1
  3. package/dist/components/CodeView.js +153 -58
  4. package/dist/components/CodeView.js.map +1 -1
  5. package/dist/components/File.d.ts +75 -15
  6. package/dist/components/File.d.ts.map +1 -1
  7. package/dist/components/File.js +223 -62
  8. package/dist/components/File.js.map +1 -1
  9. package/dist/components/FileDiff.d.ts +97 -21
  10. package/dist/components/FileDiff.d.ts.map +1 -1
  11. package/dist/components/FileDiff.js +400 -100
  12. package/dist/components/FileDiff.js.map +1 -1
  13. package/dist/components/UnresolvedFile.d.ts +2 -2
  14. package/dist/components/UnresolvedFile.d.ts.map +1 -1
  15. package/dist/components/UnresolvedFile.js +2 -2
  16. package/dist/components/UnresolvedFile.js.map +1 -1
  17. package/dist/components/VirtualizedFile.d.ts +16 -7
  18. package/dist/components/VirtualizedFile.d.ts.map +1 -1
  19. package/dist/components/VirtualizedFile.js +140 -51
  20. package/dist/components/VirtualizedFile.js.map +1 -1
  21. package/dist/components/VirtualizedFileDiff.d.ts +14 -8
  22. package/dist/components/VirtualizedFileDiff.d.ts.map +1 -1
  23. package/dist/components/VirtualizedFileDiff.js +183 -93
  24. package/dist/components/VirtualizedFileDiff.js.map +1 -1
  25. package/dist/components/VirtulizerDevelopment.d.ts +1 -1
  26. package/dist/components/VirtulizerDevelopment.d.ts.map +1 -1
  27. package/dist/edit/index.d.ts +7 -4
  28. package/dist/edit/index.js +5 -1
  29. package/dist/editor/EditStateManager.d.ts +56 -0
  30. package/dist/editor/EditStateManager.d.ts.map +1 -0
  31. package/dist/editor/EditStateManager.js +135 -0
  32. package/dist/editor/EditStateManager.js.map +1 -0
  33. package/dist/editor/cloneRetainedDiffSessionSnapshot.d.ts +7 -0
  34. package/dist/editor/cloneRetainedDiffSessionSnapshot.d.ts.map +1 -0
  35. package/dist/editor/cloneRetainedDiffSessionSnapshot.js +16 -0
  36. package/dist/editor/cloneRetainedDiffSessionSnapshot.js.map +1 -0
  37. package/dist/editor/editPrediction.d.ts +76 -0
  38. package/dist/editor/editPrediction.d.ts.map +1 -0
  39. package/dist/editor/editPrediction.js +365 -0
  40. package/dist/editor/editPrediction.js.map +1 -0
  41. package/dist/editor/editStack.d.ts +19 -40
  42. package/dist/editor/editStack.d.ts.map +1 -1
  43. package/dist/editor/editStack.js +67 -4
  44. package/dist/editor/editStack.js.map +1 -1
  45. package/dist/editor/editor.d.ts +118 -29
  46. package/dist/editor/editor.d.ts.map +1 -1
  47. package/dist/editor/editor.js +1103 -383
  48. package/dist/editor/editor.js.map +1 -1
  49. package/dist/editor/editor2.js +1 -1
  50. package/dist/editor/languages.d.ts +3 -3
  51. package/dist/editor/languages.d.ts.map +1 -1
  52. package/dist/editor/languages.js.map +1 -1
  53. package/dist/editor/lineAnnotations.d.ts +3 -3
  54. package/dist/editor/lineAnnotations.d.ts.map +1 -1
  55. package/dist/editor/lineAnnotations.js +16 -7
  56. package/dist/editor/lineAnnotations.js.map +1 -1
  57. package/dist/editor/marker.d.ts +2 -2
  58. package/dist/editor/marker.d.ts.map +1 -1
  59. package/dist/editor/marker.js.map +1 -1
  60. package/dist/editor/matchBrackets.d.ts +2 -2
  61. package/dist/editor/matchBrackets.d.ts.map +1 -1
  62. package/dist/editor/matchBrackets.js.map +1 -1
  63. package/dist/editor/pieceTable.d.ts +1 -1
  64. package/dist/editor/pieceTable.js.map +1 -1
  65. package/dist/editor/searchPanel.d.ts +2 -2
  66. package/dist/editor/searchPanel.js +1 -1
  67. package/dist/editor/searchPanel.js.map +1 -1
  68. package/dist/editor/selection.d.ts +32 -23
  69. package/dist/editor/selection.d.ts.map +1 -1
  70. package/dist/editor/selection.js +3 -3
  71. package/dist/editor/selection.js.map +1 -1
  72. package/dist/editor/selectionAction.d.ts +3 -3
  73. package/dist/editor/selectionAction.d.ts.map +1 -1
  74. package/dist/editor/selectionAction.js.map +1 -1
  75. package/dist/editor/textDocument.d.ts +11 -8
  76. package/dist/editor/textDocument.d.ts.map +1 -1
  77. package/dist/editor/textDocument.js +28 -5
  78. package/dist/editor/textDocument.js.map +1 -1
  79. package/dist/editor/textDocumentChangeTransaction.d.ts +15 -0
  80. package/dist/editor/textDocumentChangeTransaction.d.ts.map +1 -0
  81. package/dist/editor/textDocumentChangeTransaction.js +12 -0
  82. package/dist/editor/textDocumentChangeTransaction.js.map +1 -0
  83. package/dist/editor/textMeasure.d.ts +5 -0
  84. package/dist/editor/textMeasure.d.ts.map +1 -1
  85. package/dist/editor/textMeasure.js +10 -0
  86. package/dist/editor/textMeasure.js.map +1 -1
  87. package/dist/editor/tokenizer.d.ts +1 -1
  88. package/dist/editor/tokenizer.js.map +1 -1
  89. package/dist/editor/types.d.ts +267 -0
  90. package/dist/editor/types.d.ts.map +1 -0
  91. package/dist/editor/types.js +0 -0
  92. package/dist/editor/utils.d.ts +2 -1
  93. package/dist/editor/utils.d.ts.map +1 -1
  94. package/dist/editor/utils.js +4 -1
  95. package/dist/editor/utils.js.map +1 -1
  96. package/dist/index.d.ts +8 -6
  97. package/dist/index.js +9 -8
  98. package/dist/managers/InteractionManager.d.ts.map +1 -1
  99. package/dist/managers/InteractionManager.js +7 -0
  100. package/dist/managers/InteractionManager.js.map +1 -1
  101. package/dist/react/CodeView.d.ts +36 -25
  102. package/dist/react/CodeView.d.ts.map +1 -1
  103. package/dist/react/CodeView.js +15 -14
  104. package/dist/react/CodeView.js.map +1 -1
  105. package/dist/react/EditContext.d.ts +8 -11
  106. package/dist/react/EditContext.d.ts.map +1 -1
  107. package/dist/react/EditContext.js +2 -9
  108. package/dist/react/EditContext.js.map +1 -1
  109. package/dist/react/File.d.ts +10 -6
  110. package/dist/react/File.d.ts.map +1 -1
  111. package/dist/react/File.js +8 -4
  112. package/dist/react/File.js.map +1 -1
  113. package/dist/react/FileDiff.d.ts +10 -5
  114. package/dist/react/FileDiff.d.ts.map +1 -1
  115. package/dist/react/FileDiff.js +8 -4
  116. package/dist/react/FileDiff.js.map +1 -1
  117. package/dist/react/MultiFileDiff.d.ts +8 -5
  118. package/dist/react/MultiFileDiff.d.ts.map +1 -1
  119. package/dist/react/MultiFileDiff.js +8 -12
  120. package/dist/react/MultiFileDiff.js.map +1 -1
  121. package/dist/react/PatchDiff.d.ts +7 -4
  122. package/dist/react/PatchDiff.d.ts.map +1 -1
  123. package/dist/react/PatchDiff.js +8 -4
  124. package/dist/react/PatchDiff.js.map +1 -1
  125. package/dist/react/UnresolvedFile.d.ts +3 -3
  126. package/dist/react/UnresolvedFile.d.ts.map +1 -1
  127. package/dist/react/UnresolvedFile.js.map +1 -1
  128. package/dist/react/index.d.ts +8 -5
  129. package/dist/react/types.d.ts +46 -9
  130. package/dist/react/types.d.ts.map +1 -1
  131. package/dist/react/utils/renderDiffChildren.d.ts +14 -12
  132. package/dist/react/utils/renderDiffChildren.d.ts.map +1 -1
  133. package/dist/react/utils/renderDiffChildren.js +2 -2
  134. package/dist/react/utils/renderDiffChildren.js.map +1 -1
  135. package/dist/react/utils/renderFileChildren.d.ts +14 -12
  136. package/dist/react/utils/renderFileChildren.d.ts.map +1 -1
  137. package/dist/react/utils/renderFileChildren.js +2 -2
  138. package/dist/react/utils/renderFileChildren.js.map +1 -1
  139. package/dist/react/utils/useFileDiffInstance.d.ts +22 -10
  140. package/dist/react/utils/useFileDiffInstance.d.ts.map +1 -1
  141. package/dist/react/utils/useFileDiffInstance.js +112 -22
  142. package/dist/react/utils/useFileDiffInstance.js.map +1 -1
  143. package/dist/react/utils/useFileInstance.d.ts +15 -9
  144. package/dist/react/utils/useFileInstance.d.ts.map +1 -1
  145. package/dist/react/utils/useFileInstance.js +84 -25
  146. package/dist/react/utils/useFileInstance.js.map +1 -1
  147. package/dist/renderers/DiffHunksRenderer.d.ts +30 -15
  148. package/dist/renderers/DiffHunksRenderer.d.ts.map +1 -1
  149. package/dist/renderers/DiffHunksRenderer.js +172 -108
  150. package/dist/renderers/DiffHunksRenderer.js.map +1 -1
  151. package/dist/renderers/FileRenderer.d.ts +27 -11
  152. package/dist/renderers/FileRenderer.d.ts.map +1 -1
  153. package/dist/renderers/FileRenderer.js +138 -64
  154. package/dist/renderers/FileRenderer.js.map +1 -1
  155. package/dist/renderers/UnresolvedFileHunksRenderer.d.ts +2 -2
  156. package/dist/renderers/UnresolvedFileHunksRenderer.d.ts.map +1 -1
  157. package/dist/renderers/UnresolvedFileHunksRenderer.js +2 -2
  158. package/dist/renderers/UnresolvedFileHunksRenderer.js.map +1 -1
  159. package/dist/shiki-stream/tokenizer.d.ts.map +1 -1
  160. package/dist/shiki-stream/tokenizer.js +2 -1
  161. package/dist/shiki-stream/tokenizer.js.map +1 -1
  162. package/dist/ssr/index.d.ts +2 -2
  163. package/dist/ssr/preloadDiffs.d.ts +21 -21
  164. package/dist/ssr/preloadDiffs.d.ts.map +1 -1
  165. package/dist/ssr/preloadDiffs.js +1 -1
  166. package/dist/ssr/preloadDiffs.js.map +1 -1
  167. package/dist/ssr/preloadFile.d.ts +6 -6
  168. package/dist/ssr/preloadFile.d.ts.map +1 -1
  169. package/dist/ssr/preloadFile.js.map +1 -1
  170. package/dist/ssr/preloadPatchFile.d.ts +4 -4
  171. package/dist/ssr/preloadPatchFile.d.ts.map +1 -1
  172. package/dist/ssr/preloadPatchFile.js.map +1 -1
  173. package/dist/style.js +1 -1
  174. package/dist/types.d.ts +13 -263
  175. package/dist/types.d.ts.map +1 -1
  176. package/dist/utils/appendItems.d.ts +5 -0
  177. package/dist/utils/appendItems.d.ts.map +1 -0
  178. package/dist/utils/appendItems.js +8 -0
  179. package/dist/utils/appendItems.js.map +1 -0
  180. package/dist/utils/areDiffTargetsEqual.js +1 -1
  181. package/dist/utils/areDiffTargetsEqual.js.map +1 -1
  182. package/dist/utils/areFileTargetsEqual.d.ts +7 -0
  183. package/dist/utils/areFileTargetsEqual.d.ts.map +1 -0
  184. package/dist/utils/areFileTargetsEqual.js +8 -0
  185. package/dist/utils/areFileTargetsEqual.js.map +1 -0
  186. package/dist/utils/areManagedSnapshotsEqual.d.ts +1 -1
  187. package/dist/utils/areManagedSnapshotsEqual.d.ts.map +1 -1
  188. package/dist/utils/areManagedSnapshotsEqual.js.map +1 -1
  189. package/dist/utils/areOptionsEqual.d.ts +3 -3
  190. package/dist/utils/areOptionsEqual.d.ts.map +1 -1
  191. package/dist/utils/areOptionsEqual.js.map +1 -1
  192. package/dist/utils/cloneFileDiffMetadata.d.ts +3 -2
  193. package/dist/utils/cloneFileDiffMetadata.d.ts.map +1 -1
  194. package/dist/utils/cloneFileDiffMetadata.js +8 -5
  195. package/dist/utils/cloneFileDiffMetadata.js.map +1 -1
  196. package/dist/utils/composeCacheKey.d.ts +6 -0
  197. package/dist/utils/composeCacheKey.d.ts.map +1 -0
  198. package/dist/utils/composeCacheKey.js +10 -0
  199. package/dist/utils/composeCacheKey.js.map +1 -0
  200. package/dist/utils/editSessionAnnotations.d.ts +69 -0
  201. package/dist/utils/editSessionAnnotations.d.ts.map +1 -0
  202. package/dist/utils/editSessionAnnotations.js +64 -0
  203. package/dist/utils/editSessionAnnotations.js.map +1 -0
  204. package/dist/utils/editSessionHunks.d.ts +5 -3
  205. package/dist/utils/editSessionHunks.d.ts.map +1 -1
  206. package/dist/utils/editSessionHunks.js +7 -5
  207. package/dist/utils/editSessionHunks.js.map +1 -1
  208. package/dist/utils/getDiffHunksRendererOptions.d.ts +1 -1
  209. package/dist/utils/getDiffHunksRendererOptions.d.ts.map +1 -1
  210. package/dist/utils/getDiffHunksRendererOptions.js.map +1 -1
  211. package/dist/utils/getFileRendererOptions.d.ts +1 -1
  212. package/dist/utils/getFileRendererOptions.d.ts.map +1 -1
  213. package/dist/utils/getFileRendererOptions.js.map +1 -1
  214. package/dist/utils/hydratePartialDiff.d.ts.map +1 -1
  215. package/dist/utils/hydratePartialDiff.js +2 -1
  216. package/dist/utils/hydratePartialDiff.js.map +1 -1
  217. package/dist/utils/lineAnnotationIdentity.d.ts +16 -0
  218. package/dist/utils/lineAnnotationIdentity.d.ts.map +1 -0
  219. package/dist/utils/lineAnnotationIdentity.js +17 -0
  220. package/dist/utils/lineAnnotationIdentity.js.map +1 -0
  221. package/dist/utils/parseDiffFromFile.d.ts +2 -2
  222. package/dist/utils/parseDiffFromFile.d.ts.map +1 -1
  223. package/dist/utils/parseDiffFromFile.js +6 -6
  224. package/dist/utils/parseDiffFromFile.js.map +1 -1
  225. package/dist/utils/parsePatchFiles.d.ts +6 -3
  226. package/dist/utils/parsePatchFiles.d.ts.map +1 -1
  227. package/dist/utils/parsePatchFiles.js +34 -9
  228. package/dist/utils/parsePatchFiles.js.map +1 -1
  229. package/dist/utils/renderDiffWithHighlighter.d.ts.map +1 -1
  230. package/dist/utils/renderDiffWithHighlighter.js +6 -5
  231. package/dist/utils/renderDiffWithHighlighter.js.map +1 -1
  232. package/dist/utils/renderFileWithHighlighter.d.ts.map +1 -1
  233. package/dist/utils/renderFileWithHighlighter.js +7 -4
  234. package/dist/utils/renderFileWithHighlighter.js.map +1 -1
  235. package/dist/utils/trimPatchContext.d.ts.map +1 -1
  236. package/dist/utils/trimPatchContext.js +3 -2
  237. package/dist/utils/trimPatchContext.js.map +1 -1
  238. package/dist/utils/updateDiffHunks.js +1 -1
  239. package/dist/utils/virtualDiffLayout.js +1 -1
  240. package/dist/worker/WorkerPoolManager.d.ts +4 -3
  241. package/dist/worker/WorkerPoolManager.d.ts.map +1 -1
  242. package/dist/worker/WorkerPoolManager.js +33 -4
  243. package/dist/worker/WorkerPoolManager.js.map +1 -1
  244. package/dist/worker/types.d.ts +5 -0
  245. package/dist/worker/types.d.ts.map +1 -1
  246. package/dist/worker/worker-portable.js +14 -6
  247. package/dist/worker/worker-portable.js.map +1 -1
  248. package/dist/worker/worker.js +14 -6
  249. package/dist/worker/worker.js.map +1 -1
  250. package/package.json +9 -1
  251. package/dist/editor/stateStorage.d.ts +0 -15
  252. package/dist/editor/stateStorage.d.ts.map +0 -1
  253. package/dist/editor/stateStorage.js +0 -65
  254. package/dist/editor/stateStorage.js.map +0 -1
@@ -1,9 +1,12 @@
1
- import { AppliedThemeStyleCache, BaseCodeOptions, BaseDiffOptions, CustomPreProperties, DiffLineAnnotation, DiffsEditableComponent, DiffsEditor, DiffsTextDocument, EditorActiveLineOptions, ExpansionDirections, FileContents, FileDiffMetadata, HighlightedToken, HunkData, HunkSeparators, MaybeDiffFileInput, PostRenderPhase, PrePropertiesConfig, RenderHeaderFilenameSuffixCallback, RenderHeaderMetadataCallback, RenderHeaderPrefixCallback, RenderRange, SelectedLineRange, ThemeTypes } from "../types.js";
1
+ import { AppliedThemeStyleCache, BaseCodeOptions, BaseDiffOptions, CustomPreProperties, DiffLineAnnotation, ExpansionDirections, FileContents, FileDiffMetadata, HighlightedToken, HunkData, HunkSeparators, LineAnnotation, MaybeDiffFileInput, PostRenderPhase, PrePropertiesConfig, RenderHeaderFilenameSuffixCallback, RenderHeaderMetadataCallback, RenderHeaderPrefixCallback, RenderRange, SelectedLineRange, SelectionSide, ThemeTypes } from "../types.js";
2
+ import { CapturedDiffSessionState, EditCompletionDecision, EditorActiveLineOptions, EditorChangeEvent, FileDiffEditCompleteEvent } from "../editor/types.js";
3
+ import { TextDocument } from "../editor/textDocument.js";
2
4
  import { GetHoveredLineResult, GetLineIndexUtility, InteractionManager, InteractionManagerBaseOptions, SelectionWriteOptions } from "../managers/InteractionManager.js";
3
- import { WorkerPoolManager } from "../worker/WorkerPoolManager.js";
4
5
  import { ResizeManager } from "../managers/ResizeManager.js";
6
+ import { WorkerPoolManager } from "../worker/WorkerPoolManager.js";
5
7
  import { ScrollSyncManager } from "../managers/ScrollSyncManager.js";
6
8
  import { DiffHunksRenderer, DiffHunksRendererOptions, HunksRenderResult } from "../renderers/DiffHunksRenderer.js";
9
+ import { Editor } from "../editor/editor.js";
7
10
 
8
11
  //#region src/components/FileDiff.d.ts
9
12
  type LoadedPartialDiffContents = Awaited<ReturnType<NonNullable<BaseDiffOptions['loadDiffFiles']>>>;
@@ -25,13 +28,23 @@ type FileDiffHydrationProps<LAnnotation> = Omit<FileDiffRenderBaseProps<LAnnotat
25
28
  prerenderedHTML?: string;
26
29
  };
27
30
  type FileDiffType = 'file-diff' | 'unresolved-file';
28
- interface FileDiffOptions<LAnnotation> extends Omit<BaseDiffOptions, 'hunkSeparators'>, InteractionManagerBaseOptions<'diff'> {
31
+ type FileDiffEditChangeHandler<LAnnotation, Caret> = (event: EditorChangeEvent<'file-diff', LAnnotation, Caret>) => void;
32
+ /**
33
+ * Decides a completed edit synchronously: return `'accept'` to install the
34
+ * event's `fileDiff` and annotations, or `'reject'` to restore the original
35
+ * values. The event is frozen, so re-key the accepted diff in place
36
+ * (`event.fileDiff.cacheKey = '…'`) before accepting. The event's editor is
37
+ * detached and returns its final state from `getViewState()`. A missing handler
38
+ * rejects.
39
+ */
40
+ type FileDiffEditCompleteHandler<LAnnotation, Caret> = (event: FileDiffEditCompleteEvent<LAnnotation, Caret>) => EditCompletionDecision;
41
+ interface FileDiffOptions<LAnnotation, Caret> extends Omit<BaseDiffOptions, 'hunkSeparators'>, InteractionManagerBaseOptions<'diff'> {
29
42
  hunkSeparators?: Exclude<HunkSeparators, 'custom'>
30
43
  /**
31
44
  * @deprecated Custom hunk separator functions are deprecated and will be
32
45
  * removed in a future version.
33
46
  */
34
- | ((hunk: HunkData, instance: FileDiff<LAnnotation>) => HTMLElement | DocumentFragment | null | undefined);
47
+ | ((hunk: HunkData, instance: FileDiff<LAnnotation, Caret>) => HTMLElement | DocumentFragment | null | undefined);
35
48
  disableFileHeader?: boolean;
36
49
  renderHeaderPrefix?: RenderHeaderPrefixCallback;
37
50
  renderHeaderFilenameSuffix?: RenderHeaderFilenameSuffixCallback;
@@ -45,7 +58,22 @@ interface FileDiffOptions<LAnnotation> extends Omit<BaseDiffOptions, 'hunkSepara
45
58
  disableErrorHandling?: boolean;
46
59
  renderAnnotation?(annotation: DiffLineAnnotation<LAnnotation>): HTMLElement | undefined;
47
60
  renderGutterUtility?(getHoveredRow: () => GetHoveredLineResult<'diff'> | undefined): HTMLElement | null | undefined;
48
- onPostRender?(node: HTMLElement, instance: FileDiff<LAnnotation>, phase: PostRenderPhase): unknown;
61
+ onPostRender?(node: HTMLElement, instance: FileDiff<LAnnotation, Caret>, phase: PostRenderPhase): unknown;
62
+ /**
63
+ * Fired for every document change of an active edit session on this
64
+ * component, with the same `EditorChangeEvent` the editor reports through
65
+ * its own `onChange`. Do not feed the event's file back into the component
66
+ * while the session is active.
67
+ */
68
+ onEditChange?: FileDiffEditChangeHandler<LAnnotation, Caret>;
69
+ /**
70
+ * Fired when `edit` toggles false or a component unmounts, including when the
71
+ * final contents are unchanged. If no callback is provided, the component
72
+ * reverts to the last `fileDiff` or `oldFile`/`newFiles` and annotations
73
+ * passed into it. The callback receives the detached editor with its final
74
+ * pre-detach state.
75
+ */
76
+ onEditComplete?: FileDiffEditCompleteHandler<LAnnotation, Caret>;
49
77
  }
50
78
  interface AnnotationElementCache<LAnnotation> {
51
79
  element: HTMLElement;
@@ -63,8 +91,13 @@ type HydrationSetup<LAnnotation> = {
63
91
  fileDiff: FileDiffMetadata | undefined;
64
92
  lineAnnotations: DiffLineAnnotation<LAnnotation>[] | undefined;
65
93
  } & MaybeDiffFileInput;
66
- declare class FileDiff<LAnnotation = undefined> implements DiffsEditableComponent<LAnnotation> {
67
- options: FileDiffOptions<LAnnotation>;
94
+ interface HeaderCache {
95
+ lastRenderedHTML: string | undefined;
96
+ html: string | undefined;
97
+ fileDiff: FileDiffMetadata | undefined;
98
+ }
99
+ declare class FileDiff<LAnnotation = undefined, Caret = undefined> {
100
+ options: FileDiffOptions<LAnnotation, Caret>;
68
101
  protected workerManager?: WorkerPoolManager | undefined;
69
102
  protected isContainerManaged: boolean;
70
103
  static LoadedCustomComponent: boolean;
@@ -102,32 +135,41 @@ declare class FileDiff<LAnnotation = undefined> implements DiffsEditableComponen
102
135
  protected deletionFile?: FileContents | null;
103
136
  protected additionFile?: FileContents | null;
104
137
  fileDiff: FileDiffMetadata | undefined;
138
+ private editSessionDiff;
139
+ private editSessionAnnotations;
140
+ private outgoingSessionDiff;
141
+ protected renderedDiff: FileDiffMetadata | undefined;
105
142
  protected renderRange: RenderRange | undefined;
106
143
  protected pendingFiles: PendingFileLoad | undefined;
107
144
  protected appliedPreAttributes: PrePropertiesConfig | undefined;
108
- protected lastRenderedHeaderHTML: string | undefined;
109
- protected cachedHeaderHTML: string | undefined;
145
+ protected headerCache: HeaderCache;
110
146
  protected lastRowCount: number | undefined;
111
147
  private mounted;
112
148
  protected enabled: boolean;
113
- protected editor: DiffsEditor<LAnnotation> | undefined;
149
+ protected editor: Editor<'file-diff', LAnnotation, Caret> | undefined;
114
150
  protected refreshViewTimeout: ReturnType<typeof setTimeout> | undefined;
115
151
  protected lineStateRefreshPending: boolean;
116
152
  protected deferredSelectedLines: DeferredSelectedLinesWrite | undefined;
117
153
  protected deferredEditorActiveLine: DeferredEditorActiveLineWrite | undefined;
118
- constructor(options?: FileDiffOptions<LAnnotation>, workerManager?: WorkerPoolManager | undefined, isContainerManaged?: boolean);
154
+ constructor(options?: FileDiffOptions<LAnnotation, Caret>, workerManager?: WorkerPoolManager | undefined, isContainerManaged?: boolean);
119
155
  protected handleHighlightRender: () => void;
120
- protected getHunksRendererOptions(options: FileDiffOptions<LAnnotation>): DiffHunksRendererOptions;
121
- protected createHunksRenderer(options: FileDiffOptions<LAnnotation>): DiffHunksRenderer<LAnnotation>;
156
+ protected getHunksRendererOptions(options: FileDiffOptions<LAnnotation, Caret>): DiffHunksRendererOptions;
157
+ protected createHunksRenderer(options: FileDiffOptions<LAnnotation, Caret>): DiffHunksRenderer<LAnnotation>;
122
158
  getLineIndex: GetLineIndexUtility;
123
- setOptions(options: FileDiffOptions<LAnnotation> | undefined): void;
159
+ protected getDiffForLineIndex(): FileDiffMetadata | undefined;
160
+ protected getLineIndexForDiff(fileDiff: FileDiffMetadata | undefined, lineNumber: number, side: SelectionSide): [number, number] | undefined;
161
+ setOptions(options: FileDiffOptions<LAnnotation, Caret> | undefined): void;
124
162
  protected syncInteractionOptions(): void;
125
163
  private mergeOptions;
126
164
  setThemeType(themeType: ThemeTypes): void;
127
165
  private applyCachedThemeState;
128
166
  private hasThemeChanged;
129
167
  getHoveredLine: () => GetHoveredLineResult<'diff'> | undefined;
168
+ getAnnotationSlotName: (annotation: LineAnnotation<LAnnotation> | DiffLineAnnotation<LAnnotation>) => string;
169
+ protected getLatestAnnotations(): DiffLineAnnotation<LAnnotation>[];
170
+ protected isNewAnnotations(lineAnnotations: DiffLineAnnotation<LAnnotation>[]): boolean;
130
171
  setLineAnnotations(lineAnnotations: DiffLineAnnotation<LAnnotation>[]): void;
172
+ protected syncEditSessionAnnotationsFromEditor(lineAnnotations: DiffLineAnnotation<LAnnotation>[]): boolean;
131
173
  private canPartiallyRender;
132
174
  setSelectedLines(range: SelectedLineRange | null, options?: SelectionWriteOptions): void;
133
175
  setEditorActiveLine(lineNumber: number | null, options?: EditorActiveLineOptions): void;
@@ -161,6 +203,9 @@ declare class FileDiff<LAnnotation = undefined> implements DiffsEditableComponen
161
203
  protected loadFilesIfNecessary(): void;
162
204
  private loadFilesForDiff;
163
205
  protected handleFilesLoaded(expectedDiff: FileDiffMetadata, files: LoadedPartialDiffContents): Promise<void>;
206
+ protected startHydratedEditSession(expectedDiff: FileDiffMetadata): boolean;
207
+ protected updateExternalDiff(incomingExternalDiff: FileDiffMetadata, lineAnnotations?: DiffLineAnnotation<LAnnotation>[]): boolean;
208
+ private installEditSession;
164
209
  protected setHydratedState(files: LoadedPartialDiffContents): void;
165
210
  render({
166
211
  fileDiff,
@@ -174,29 +219,59 @@ declare class FileDiff<LAnnotation = undefined> implements DiffsEditableComponen
174
219
  ...fileInputProps
175
220
  }: FileDiffRenderProps<LAnnotation>): boolean;
176
221
  protected emitPostRender(unmount?: boolean): void;
177
- protected get fileDiffCache(): FileDiffMetadata | undefined;
222
+ protected getLatestDiff(fileDiff?: FileDiffMetadata | undefined): FileDiffMetadata | undefined;
223
+ protected getRenderedDiff(): FileDiffMetadata | undefined;
178
224
  private syncRenderViewToEditor;
179
225
  private computeEditorRenderRange;
180
- attachEditor(editor: DiffsEditor<LAnnotation>): (recycle?: boolean) => void;
226
+ emitEditChange(event: EditorChangeEvent<'file-diff', LAnnotation, Caret>): void;
227
+ /**
228
+ * @internal Capture the current diff session, or return `undefined` when no
229
+ * complete compatible session exists.
230
+ *
231
+ * When `clone` is true, the returned lines and hunks are copied.
232
+ */
233
+ __captureDocumentSessionState(clone?: boolean): CapturedDiffSessionState | undefined;
234
+ /** @internal Associate this component with its editor for a render lifecycle. */
235
+ __attachEditor(editor: Editor<'file-diff', LAnnotation, Caret>): () => void;
236
+ /** @internal Resume rendering for the editor already associated with this component. */
237
+ __resumeEditor(editor: Editor<'file-diff', LAnnotation, Caret>): void;
238
+ private resumeEditorRendering;
181
239
  private finishEditSession;
182
240
  /**
183
- * Run the genuine session-end recompute: restore recompute-shaped hunks (a
241
+ * @internal
242
+ *
243
+ * Ends the edit session and settles which diff this component renders.
244
+ * Requires the editor to be detached first. Does nothing when no session
245
+ * exists, so callers can invoke it again safely after it has settled.
246
+ *
247
+ * `onEditComplete` receives the completed diff, current external diff,
248
+ * complete file pair, and both annotation collections even when the final
249
+ * text is unchanged. In `install` mode, accepting installs the completed diff
250
+ * and its annotations; rejecting or having no handler restores the external
251
+ * values. `discard` mode always restores the external values. An accepted
252
+ * diff cannot reuse the replaced diff's `cacheKey`.
253
+ */
254
+ __completeEditSession(editor: Editor<'file-diff', LAnnotation, Caret>, mode: 'install' | 'discard'): void;
255
+ private settleEditSession;
256
+ /**
257
+ * Run the session-end recompute: restore recompute-shaped hunks (a
184
258
  * context-only region collapses away, boundaries re-derive), preserve
185
259
  * expansion state best-effort via old-side anchors, and repaint through
186
260
  * the session render path — which also invalidates virtualized layout,
187
261
  * since nothing else does at exit now that editing does not flip
188
262
  * expandUnchanged. Marker-guarded and idempotent; CodeView also calls this
189
- * when reaping a session whose detach closure was consumed by a recycle.
263
+ * when ending a session whose detach closure was consumed by a recycle.
190
264
  * Safe on a cleaned-up instance: the recompute is pure metadata work and
191
265
  * the deferred rerender is enabled-guarded. Returns true when a recompute
192
266
  * ran.
193
267
  */
194
- completeEditSession(): boolean;
195
- applyDocumentChange(textDocument: DiffsTextDocument, newLineAnnotations?: DiffLineAnnotation<LAnnotation>[]): void;
268
+ finalizeEditSessionHunks(): boolean;
269
+ applyDocumentChange(textDocument: TextDocument<'file-diff', LAnnotation>, newLineAnnotations?: DiffLineAnnotation<LAnnotation>[]): void;
196
270
  updateRenderCache(dirtyLines: Map<number, Array<HighlightedToken>>, themeType: 'dark' | 'light', options?: {
197
271
  shouldRefreshDiffsView?: boolean;
198
272
  lineCountChangeInFlight?: boolean;
199
273
  }): void;
274
+ private detachAdditionLines;
200
275
  isLineRenderable(lineNumber: number): boolean;
201
276
  getNearestRenderableLine(lineNumber: number, direction: 'up' | 'down'): number | undefined;
202
277
  revealLine(lineNumber: number): boolean;
@@ -217,6 +292,7 @@ declare class FileDiff<LAnnotation = undefined> implements DiffsEditableComponen
217
292
  private getOrCreatePreNode;
218
293
  protected syncCodeNodesFromPre(pre: HTMLPreElement): void;
219
294
  private applyHeaderToDOM;
295
+ protected clearReusableHeader(): void;
220
296
  private clearHeaderSlots;
221
297
  private upsertHeaderSlotElement;
222
298
  private replaceHeaderSlotContent;
@@ -253,5 +329,5 @@ declare class FileDiff<LAnnotation = undefined> implements DiffsEditableComponen
253
329
  private cleanupErrorWrapper;
254
330
  }
255
331
  //#endregion
256
- export { FileDiff, FileDiffHydrationProps, FileDiffOptions, FileDiffRenderBaseProps, FileDiffRenderProps, FileDiffType };
332
+ export { FileDiff, FileDiffEditChangeHandler, type FileDiffEditCompleteEvent, FileDiffEditCompleteHandler, FileDiffHydrationProps, FileDiffOptions, FileDiffRenderBaseProps, FileDiffRenderProps, FileDiffType };
257
333
  //# sourceMappingURL=FileDiff.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"FileDiff.d.ts","names":[],"sources":["../../src/components/FileDiff.ts"],"mappings":"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"}
1
+ {"version":3,"file":"FileDiff.d.ts","names":[],"sources":["../../src/components/FileDiff.ts"],"mappings":"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"}