@pierre/diffs 1.3.6 → 1.4.1

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 (260) hide show
  1. package/dist/components/CodeView.d.ts +115 -68
  2. package/dist/components/CodeView.d.ts.map +1 -1
  3. package/dist/components/CodeView.js +189 -59
  4. package/dist/components/CodeView.js.map +1 -1
  5. package/dist/components/File.d.ts +79 -15
  6. package/dist/components/File.d.ts.map +1 -1
  7. package/dist/components/File.js +244 -66
  8. package/dist/components/File.js.map +1 -1
  9. package/dist/components/FileDiff.d.ts +101 -21
  10. package/dist/components/FileDiff.d.ts.map +1 -1
  11. package/dist/components/FileDiff.js +432 -102
  12. package/dist/components/FileDiff.js.map +1 -1
  13. package/dist/components/FileStream.js +1 -1
  14. package/dist/components/UnresolvedFile.d.ts +2 -2
  15. package/dist/components/UnresolvedFile.d.ts.map +1 -1
  16. package/dist/components/UnresolvedFile.js +2 -2
  17. package/dist/components/UnresolvedFile.js.map +1 -1
  18. package/dist/components/VirtualizedFile.d.ts +17 -7
  19. package/dist/components/VirtualizedFile.d.ts.map +1 -1
  20. package/dist/components/VirtualizedFile.js +142 -53
  21. package/dist/components/VirtualizedFile.js.map +1 -1
  22. package/dist/components/VirtualizedFileDiff.d.ts +15 -8
  23. package/dist/components/VirtualizedFileDiff.d.ts.map +1 -1
  24. package/dist/components/VirtualizedFileDiff.js +186 -96
  25. package/dist/components/VirtualizedFileDiff.js.map +1 -1
  26. package/dist/components/VirtulizerDevelopment.d.ts +1 -1
  27. package/dist/components/VirtulizerDevelopment.d.ts.map +1 -1
  28. package/dist/edit/index.d.ts +7 -4
  29. package/dist/edit/index.js +5 -1
  30. package/dist/editor/EditStateManager.d.ts +56 -0
  31. package/dist/editor/EditStateManager.d.ts.map +1 -0
  32. package/dist/editor/EditStateManager.js +135 -0
  33. package/dist/editor/EditStateManager.js.map +1 -0
  34. package/dist/editor/cloneRetainedDiffSessionSnapshot.d.ts +7 -0
  35. package/dist/editor/cloneRetainedDiffSessionSnapshot.d.ts.map +1 -0
  36. package/dist/editor/cloneRetainedDiffSessionSnapshot.js +16 -0
  37. package/dist/editor/cloneRetainedDiffSessionSnapshot.js.map +1 -0
  38. package/dist/editor/editPrediction.d.ts +76 -0
  39. package/dist/editor/editPrediction.d.ts.map +1 -0
  40. package/dist/editor/editPrediction.js +365 -0
  41. package/dist/editor/editPrediction.js.map +1 -0
  42. package/dist/editor/editStack.d.ts +19 -40
  43. package/dist/editor/editStack.d.ts.map +1 -1
  44. package/dist/editor/editStack.js +67 -4
  45. package/dist/editor/editStack.js.map +1 -1
  46. package/dist/editor/editor.d.ts +118 -29
  47. package/dist/editor/editor.d.ts.map +1 -1
  48. package/dist/editor/editor.js +1108 -384
  49. package/dist/editor/editor.js.map +1 -1
  50. package/dist/editor/editor2.js +1 -1
  51. package/dist/editor/languages.d.ts +3 -3
  52. package/dist/editor/languages.d.ts.map +1 -1
  53. package/dist/editor/languages.js.map +1 -1
  54. package/dist/editor/lineAnnotations.d.ts +3 -3
  55. package/dist/editor/lineAnnotations.d.ts.map +1 -1
  56. package/dist/editor/lineAnnotations.js +16 -7
  57. package/dist/editor/lineAnnotations.js.map +1 -1
  58. package/dist/editor/marker.d.ts +2 -2
  59. package/dist/editor/marker.d.ts.map +1 -1
  60. package/dist/editor/marker.js.map +1 -1
  61. package/dist/editor/matchBrackets.d.ts +2 -2
  62. package/dist/editor/matchBrackets.d.ts.map +1 -1
  63. package/dist/editor/matchBrackets.js.map +1 -1
  64. package/dist/editor/pieceTable.d.ts +1 -1
  65. package/dist/editor/pieceTable.js.map +1 -1
  66. package/dist/editor/searchPanel.d.ts +2 -2
  67. package/dist/editor/searchPanel.js +1 -1
  68. package/dist/editor/searchPanel.js.map +1 -1
  69. package/dist/editor/selection.d.ts +32 -23
  70. package/dist/editor/selection.d.ts.map +1 -1
  71. package/dist/editor/selection.js +3 -3
  72. package/dist/editor/selection.js.map +1 -1
  73. package/dist/editor/selectionAction.d.ts +3 -3
  74. package/dist/editor/selectionAction.d.ts.map +1 -1
  75. package/dist/editor/selectionAction.js.map +1 -1
  76. package/dist/editor/textDocument.d.ts +11 -8
  77. package/dist/editor/textDocument.d.ts.map +1 -1
  78. package/dist/editor/textDocument.js +28 -5
  79. package/dist/editor/textDocument.js.map +1 -1
  80. package/dist/editor/textDocumentChangeTransaction.d.ts +15 -0
  81. package/dist/editor/textDocumentChangeTransaction.d.ts.map +1 -0
  82. package/dist/editor/textDocumentChangeTransaction.js +12 -0
  83. package/dist/editor/textDocumentChangeTransaction.js.map +1 -0
  84. package/dist/editor/textMeasure.d.ts +5 -0
  85. package/dist/editor/textMeasure.d.ts.map +1 -1
  86. package/dist/editor/textMeasure.js +10 -0
  87. package/dist/editor/textMeasure.js.map +1 -1
  88. package/dist/editor/tokenizer.d.ts +1 -1
  89. package/dist/editor/tokenizer.js.map +1 -1
  90. package/dist/editor/types.d.ts +267 -0
  91. package/dist/editor/types.d.ts.map +1 -0
  92. package/dist/editor/types.js +0 -0
  93. package/dist/editor/utils.d.ts +2 -1
  94. package/dist/editor/utils.d.ts.map +1 -1
  95. package/dist/editor/utils.js +4 -1
  96. package/dist/editor/utils.js.map +1 -1
  97. package/dist/highlighter/shared_highlighter.d.ts +6 -2
  98. package/dist/highlighter/shared_highlighter.d.ts.map +1 -1
  99. package/dist/highlighter/shared_highlighter.js +7 -3
  100. package/dist/highlighter/shared_highlighter.js.map +1 -1
  101. package/dist/highlighter/themes/areThemesAttached.js +1 -1
  102. package/dist/index.d.ts +8 -6
  103. package/dist/index.js +22 -21
  104. package/dist/managers/InteractionManager.d.ts.map +1 -1
  105. package/dist/managers/InteractionManager.js +7 -0
  106. package/dist/managers/InteractionManager.js.map +1 -1
  107. package/dist/react/CodeView.d.ts +36 -25
  108. package/dist/react/CodeView.d.ts.map +1 -1
  109. package/dist/react/CodeView.js +15 -14
  110. package/dist/react/CodeView.js.map +1 -1
  111. package/dist/react/EditContext.d.ts +8 -11
  112. package/dist/react/EditContext.d.ts.map +1 -1
  113. package/dist/react/EditContext.js +2 -9
  114. package/dist/react/EditContext.js.map +1 -1
  115. package/dist/react/File.d.ts +10 -6
  116. package/dist/react/File.d.ts.map +1 -1
  117. package/dist/react/File.js +8 -4
  118. package/dist/react/File.js.map +1 -1
  119. package/dist/react/FileDiff.d.ts +10 -5
  120. package/dist/react/FileDiff.d.ts.map +1 -1
  121. package/dist/react/FileDiff.js +8 -4
  122. package/dist/react/FileDiff.js.map +1 -1
  123. package/dist/react/MultiFileDiff.d.ts +8 -5
  124. package/dist/react/MultiFileDiff.d.ts.map +1 -1
  125. package/dist/react/MultiFileDiff.js +8 -12
  126. package/dist/react/MultiFileDiff.js.map +1 -1
  127. package/dist/react/PatchDiff.d.ts +7 -4
  128. package/dist/react/PatchDiff.d.ts.map +1 -1
  129. package/dist/react/PatchDiff.js +8 -4
  130. package/dist/react/PatchDiff.js.map +1 -1
  131. package/dist/react/UnresolvedFile.d.ts +3 -3
  132. package/dist/react/UnresolvedFile.d.ts.map +1 -1
  133. package/dist/react/UnresolvedFile.js.map +1 -1
  134. package/dist/react/index.d.ts +8 -5
  135. package/dist/react/types.d.ts +46 -9
  136. package/dist/react/types.d.ts.map +1 -1
  137. package/dist/react/utils/renderDiffChildren.d.ts +14 -12
  138. package/dist/react/utils/renderDiffChildren.d.ts.map +1 -1
  139. package/dist/react/utils/renderDiffChildren.js +2 -2
  140. package/dist/react/utils/renderDiffChildren.js.map +1 -1
  141. package/dist/react/utils/renderFileChildren.d.ts +14 -12
  142. package/dist/react/utils/renderFileChildren.d.ts.map +1 -1
  143. package/dist/react/utils/renderFileChildren.js +2 -2
  144. package/dist/react/utils/renderFileChildren.js.map +1 -1
  145. package/dist/react/utils/useFileDiffInstance.d.ts +22 -10
  146. package/dist/react/utils/useFileDiffInstance.d.ts.map +1 -1
  147. package/dist/react/utils/useFileDiffInstance.js +112 -22
  148. package/dist/react/utils/useFileDiffInstance.js.map +1 -1
  149. package/dist/react/utils/useFileInstance.d.ts +15 -9
  150. package/dist/react/utils/useFileInstance.d.ts.map +1 -1
  151. package/dist/react/utils/useFileInstance.js +84 -25
  152. package/dist/react/utils/useFileInstance.js.map +1 -1
  153. package/dist/renderers/DiffHunksRenderer.d.ts +30 -15
  154. package/dist/renderers/DiffHunksRenderer.d.ts.map +1 -1
  155. package/dist/renderers/DiffHunksRenderer.js +172 -109
  156. package/dist/renderers/DiffHunksRenderer.js.map +1 -1
  157. package/dist/renderers/FileRenderer.d.ts +27 -11
  158. package/dist/renderers/FileRenderer.d.ts.map +1 -1
  159. package/dist/renderers/FileRenderer.js +141 -67
  160. package/dist/renderers/FileRenderer.js.map +1 -1
  161. package/dist/renderers/UnresolvedFileHunksRenderer.d.ts +2 -2
  162. package/dist/renderers/UnresolvedFileHunksRenderer.d.ts.map +1 -1
  163. package/dist/renderers/UnresolvedFileHunksRenderer.js +2 -2
  164. package/dist/renderers/UnresolvedFileHunksRenderer.js.map +1 -1
  165. package/dist/shiki-stream/tokenizer.d.ts.map +1 -1
  166. package/dist/shiki-stream/tokenizer.js +2 -1
  167. package/dist/shiki-stream/tokenizer.js.map +1 -1
  168. package/dist/ssr/index.d.ts +2 -2
  169. package/dist/ssr/preloadDiffs.d.ts +21 -21
  170. package/dist/ssr/preloadDiffs.d.ts.map +1 -1
  171. package/dist/ssr/preloadDiffs.js +1 -1
  172. package/dist/ssr/preloadDiffs.js.map +1 -1
  173. package/dist/ssr/preloadFile.d.ts +6 -6
  174. package/dist/ssr/preloadFile.d.ts.map +1 -1
  175. package/dist/ssr/preloadFile.js.map +1 -1
  176. package/dist/ssr/preloadPatchFile.d.ts +4 -4
  177. package/dist/ssr/preloadPatchFile.d.ts.map +1 -1
  178. package/dist/ssr/preloadPatchFile.js.map +1 -1
  179. package/dist/style.js +1 -1
  180. package/dist/types.d.ts +13 -263
  181. package/dist/types.d.ts.map +1 -1
  182. package/dist/utils/appendItems.d.ts +5 -0
  183. package/dist/utils/appendItems.d.ts.map +1 -0
  184. package/dist/utils/appendItems.js +8 -0
  185. package/dist/utils/appendItems.js.map +1 -0
  186. package/dist/utils/areDiffTargetsEqual.js +1 -1
  187. package/dist/utils/areDiffTargetsEqual.js.map +1 -1
  188. package/dist/utils/areFileTargetsEqual.d.ts +7 -0
  189. package/dist/utils/areFileTargetsEqual.d.ts.map +1 -0
  190. package/dist/utils/areFileTargetsEqual.js +8 -0
  191. package/dist/utils/areFileTargetsEqual.js.map +1 -0
  192. package/dist/utils/areManagedSnapshotsEqual.d.ts +1 -1
  193. package/dist/utils/areManagedSnapshotsEqual.d.ts.map +1 -1
  194. package/dist/utils/areManagedSnapshotsEqual.js.map +1 -1
  195. package/dist/utils/areOptionsEqual.d.ts +3 -3
  196. package/dist/utils/areOptionsEqual.d.ts.map +1 -1
  197. package/dist/utils/areOptionsEqual.js.map +1 -1
  198. package/dist/utils/cloneFileDiffMetadata.d.ts +3 -2
  199. package/dist/utils/cloneFileDiffMetadata.d.ts.map +1 -1
  200. package/dist/utils/cloneFileDiffMetadata.js +8 -5
  201. package/dist/utils/cloneFileDiffMetadata.js.map +1 -1
  202. package/dist/utils/composeCacheKey.d.ts +6 -0
  203. package/dist/utils/composeCacheKey.d.ts.map +1 -0
  204. package/dist/utils/composeCacheKey.js +10 -0
  205. package/dist/utils/composeCacheKey.js.map +1 -0
  206. package/dist/utils/editSessionAnnotations.d.ts +69 -0
  207. package/dist/utils/editSessionAnnotations.d.ts.map +1 -0
  208. package/dist/utils/editSessionAnnotations.js +64 -0
  209. package/dist/utils/editSessionAnnotations.js.map +1 -0
  210. package/dist/utils/editSessionHunks.d.ts +5 -3
  211. package/dist/utils/editSessionHunks.d.ts.map +1 -1
  212. package/dist/utils/editSessionHunks.js +7 -5
  213. package/dist/utils/editSessionHunks.js.map +1 -1
  214. package/dist/utils/getDiffHunksRendererOptions.d.ts +1 -1
  215. package/dist/utils/getDiffHunksRendererOptions.d.ts.map +1 -1
  216. package/dist/utils/getDiffHunksRendererOptions.js.map +1 -1
  217. package/dist/utils/getFileRendererOptions.d.ts +1 -1
  218. package/dist/utils/getFileRendererOptions.d.ts.map +1 -1
  219. package/dist/utils/getFileRendererOptions.js.map +1 -1
  220. package/dist/utils/hydratePartialDiff.d.ts.map +1 -1
  221. package/dist/utils/hydratePartialDiff.js +2 -1
  222. package/dist/utils/hydratePartialDiff.js.map +1 -1
  223. package/dist/utils/lineAnnotationIdentity.d.ts +16 -0
  224. package/dist/utils/lineAnnotationIdentity.d.ts.map +1 -0
  225. package/dist/utils/lineAnnotationIdentity.js +17 -0
  226. package/dist/utils/lineAnnotationIdentity.js.map +1 -0
  227. package/dist/utils/parseDiffFromFile.d.ts +2 -2
  228. package/dist/utils/parseDiffFromFile.d.ts.map +1 -1
  229. package/dist/utils/parseDiffFromFile.js +6 -6
  230. package/dist/utils/parseDiffFromFile.js.map +1 -1
  231. package/dist/utils/parsePatchFiles.d.ts +6 -3
  232. package/dist/utils/parsePatchFiles.d.ts.map +1 -1
  233. package/dist/utils/parsePatchFiles.js +34 -9
  234. package/dist/utils/parsePatchFiles.js.map +1 -1
  235. package/dist/utils/renderDiffWithHighlighter.d.ts.map +1 -1
  236. package/dist/utils/renderDiffWithHighlighter.js +6 -5
  237. package/dist/utils/renderDiffWithHighlighter.js.map +1 -1
  238. package/dist/utils/renderFileWithHighlighter.d.ts.map +1 -1
  239. package/dist/utils/renderFileWithHighlighter.js +7 -4
  240. package/dist/utils/renderFileWithHighlighter.js.map +1 -1
  241. package/dist/utils/trimPatchContext.d.ts.map +1 -1
  242. package/dist/utils/trimPatchContext.js +3 -2
  243. package/dist/utils/trimPatchContext.js.map +1 -1
  244. package/dist/utils/updateDiffHunks.js +1 -1
  245. package/dist/utils/virtualDiffLayout.js +1 -1
  246. package/dist/worker/WorkerPoolManager.d.ts +4 -3
  247. package/dist/worker/WorkerPoolManager.d.ts.map +1 -1
  248. package/dist/worker/WorkerPoolManager.js +44 -6
  249. package/dist/worker/WorkerPoolManager.js.map +1 -1
  250. package/dist/worker/types.d.ts +5 -0
  251. package/dist/worker/types.d.ts.map +1 -1
  252. package/dist/worker/worker-portable.js +14 -6
  253. package/dist/worker/worker-portable.js.map +1 -1
  254. package/dist/worker/worker.js +14 -6
  255. package/dist/worker/worker.js.map +1 -1
  256. package/package.json +9 -1
  257. package/dist/editor/stateStorage.d.ts +0 -15
  258. package/dist/editor/stateStorage.d.ts.map +0 -1
  259. package/dist/editor/stateStorage.js +0 -65
  260. 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,40 @@ 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 editSession;
139
+ protected renderedDiff: FileDiffMetadata | undefined;
105
140
  protected renderRange: RenderRange | undefined;
106
141
  protected pendingFiles: PendingFileLoad | undefined;
107
142
  protected appliedPreAttributes: PrePropertiesConfig | undefined;
108
- protected lastRenderedHeaderHTML: string | undefined;
109
- protected cachedHeaderHTML: string | undefined;
143
+ protected headerCache: HeaderCache;
110
144
  protected lastRowCount: number | undefined;
111
145
  private mounted;
112
146
  protected enabled: boolean;
113
- protected editor: DiffsEditor<LAnnotation> | undefined;
147
+ protected editor: Editor<'file-diff', LAnnotation, Caret> | undefined;
114
148
  protected refreshViewTimeout: ReturnType<typeof setTimeout> | undefined;
115
149
  protected lineStateRefreshPending: boolean;
116
150
  protected deferredSelectedLines: DeferredSelectedLinesWrite | undefined;
117
151
  protected deferredEditorActiveLine: DeferredEditorActiveLineWrite | undefined;
118
- constructor(options?: FileDiffOptions<LAnnotation>, workerManager?: WorkerPoolManager | undefined, isContainerManaged?: boolean);
152
+ constructor(options?: FileDiffOptions<LAnnotation, Caret>, workerManager?: WorkerPoolManager | undefined, isContainerManaged?: boolean);
119
153
  protected handleHighlightRender: () => void;
120
- protected getHunksRendererOptions(options: FileDiffOptions<LAnnotation>): DiffHunksRendererOptions;
121
- protected createHunksRenderer(options: FileDiffOptions<LAnnotation>): DiffHunksRenderer<LAnnotation>;
154
+ private getTheme;
155
+ protected getHunksRendererOptions(options: FileDiffOptions<LAnnotation, Caret>): DiffHunksRendererOptions;
156
+ protected createHunksRenderer(options: FileDiffOptions<LAnnotation, Caret>): DiffHunksRenderer<LAnnotation>;
122
157
  getLineIndex: GetLineIndexUtility;
123
- setOptions(options: FileDiffOptions<LAnnotation> | undefined): void;
158
+ protected getDiffForLineIndex(): FileDiffMetadata | undefined;
159
+ protected getLineIndexForDiff(fileDiff: FileDiffMetadata | undefined, lineNumber: number, side: SelectionSide): [number, number] | undefined;
160
+ setOptions(options: FileDiffOptions<LAnnotation, Caret> | undefined): void;
124
161
  protected syncInteractionOptions(): void;
125
162
  private mergeOptions;
126
163
  setThemeType(themeType: ThemeTypes): void;
127
164
  private applyCachedThemeState;
128
165
  private hasThemeChanged;
129
166
  getHoveredLine: () => GetHoveredLineResult<'diff'> | undefined;
167
+ getAnnotationSlotName: (annotation: LineAnnotation<LAnnotation> | DiffLineAnnotation<LAnnotation>) => string;
168
+ protected getLatestAnnotations(): DiffLineAnnotation<LAnnotation>[];
169
+ protected isNewAnnotations(lineAnnotations: DiffLineAnnotation<LAnnotation>[]): boolean;
130
170
  setLineAnnotations(lineAnnotations: DiffLineAnnotation<LAnnotation>[]): void;
171
+ protected syncEditSessionAnnotationsFromEditor(lineAnnotations: DiffLineAnnotation<LAnnotation>[]): boolean;
131
172
  private canPartiallyRender;
132
173
  setSelectedLines(range: SelectedLineRange | null, options?: SelectionWriteOptions): void;
133
174
  setEditorActiveLine(lineNumber: number | null, options?: EditorActiveLineOptions): void;
@@ -161,6 +202,9 @@ declare class FileDiff<LAnnotation = undefined> implements DiffsEditableComponen
161
202
  protected loadFilesIfNecessary(): void;
162
203
  private loadFilesForDiff;
163
204
  protected handleFilesLoaded(expectedDiff: FileDiffMetadata, files: LoadedPartialDiffContents): Promise<void>;
205
+ protected startHydratedEditSession(expectedDiff: FileDiffMetadata): boolean;
206
+ protected updateExternalDiff(incomingExternalDiff: FileDiffMetadata, lineAnnotations?: DiffLineAnnotation<LAnnotation>[]): boolean;
207
+ private installEditSession;
164
208
  protected setHydratedState(files: LoadedPartialDiffContents): void;
165
209
  render({
166
210
  fileDiff,
@@ -173,30 +217,65 @@ declare class FileDiff<LAnnotation = undefined> implements DiffsEditableComponen
173
217
  renderRange,
174
218
  ...fileInputProps
175
219
  }: FileDiffRenderProps<LAnnotation>): boolean;
220
+ protected finalizeRender(): void;
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
+ /** @internal The editor applied or edited past the pending external replacement. */
227
+ __acknowledgeDocumentUpdate(): void;
228
+ /** @internal Settle annotations locally. */
229
+ __acceptEditorChange(event: EditorChangeEvent<'file-diff', LAnnotation, Caret>): void;
230
+ emitEditChange(event: EditorChangeEvent<'file-diff', LAnnotation, Caret>): void;
231
+ /**
232
+ * @internal Capture the current diff session, or return `undefined` when no
233
+ * complete compatible session exists.
234
+ *
235
+ * When `clone` is true, the returned lines and hunks are copied.
236
+ */
237
+ __captureDocumentSessionState(clone?: boolean): CapturedDiffSessionState | undefined;
238
+ /** @internal Associate this component with its editor for a render lifecycle. */
239
+ __attachEditor(editor: Editor<'file-diff', LAnnotation, Caret>): () => void;
240
+ /** @internal Resume rendering for the editor already associated with this component. */
241
+ __resumeEditor(editor: Editor<'file-diff', LAnnotation, Caret>): void;
242
+ private resumeEditorRendering;
181
243
  private finishEditSession;
182
244
  /**
183
- * Run the genuine session-end recompute: restore recompute-shaped hunks (a
245
+ * @internal
246
+ *
247
+ * Ends the edit session and settles which diff this component renders.
248
+ * Requires the editor to be detached first. Does nothing when no session
249
+ * exists, so callers can invoke it again safely after it has settled.
250
+ *
251
+ * `onEditComplete` receives the completed diff, current external diff,
252
+ * complete file pair, and both annotation collections even when the final
253
+ * text is unchanged. In `install` mode, accepting installs the completed diff
254
+ * and its annotations; rejecting or having no handler restores the external
255
+ * values. `discard` mode always restores the external values. An accepted
256
+ * diff cannot reuse the replaced diff's `cacheKey`.
257
+ */
258
+ __completeEditSession(editor: Editor<'file-diff', LAnnotation, Caret>, mode: 'install' | 'discard'): void;
259
+ private settleEditSession;
260
+ /**
261
+ * Run the session-end recompute: restore recompute-shaped hunks (a
184
262
  * context-only region collapses away, boundaries re-derive), preserve
185
263
  * expansion state best-effort via old-side anchors, and repaint through
186
264
  * the session render path — which also invalidates virtualized layout,
187
265
  * since nothing else does at exit now that editing does not flip
188
266
  * expandUnchanged. Marker-guarded and idempotent; CodeView also calls this
189
- * when reaping a session whose detach closure was consumed by a recycle.
267
+ * when ending a session whose detach closure was consumed by a recycle.
190
268
  * Safe on a cleaned-up instance: the recompute is pure metadata work and
191
269
  * the deferred rerender is enabled-guarded. Returns true when a recompute
192
270
  * ran.
193
271
  */
194
- completeEditSession(): boolean;
195
- applyDocumentChange(textDocument: DiffsTextDocument, newLineAnnotations?: DiffLineAnnotation<LAnnotation>[]): void;
272
+ finalizeEditSessionHunks(): boolean;
273
+ applyDocumentChange(textDocument: TextDocument<'file-diff', LAnnotation>, newLineAnnotations?: DiffLineAnnotation<LAnnotation>[]): void;
196
274
  updateRenderCache(dirtyLines: Map<number, Array<HighlightedToken>>, themeType: 'dark' | 'light', options?: {
197
275
  shouldRefreshDiffsView?: boolean;
198
276
  lineCountChangeInFlight?: boolean;
199
277
  }): void;
278
+ private detachAdditionLines;
200
279
  isLineRenderable(lineNumber: number): boolean;
201
280
  getNearestRenderableLine(lineNumber: number, direction: 'up' | 'down'): number | undefined;
202
281
  revealLine(lineNumber: number): boolean;
@@ -217,6 +296,7 @@ declare class FileDiff<LAnnotation = undefined> implements DiffsEditableComponen
217
296
  private getOrCreatePreNode;
218
297
  protected syncCodeNodesFromPre(pre: HTMLPreElement): void;
219
298
  private applyHeaderToDOM;
299
+ protected clearReusableHeader(): void;
220
300
  private clearHeaderSlots;
221
301
  private upsertHeaderSlotElement;
222
302
  private replaceHeaderSlotContent;
@@ -253,5 +333,5 @@ declare class FileDiff<LAnnotation = undefined> implements DiffsEditableComponen
253
333
  private cleanupErrorWrapper;
254
334
  }
255
335
  //#endregion
256
- export { FileDiff, FileDiffHydrationProps, FileDiffOptions, FileDiffRenderBaseProps, FileDiffRenderProps, FileDiffType };
336
+ export { FileDiff, FileDiffEditChangeHandler, type FileDiffEditCompleteEvent, FileDiffEditCompleteHandler, FileDiffHydrationProps, FileDiffOptions, FileDiffRenderBaseProps, FileDiffRenderProps, FileDiffType };
257
337
  //# 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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"}