@pierre/diffs 1.1.19 → 1.2.0-beta.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 (147) hide show
  1. package/dist/components/CodeView.d.ts +324 -0
  2. package/dist/components/CodeView.d.ts.map +1 -0
  3. package/dist/components/CodeView.js +1245 -0
  4. package/dist/components/CodeView.js.map +1 -0
  5. package/dist/components/File.d.ts +13 -12
  6. package/dist/components/File.d.ts.map +1 -1
  7. package/dist/components/File.js +68 -28
  8. package/dist/components/File.js.map +1 -1
  9. package/dist/components/FileDiff.d.ts +9 -10
  10. package/dist/components/FileDiff.d.ts.map +1 -1
  11. package/dist/components/FileDiff.js +57 -30
  12. package/dist/components/FileDiff.js.map +1 -1
  13. package/dist/components/FileStream.js +9 -3
  14. package/dist/components/FileStream.js.map +1 -1
  15. package/dist/components/VirtualizedFile.d.ts +28 -5
  16. package/dist/components/VirtualizedFile.d.ts.map +1 -1
  17. package/dist/components/VirtualizedFile.js +225 -45
  18. package/dist/components/VirtualizedFile.js.map +1 -1
  19. package/dist/components/VirtualizedFileDiff.d.ts +28 -5
  20. package/dist/components/VirtualizedFileDiff.d.ts.map +1 -1
  21. package/dist/components/VirtualizedFileDiff.js +285 -49
  22. package/dist/components/VirtualizedFileDiff.js.map +1 -1
  23. package/dist/components/Virtualizer.d.ts +6 -3
  24. package/dist/components/Virtualizer.d.ts.map +1 -1
  25. package/dist/components/Virtualizer.js +4 -6
  26. package/dist/components/Virtualizer.js.map +1 -1
  27. package/dist/components/VirtulizerDevelopment.d.ts +2 -2
  28. package/dist/components/VirtulizerDevelopment.d.ts.map +1 -1
  29. package/dist/constants.d.ts +6 -2
  30. package/dist/constants.d.ts.map +1 -1
  31. package/dist/constants.js +17 -2
  32. package/dist/constants.js.map +1 -1
  33. package/dist/index.d.ts +6 -5
  34. package/dist/index.js +11 -10
  35. package/dist/managers/InteractionManager.d.ts +11 -7
  36. package/dist/managers/InteractionManager.d.ts.map +1 -1
  37. package/dist/managers/InteractionManager.js +38 -25
  38. package/dist/managers/InteractionManager.js.map +1 -1
  39. package/dist/managers/ResizeManager.d.ts +4 -4
  40. package/dist/managers/ResizeManager.d.ts.map +1 -1
  41. package/dist/managers/ResizeManager.js +89 -54
  42. package/dist/managers/ResizeManager.js.map +1 -1
  43. package/dist/managers/UniversalRenderingManager.d.ts +2 -1
  44. package/dist/managers/UniversalRenderingManager.d.ts.map +1 -1
  45. package/dist/managers/UniversalRenderingManager.js +13 -16
  46. package/dist/managers/UniversalRenderingManager.js.map +1 -1
  47. package/dist/react/CodeView.d.ts +45 -0
  48. package/dist/react/CodeView.d.ts.map +1 -0
  49. package/dist/react/CodeView.js +241 -0
  50. package/dist/react/CodeView.js.map +1 -0
  51. package/dist/react/File.d.ts +0 -1
  52. package/dist/react/File.d.ts.map +1 -1
  53. package/dist/react/File.js +2 -3
  54. package/dist/react/File.js.map +1 -1
  55. package/dist/react/FileDiff.d.ts +0 -1
  56. package/dist/react/FileDiff.d.ts.map +1 -1
  57. package/dist/react/FileDiff.js +3 -4
  58. package/dist/react/FileDiff.js.map +1 -1
  59. package/dist/react/MultiFileDiff.d.ts +0 -1
  60. package/dist/react/MultiFileDiff.d.ts.map +1 -1
  61. package/dist/react/MultiFileDiff.js +3 -4
  62. package/dist/react/MultiFileDiff.js.map +1 -1
  63. package/dist/react/PatchDiff.d.ts +0 -1
  64. package/dist/react/PatchDiff.d.ts.map +1 -1
  65. package/dist/react/PatchDiff.js +3 -4
  66. package/dist/react/PatchDiff.js.map +1 -1
  67. package/dist/react/UnresolvedFile.d.ts +0 -1
  68. package/dist/react/UnresolvedFile.d.ts.map +1 -1
  69. package/dist/react/UnresolvedFile.js +3 -4
  70. package/dist/react/UnresolvedFile.js.map +1 -1
  71. package/dist/react/index.d.ts +3 -2
  72. package/dist/react/index.js +5 -4
  73. package/dist/react/jsx.d.ts.map +1 -1
  74. package/dist/react/types.d.ts +0 -8
  75. package/dist/react/types.d.ts.map +1 -1
  76. package/dist/react/utils/renderDiffChildren.d.ts +0 -2
  77. package/dist/react/utils/renderDiffChildren.d.ts.map +1 -1
  78. package/dist/react/utils/renderDiffChildren.js +3 -4
  79. package/dist/react/utils/renderDiffChildren.js.map +1 -1
  80. package/dist/react/utils/renderFileChildren.d.ts +0 -2
  81. package/dist/react/utils/renderFileChildren.d.ts.map +1 -1
  82. package/dist/react/utils/renderFileChildren.js +3 -4
  83. package/dist/react/utils/renderFileChildren.js.map +1 -1
  84. package/dist/react/utils/useFileDiffInstance.js +12 -7
  85. package/dist/react/utils/useFileDiffInstance.js.map +1 -1
  86. package/dist/react/utils/useFileInstance.js +12 -7
  87. package/dist/react/utils/useFileInstance.js.map +1 -1
  88. package/dist/react/utils/useUnresolvedFileInstance.js +6 -2
  89. package/dist/react/utils/useUnresolvedFileInstance.js.map +1 -1
  90. package/dist/renderers/DiffHunksRenderer.d.ts +2 -1
  91. package/dist/renderers/DiffHunksRenderer.d.ts.map +1 -1
  92. package/dist/renderers/DiffHunksRenderer.js +35 -20
  93. package/dist/renderers/DiffHunksRenderer.js.map +1 -1
  94. package/dist/renderers/FileRenderer.d.ts +2 -1
  95. package/dist/renderers/FileRenderer.d.ts.map +1 -1
  96. package/dist/renderers/FileRenderer.js +34 -20
  97. package/dist/renderers/FileRenderer.js.map +1 -1
  98. package/dist/ssr/index.d.ts +2 -2
  99. package/dist/ssr/preloadDiffs.js +1 -1
  100. package/dist/style.js +1 -1
  101. package/dist/style.js.map +1 -1
  102. package/dist/types.d.ts +98 -3
  103. package/dist/types.d.ts.map +1 -1
  104. package/dist/utils/areManagedSnapshotsEqual.d.ts +7 -0
  105. package/dist/utils/areManagedSnapshotsEqual.d.ts.map +1 -0
  106. package/dist/utils/areManagedSnapshotsEqual.js +15 -0
  107. package/dist/utils/areManagedSnapshotsEqual.js.map +1 -0
  108. package/dist/utils/areOptionsEqual.d.ts +2 -1
  109. package/dist/utils/areOptionsEqual.d.ts.map +1 -1
  110. package/dist/utils/areOptionsEqual.js +1 -1
  111. package/dist/utils/areOptionsEqual.js.map +1 -1
  112. package/dist/utils/createFileHeaderElement.d.ts +3 -1
  113. package/dist/utils/createFileHeaderElement.d.ts.map +1 -1
  114. package/dist/utils/createFileHeaderElement.js +3 -2
  115. package/dist/utils/createFileHeaderElement.js.map +1 -1
  116. package/dist/utils/createWindowFromScrollPosition.d.ts +3 -3
  117. package/dist/utils/createWindowFromScrollPosition.d.ts.map +1 -1
  118. package/dist/utils/createWindowFromScrollPosition.js +6 -6
  119. package/dist/utils/createWindowFromScrollPosition.js.map +1 -1
  120. package/dist/utils/iterateOverDiff.d.ts +2 -1
  121. package/dist/utils/iterateOverDiff.d.ts.map +1 -1
  122. package/dist/utils/iterateOverDiff.js +135 -7
  123. package/dist/utils/iterateOverDiff.js.map +1 -1
  124. package/dist/utils/parsePatchFiles.js +2 -2
  125. package/dist/utils/parsePatchFiles.js.map +1 -1
  126. package/dist/utils/renderFileWithHighlighter.js +1 -1
  127. package/dist/utils/resolveVirtualFileMetrics.d.ts +4 -1
  128. package/dist/utils/resolveVirtualFileMetrics.d.ts.map +1 -1
  129. package/dist/utils/resolveVirtualFileMetrics.js +11 -1
  130. package/dist/utils/resolveVirtualFileMetrics.js.map +1 -1
  131. package/dist/utils/roundToDevicePixel.d.ts +14 -0
  132. package/dist/utils/roundToDevicePixel.d.ts.map +1 -0
  133. package/dist/utils/roundToDevicePixel.js +18 -0
  134. package/dist/utils/roundToDevicePixel.js.map +1 -0
  135. package/dist/worker/worker-portable.js +195 -14
  136. package/dist/worker/worker-portable.js.map +1 -1
  137. package/dist/worker/worker.js +146 -7
  138. package/dist/worker/worker.js.map +1 -1
  139. package/package.json +10 -1
  140. package/dist/components/AdvancedVirtualizedFileDiff.d.ts +0 -40
  141. package/dist/components/AdvancedVirtualizedFileDiff.d.ts.map +0 -1
  142. package/dist/components/AdvancedVirtualizedFileDiff.js +0 -140
  143. package/dist/components/AdvancedVirtualizedFileDiff.js.map +0 -1
  144. package/dist/components/AdvancedVirtualizer.d.ts +0 -38
  145. package/dist/components/AdvancedVirtualizer.d.ts.map +0 -1
  146. package/dist/components/AdvancedVirtualizer.js +0 -201
  147. package/dist/components/AdvancedVirtualizer.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"FileDiff.d.ts","names":["GetHoveredLineResult","GetLineIndexUtility","InteractionManager","InteractionManagerBaseOptions","SelectedLineRange","ResizeManager","ScrollSyncManager","DiffHunksRenderer","DiffHunksRendererOptions","HunksRenderResult","AppliedThemeStyleCache","BaseDiffOptions","CustomPreProperties","DiffLineAnnotation","ExpansionDirections","FileContents","FileDiffMetadata","HunkData","HunkSeparators","PrePropertiesConfig","RenderHeaderMetadataCallback","RenderHeaderPrefixCallback","RenderRange","ThemeTypes","WorkerPoolManager","FileDiffRenderProps","LAnnotation","HTMLElement","FileDiffHydrationProps","Omit","FileDiffOptions","Exclude","FileDiff","DocumentFragment","AnnotationElementCache","CustomHunkElementCache","HydrationSetup","SVGElement","HTMLPreElement","HTMLStyleElement","Map","__0","AnnotationSide","fileDiff","oldFile","newFile","lineAnnotations","forceRender","preventEmit","fileContainer","containerWrapper","renderRange","additionsContentAST","deletionsContentAST","totalLines"],"sources":["../../src/components/FileDiff.d.ts"],"sourcesContent":["import { type GetHoveredLineResult, type GetLineIndexUtility, InteractionManager, type InteractionManagerBaseOptions, type SelectedLineRange } from '../managers/InteractionManager';\nimport { ResizeManager } from '../managers/ResizeManager';\nimport { ScrollSyncManager } from '../managers/ScrollSyncManager';\nimport { DiffHunksRenderer, type DiffHunksRendererOptions, type HunksRenderResult } from '../renderers/DiffHunksRenderer';\nimport type { AppliedThemeStyleCache, BaseDiffOptions, CustomPreProperties, DiffLineAnnotation, ExpansionDirections, FileContents, FileDiffMetadata, HunkData, HunkSeparators, PrePropertiesConfig, RenderHeaderMetadataCallback, RenderHeaderPrefixCallback, RenderRange, ThemeTypes } from '../types';\nimport type { WorkerPoolManager } from '../worker';\nexport interface FileDiffRenderProps<LAnnotation> {\n fileDiff?: FileDiffMetadata;\n oldFile?: FileContents;\n newFile?: FileContents;\n forceRender?: boolean;\n preventEmit?: boolean;\n fileContainer?: HTMLElement;\n containerWrapper?: HTMLElement;\n lineAnnotations?: DiffLineAnnotation<LAnnotation>[];\n renderRange?: RenderRange;\n}\nexport interface FileDiffHydrationProps<LAnnotation> extends Omit<FileDiffRenderProps<LAnnotation>, 'fileContainer'> {\n fileContainer: HTMLElement;\n prerenderedHTML?: string;\n}\nexport interface FileDiffOptions<LAnnotation> extends Omit<BaseDiffOptions, 'hunkSeparators'>, InteractionManagerBaseOptions<'diff'> {\n hunkSeparators?: Exclude<HunkSeparators, 'custom'> /**\n * @deprecated Custom hunk separator functions are deprecated and will be\n * removed in a future version.\n */ | ((hunk: HunkData, instance: FileDiff<LAnnotation>) => HTMLElement | DocumentFragment | null | undefined);\n disableFileHeader?: boolean;\n /**\n * @deprecated Use `enableGutterUtility` instead.\n */\n enableHoverUtility?: boolean;\n renderHeaderPrefix?: RenderHeaderPrefixCallback;\n renderHeaderMetadata?: RenderHeaderMetadataCallback;\n renderCustomHeader?: RenderHeaderMetadataCallback;\n /**\n * When true, errors during rendering are rethrown instead of being caught\n * and displayed in the DOM. Useful for testing or when you want to handle\n * errors yourself.\n */\n disableErrorHandling?: boolean;\n renderAnnotation?(annotation: DiffLineAnnotation<LAnnotation>): HTMLElement | undefined;\n renderGutterUtility?(getHoveredRow: () => GetHoveredLineResult<'diff'> | undefined): HTMLElement | null | undefined;\n /**\n * @deprecated Use `renderGutterUtility` instead.\n */\n renderHoverUtility?(getHoveredRow: () => GetHoveredLineResult<'diff'> | undefined): HTMLElement | null | undefined;\n onPostRender?(node: HTMLElement, instance: FileDiff<LAnnotation>): unknown;\n}\ninterface AnnotationElementCache<LAnnotation> {\n element: HTMLElement;\n annotation: DiffLineAnnotation<LAnnotation>;\n}\ninterface CustomHunkElementCache {\n element: HTMLElement;\n hunkData: HunkData;\n}\ninterface HydrationSetup<LAnnotation> {\n fileDiff: FileDiffMetadata | undefined;\n lineAnnotations: DiffLineAnnotation<LAnnotation>[] | undefined;\n oldFile?: FileContents;\n newFile?: FileContents;\n}\nexport declare class FileDiff<LAnnotation = undefined> {\n options: FileDiffOptions<LAnnotation>;\n protected workerManager?: WorkerPoolManager | undefined;\n protected isContainerManaged: boolean;\n static LoadedCustomComponent: boolean;\n readonly __id: string;\n protected fileContainer: HTMLElement | undefined;\n protected spriteSVG: SVGElement | undefined;\n protected pre: HTMLPreElement | undefined;\n protected codeUnified: HTMLElement | undefined;\n protected codeDeletions: HTMLElement | undefined;\n protected codeAdditions: HTMLElement | undefined;\n protected bufferBefore: HTMLElement | undefined;\n protected bufferAfter: HTMLElement | undefined;\n protected themeCSSStyle: HTMLStyleElement | undefined;\n protected appliedThemeCSS: AppliedThemeStyleCache | undefined;\n protected unsafeCSSStyle: HTMLStyleElement | undefined;\n protected appliedUnsafeCSS: string | undefined;\n protected gutterUtilityContent: HTMLElement | undefined;\n protected headerElement: HTMLElement | undefined;\n protected headerPrefix: HTMLElement | undefined;\n protected headerMetadata: HTMLElement | undefined;\n protected headerCustom: HTMLElement | undefined;\n protected separatorCache: Map<string, CustomHunkElementCache>;\n protected errorWrapper: HTMLElement | undefined;\n protected placeHolder: HTMLElement | undefined;\n protected hunksRenderer: DiffHunksRenderer<LAnnotation>;\n protected resizeManager: ResizeManager;\n protected scrollSyncManager: ScrollSyncManager;\n protected interactionManager: InteractionManager<'diff'>;\n protected annotationCache: Map<string, AnnotationElementCache<LAnnotation>>;\n protected lineAnnotations: DiffLineAnnotation<LAnnotation>[];\n protected deletionFile: FileContents | undefined;\n protected additionFile: FileContents | undefined;\n protected fileDiff: FileDiffMetadata | undefined;\n protected renderRange: RenderRange | undefined;\n protected appliedPreAttributes: PrePropertiesConfig | undefined;\n protected lastRenderedHeaderHTML: string | undefined;\n protected lastRowCount: number | undefined;\n protected enabled: boolean;\n constructor(options?: FileDiffOptions<LAnnotation>, workerManager?: WorkerPoolManager | undefined, isContainerManaged?: boolean);\n protected handleHighlightRender: () => void;\n protected getHunksRendererOptions(options: FileDiffOptions<LAnnotation>): DiffHunksRendererOptions;\n protected createHunksRenderer(options: FileDiffOptions<LAnnotation>): DiffHunksRenderer<LAnnotation>;\n getLineIndex: GetLineIndexUtility;\n setOptions(options: FileDiffOptions<LAnnotation> | undefined): void;\n private mergeOptions;\n setThemeType(themeType: ThemeTypes): void;\n getHoveredLine: () => {\n lineNumber: number;\n side: import(\"..\").AnnotationSide;\n } | undefined;\n setLineAnnotations(lineAnnotations: DiffLineAnnotation<LAnnotation>[]): void;\n private canPartiallyRender;\n setSelectedLines(range: SelectedLineRange | null): void;\n cleanUp(recycle?: boolean): void;\n virtualizedSetup(): void;\n hydrate(props: FileDiffHydrationProps<LAnnotation>): void;\n protected hydrateElements(fileContainer: HTMLElement, prerenderedHTML: string | undefined): void;\n protected hydrationSetup({ fileDiff, oldFile, newFile, lineAnnotations }: HydrationSetup<LAnnotation>): void;\n rerender(): void;\n handleExpandHunk: (hunkIndex: number, direction: ExpansionDirections, expansionLineCountOverride?: number | undefined) => void;\n expandHunk: (hunkIndex: number, direction: ExpansionDirections, expansionLineCountOverride?: number | undefined) => void;\n render({ oldFile, newFile, fileDiff, forceRender, preventEmit, lineAnnotations, fileContainer, containerWrapper, renderRange }: FileDiffRenderProps<LAnnotation>): boolean;\n protected emitPostRender(): void;\n private removeRenderedCode;\n private clearAuxiliaryNodes;\n renderPlaceholder(height: number): boolean;\n private cleanChildNodes;\n private renderSeparators;\n protected renderAnnotations(): void;\n protected renderGutterUtility(): void;\n protected getOrCreateFileContainer(fileContainer?: HTMLElement, parentNode?: HTMLElement): HTMLElement;\n protected getFileContainer(): HTMLElement | undefined;\n private getOrCreatePreNode;\n protected syncCodeNodesFromPre(pre: HTMLPreElement): void;\n private applyHeaderToDOM;\n private clearHeaderSlots;\n private upsertHeaderSlotElement;\n private replaceHeaderSlotContent;\n private createHeaderSlotElement;\n protected injectUnsafeCSS(): void;\n private applyThemeState;\n private applyHunksToDOM;\n private applyPartialRender;\n private insertPartialHTML;\n private renderPartialColumn;\n private mergeBuffersIfNecessary;\n private applyRowSpan;\n private trimColumnRows;\n private trimColumns;\n private getBufferSize;\n private updateBufferSize;\n private getCodeColumns;\n private applyBuffers;\n protected applyPreNodeAttributes(pre: HTMLPreElement, { additionsContentAST, deletionsContentAST, totalLines }: HunksRenderResult, customProperties?: CustomPreProperties): void;\n private applyErrorToDOM;\n private cleanupErrorWrapper;\n}\nexport {};\n//# sourceMappingURL=FileDiff.d.ts.map"],"mappings":"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"}
1
+ {"version":3,"file":"FileDiff.d.ts","names":["GetHoveredLineResult","GetLineIndexUtility","InteractionManager","InteractionManagerBaseOptions","SelectedLineRange","SelectionWriteOptions","ResizeManager","ScrollSyncManager","DiffHunksRenderer","DiffHunksRendererOptions","HunksRenderResult","AppliedThemeStyleCache","BaseDiffOptions","CustomPreProperties","DiffLineAnnotation","ExpansionDirections","FileContents","FileDiffMetadata","HunkData","HunkSeparators","PrePropertiesConfig","RenderHeaderMetadataCallback","RenderHeaderPrefixCallback","RenderRange","ThemeTypes","WorkerPoolManager","FileDiffRenderProps","LAnnotation","HTMLElement","FileDiffHydrationProps","Omit","FileDiffOptions","Exclude","FileDiff","DocumentFragment","AnnotationElementCache","CustomHunkElementCache","HydrationSetup","SVGElement","HTMLPreElement","HTMLStyleElement","Map","__0","AnnotationSide","fileDiff","oldFile","newFile","lineAnnotations","deferManagers","forceRender","preventEmit","fileContainer","containerWrapper","renderRange","additionsContentAST","deletionsContentAST","totalLines"],"sources":["../../src/components/FileDiff.d.ts"],"sourcesContent":["import { type GetHoveredLineResult, type GetLineIndexUtility, InteractionManager, type InteractionManagerBaseOptions, type SelectedLineRange, type SelectionWriteOptions } from '../managers/InteractionManager';\nimport { ResizeManager } from '../managers/ResizeManager';\nimport { ScrollSyncManager } from '../managers/ScrollSyncManager';\nimport { DiffHunksRenderer, type DiffHunksRendererOptions, type HunksRenderResult } from '../renderers/DiffHunksRenderer';\nimport type { AppliedThemeStyleCache, BaseDiffOptions, CustomPreProperties, DiffLineAnnotation, ExpansionDirections, FileContents, FileDiffMetadata, HunkData, HunkSeparators, PrePropertiesConfig, RenderHeaderMetadataCallback, RenderHeaderPrefixCallback, RenderRange, ThemeTypes } from '../types';\nimport type { WorkerPoolManager } from '../worker';\nexport interface FileDiffRenderProps<LAnnotation> {\n fileDiff?: FileDiffMetadata;\n oldFile?: FileContents;\n newFile?: FileContents;\n deferManagers?: boolean;\n forceRender?: boolean;\n preventEmit?: boolean;\n fileContainer?: HTMLElement;\n containerWrapper?: HTMLElement;\n lineAnnotations?: DiffLineAnnotation<LAnnotation>[];\n renderRange?: RenderRange;\n}\nexport interface FileDiffHydrationProps<LAnnotation> extends Omit<FileDiffRenderProps<LAnnotation>, 'fileContainer'> {\n fileContainer: HTMLElement;\n prerenderedHTML?: string;\n}\nexport interface FileDiffOptions<LAnnotation> extends Omit<BaseDiffOptions, 'hunkSeparators'>, InteractionManagerBaseOptions<'diff'> {\n hunkSeparators?: Exclude<HunkSeparators, 'custom'> /**\n * @deprecated Custom hunk separator functions are deprecated and will be\n * removed in a future version.\n */ | ((hunk: HunkData, instance: FileDiff<LAnnotation>) => HTMLElement | DocumentFragment | null | undefined);\n disableFileHeader?: boolean;\n renderHeaderPrefix?: RenderHeaderPrefixCallback;\n renderHeaderMetadata?: RenderHeaderMetadataCallback;\n renderCustomHeader?: RenderHeaderMetadataCallback;\n /**\n * When true, errors during rendering are rethrown instead of being caught\n * and displayed in the DOM. Useful for testing or when you want to handle\n * errors yourself.\n */\n disableErrorHandling?: boolean;\n renderAnnotation?(annotation: DiffLineAnnotation<LAnnotation>): HTMLElement | undefined;\n renderGutterUtility?(getHoveredRow: () => GetHoveredLineResult<'diff'> | undefined): HTMLElement | null | undefined;\n onPostRender?(node: HTMLElement, instance: FileDiff<LAnnotation>): unknown;\n}\ninterface AnnotationElementCache<LAnnotation> {\n element: HTMLElement;\n annotation: DiffLineAnnotation<LAnnotation>;\n}\ninterface CustomHunkElementCache {\n element: HTMLElement;\n hunkData: HunkData;\n}\ninterface HydrationSetup<LAnnotation> {\n fileDiff: FileDiffMetadata | undefined;\n lineAnnotations: DiffLineAnnotation<LAnnotation>[] | undefined;\n oldFile?: FileContents;\n newFile?: FileContents;\n}\nexport declare class FileDiff<LAnnotation = undefined> {\n options: FileDiffOptions<LAnnotation>;\n protected workerManager?: WorkerPoolManager | undefined;\n protected isContainerManaged: boolean;\n static LoadedCustomComponent: boolean;\n readonly __id: string;\n protected fileContainer: HTMLElement | undefined;\n protected spriteSVG: SVGElement | undefined;\n protected pre: HTMLPreElement | undefined;\n protected codeUnified: HTMLElement | undefined;\n protected codeDeletions: HTMLElement | undefined;\n protected codeAdditions: HTMLElement | undefined;\n protected bufferBefore: HTMLElement | undefined;\n protected bufferAfter: HTMLElement | undefined;\n protected themeCSSStyle: HTMLStyleElement | undefined;\n protected appliedThemeCSS: AppliedThemeStyleCache | undefined;\n protected unsafeCSSStyle: HTMLStyleElement | undefined;\n protected appliedUnsafeCSS: string | undefined;\n protected gutterUtilityContent: HTMLElement | undefined;\n protected headerElement: HTMLElement | undefined;\n protected headerPrefix: HTMLElement | undefined;\n protected headerMetadata: HTMLElement | undefined;\n protected headerCustom: HTMLElement | undefined;\n protected separatorCache: Map<string, CustomHunkElementCache>;\n protected errorWrapper: HTMLElement | undefined;\n protected placeHolder: HTMLElement | undefined;\n protected hunksRenderer: DiffHunksRenderer<LAnnotation>;\n protected resizeManager: ResizeManager;\n protected scrollSyncManager: ScrollSyncManager;\n protected interactionManager: InteractionManager<'diff'>;\n protected annotationCache: Map<string, AnnotationElementCache<LAnnotation>>;\n protected lineAnnotations: DiffLineAnnotation<LAnnotation>[];\n protected managersDirty: boolean;\n protected deletionFile: FileContents | undefined;\n protected additionFile: FileContents | undefined;\n protected fileDiff: FileDiffMetadata | undefined;\n protected renderRange: RenderRange | undefined;\n protected appliedPreAttributes: PrePropertiesConfig | undefined;\n protected lastRenderedHeaderHTML: string | undefined;\n protected lastRowCount: number | undefined;\n protected enabled: boolean;\n constructor(options?: FileDiffOptions<LAnnotation>, workerManager?: WorkerPoolManager | undefined, isContainerManaged?: boolean);\n protected handleHighlightRender: () => void;\n protected getHunksRendererOptions(options: FileDiffOptions<LAnnotation>): DiffHunksRendererOptions;\n protected createHunksRenderer(options: FileDiffOptions<LAnnotation>): DiffHunksRenderer<LAnnotation>;\n getLineIndex: GetLineIndexUtility;\n setOptions(options: FileDiffOptions<LAnnotation> | undefined): void;\n private mergeOptions;\n setThemeType(themeType: ThemeTypes): void;\n private applyCachedThemeState;\n private hasThemeChanged;\n getHoveredLine: () => {\n lineNumber: number;\n side: import(\"..\").AnnotationSide;\n } | undefined;\n setLineAnnotations(lineAnnotations: DiffLineAnnotation<LAnnotation>[]): void;\n private canPartiallyRender;\n setSelectedLines(range: SelectedLineRange | null, options?: SelectionWriteOptions): void;\n flushManagers(): void;\n cleanUp(recycle?: boolean): void;\n virtualizedSetup(): void;\n hydrate(props: FileDiffHydrationProps<LAnnotation>): void;\n protected hydrateElements(fileContainer: HTMLElement, prerenderedHTML: string | undefined): void;\n protected hydrationSetup({ fileDiff, oldFile, newFile, lineAnnotations }: HydrationSetup<LAnnotation>): void;\n rerender(): void;\n handleExpandHunk: (hunkIndex: number, direction: ExpansionDirections, expansionLineCountOverride?: number | undefined) => void;\n expandHunk: (hunkIndex: number, direction: ExpansionDirections, expansionLineCountOverride?: number | undefined) => void;\n render({ oldFile, newFile, fileDiff, deferManagers, forceRender, preventEmit, lineAnnotations, fileContainer, containerWrapper, renderRange }: FileDiffRenderProps<LAnnotation>): boolean;\n protected emitPostRender(): void;\n private removeRenderedCode;\n private clearAuxiliaryNodes;\n renderPlaceholder(height: number): boolean;\n private cleanChildNodes;\n private renderSeparators;\n protected renderAnnotations(): void;\n protected renderGutterUtility(): void;\n protected getOrCreateFileContainer(fileContainer?: HTMLElement, parentNode?: HTMLElement): HTMLElement;\n protected getFileContainer(): HTMLElement | undefined;\n private getOrCreatePreNode;\n protected syncCodeNodesFromPre(pre: HTMLPreElement): void;\n private applyHeaderToDOM;\n private clearHeaderSlots;\n private upsertHeaderSlotElement;\n private replaceHeaderSlotContent;\n private createHeaderSlotElement;\n protected injectUnsafeCSS(): void;\n private applyThemeState;\n private applyHunksToDOM;\n private applyPartialRender;\n private insertPartialHTML;\n private renderPartialColumn;\n private mergeBuffersIfNecessary;\n private applyRowSpan;\n private trimColumnRows;\n private trimColumns;\n private getBufferSize;\n private updateBufferSize;\n private getCodeColumns;\n private applyBuffers;\n protected shouldDisableVirtualizationBuffers(): boolean;\n protected applyPreNodeAttributes(pre: HTMLPreElement, { additionsContentAST, deletionsContentAST, totalLines }: HunksRenderResult, customProperties?: CustomPreProperties): void;\n private applyErrorToDOM;\n private cleanupErrorWrapper;\n}\nexport {};\n//# sourceMappingURL=FileDiff.d.ts.map"],"mappings":"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"}
@@ -2,6 +2,7 @@ import { CUSTOM_HEADER_SLOT_ID, DEFAULT_THEMES, DIFFS_TAG_NAME, EMPTY_RENDER_RAN
2
2
  import { InteractionManager, pluckInteractionOptions } from "../managers/InteractionManager.js";
3
3
  import { ResizeManager } from "../managers/ResizeManager.js";
4
4
  import { areRenderRangesEqual } from "../utils/areRenderRangesEqual.js";
5
+ import { areThemesEqual } from "../utils/areThemesEqual.js";
5
6
  import { getLineAnnotationName } from "../utils/getLineAnnotationName.js";
6
7
  import { SVGSpriteSheet } from "../sprite.js";
7
8
  import { areFilesEqual } from "../utils/areFilesEqual.js";
@@ -15,11 +16,11 @@ import { upsertHostThemeStyle } from "../utils/hostTheme.js";
15
16
  import { prerenderHTMLIfNecessary } from "../utils/prerenderHTMLIfNecessary.js";
16
17
  import { setPreNodeProperties } from "../utils/setWrapperNodeProps.js";
17
18
  import { DiffsContainerLoaded } from "./web-components.js";
19
+ import { parseDiffFromFile } from "../utils/parseDiffFromFile.js";
18
20
  import { ScrollSyncManager } from "../managers/ScrollSyncManager.js";
19
21
  import { DiffHunksRenderer } from "../renderers/DiffHunksRenderer.js";
20
22
  import { areDiffLineAnnotationsEqual } from "../utils/areDiffLineAnnotationsEqual.js";
21
23
  import { areHunkDataEqual } from "../utils/areHunkDataEqual.js";
22
- import { parseDiffFromFile } from "../utils/parseDiffFromFile.js";
23
24
  import { toHtml } from "hast-util-to-html";
24
25
 
25
26
  //#region src/components/FileDiff.ts
@@ -53,6 +54,7 @@ var FileDiff = class {
53
54
  interactionManager;
54
55
  annotationCache = /* @__PURE__ */ new Map();
55
56
  lineAnnotations = [];
57
+ managersDirty = false;
56
58
  deletionFile;
57
59
  additionFile;
58
60
  fileDiff;
@@ -153,8 +155,17 @@ var FileDiff = class {
153
155
  setThemeType(themeType) {
154
156
  if ((this.options.themeType ?? "system") === themeType) return;
155
157
  this.mergeOptions({ themeType });
156
- if (typeof this.options.theme === "string" || this.fileContainer == null || this.appliedThemeCSS == null) return;
158
+ this.applyCachedThemeState(themeType);
159
+ }
160
+ applyCachedThemeState(themeType) {
161
+ if (typeof this.options.theme === "string" || this.fileContainer == null || this.appliedThemeCSS == null) return false;
162
+ const effectiveThemeType = this.appliedThemeCSS.baseThemeType ?? themeType;
163
+ if (this.appliedThemeCSS.themeType === effectiveThemeType) return false;
157
164
  this.applyThemeState(this.fileContainer, this.appliedThemeCSS.themeStyles, themeType, this.appliedThemeCSS.baseThemeType);
165
+ return true;
166
+ }
167
+ hasThemeChanged() {
168
+ return this.appliedThemeCSS != null && !areThemesEqual(this.appliedThemeCSS.theme, this.options.theme ?? DEFAULT_THEMES);
158
169
  }
159
170
  getHoveredLine = () => {
160
171
  return this.interactionManager.getHoveredLine();
@@ -166,22 +177,33 @@ var FileDiff = class {
166
177
  if (forceRender || annotationsChanged || didContentChange || typeof this.options.hunkSeparators === "function") return false;
167
178
  return true;
168
179
  }
169
- setSelectedLines(range) {
170
- this.interactionManager.setSelection(range);
180
+ setSelectedLines(range, options) {
181
+ this.interactionManager.setSelection(range, options);
182
+ }
183
+ flushManagers() {
184
+ if (!this.managersDirty || this.pre == null) {
185
+ this.managersDirty = false;
186
+ return;
187
+ }
188
+ const { diffStyle = "split", overflow = "scroll" } = this.options;
189
+ this.interactionManager.setup(this.pre);
190
+ this.resizeManager.setup(this.pre, overflow === "wrap");
191
+ if (overflow === "scroll" && diffStyle === "split") this.scrollSyncManager.setup(this.pre, this.codeDeletions, this.codeAdditions);
192
+ else this.scrollSyncManager.cleanUp();
193
+ this.managersDirty = false;
171
194
  }
172
195
  cleanUp(recycle = false) {
173
196
  this.resizeManager.cleanUp();
174
197
  this.interactionManager.cleanUp();
175
198
  this.scrollSyncManager.cleanUp();
199
+ this.managersDirty = false;
176
200
  this.workerManager?.unsubscribeToThemeChanges(this);
177
201
  this.renderRange = void 0;
178
202
  if (!this.isContainerManaged) this.fileContainer?.remove();
179
- if (this.fileContainer?.shadowRoot != null) this.fileContainer.shadowRoot.innerHTML = "";
180
203
  this.fileContainer = void 0;
181
- if (this.pre != null) {
182
- this.pre.innerHTML = "";
183
- this.pre = void 0;
184
- }
204
+ this.lineAnnotations = [];
205
+ this.annotationCache.clear();
206
+ this.pre = void 0;
185
207
  this.codeUnified = void 0;
186
208
  this.codeDeletions = void 0;
187
209
  this.codeAdditions = void 0;
@@ -276,7 +298,6 @@ var FileDiff = class {
276
298
  this.fileContainer = fileContainer;
277
299
  }
278
300
  hydrationSetup({ fileDiff, oldFile, newFile, lineAnnotations }) {
279
- const { diffStyle = "split", overflow = "scroll" } = this.options;
280
301
  this.lineAnnotations = lineAnnotations ?? this.lineAnnotations;
281
302
  this.additionFile = newFile;
282
303
  this.deletionFile = oldFile;
@@ -286,9 +307,8 @@ var FileDiff = class {
286
307
  this.renderAnnotations();
287
308
  this.renderGutterUtility();
288
309
  this.injectUnsafeCSS();
289
- this.interactionManager.setup(this.pre);
290
- this.resizeManager.setup(this.pre, overflow === "wrap");
291
- if (overflow === "scroll" && diffStyle === "split") this.scrollSyncManager.setup(this.pre, this.codeDeletions, this.codeAdditions);
310
+ this.managersDirty = true;
311
+ this.flushManagers();
292
312
  }
293
313
  rerender() {
294
314
  if (!this.enabled || this.fileDiff == null && this.additionFile == null && this.deletionFile == null) return;
@@ -304,14 +324,15 @@ var FileDiff = class {
304
324
  this.hunksRenderer.expandHunk(hunkIndex, direction, expansionLineCountOverride);
305
325
  this.rerender();
306
326
  };
307
- render({ oldFile, newFile, fileDiff, forceRender = false, preventEmit = false, lineAnnotations, fileContainer, containerWrapper, renderRange }) {
327
+ render({ oldFile, newFile, fileDiff, deferManagers = false, forceRender = false, preventEmit = false, lineAnnotations, fileContainer, containerWrapper, renderRange }) {
308
328
  if (!this.enabled) throw new Error("FileDiff.render: attempting to call render after cleaned up");
309
- const { collapsed = false } = this.options;
329
+ const { collapsed = false, themeType = "system" } = this.options;
310
330
  const nextRenderRange = collapsed ? void 0 : renderRange;
331
+ const themeChanged = this.hasThemeChanged();
311
332
  const filesDidChange = oldFile != null && newFile != null && (!areFilesEqual(oldFile, this.deletionFile) || !areFilesEqual(newFile, this.additionFile));
312
333
  let diffDidChange = fileDiff != null && fileDiff !== this.fileDiff;
313
334
  const annotationsChanged = lineAnnotations != null && (lineAnnotations.length > 0 || this.lineAnnotations.length > 0) ? lineAnnotations !== this.lineAnnotations : false;
314
- if (!collapsed && areRenderRangesEqual(nextRenderRange, this.renderRange) && !forceRender && !annotationsChanged && (fileDiff != null && fileDiff === this.fileDiff || fileDiff == null && !filesDidChange)) return false;
335
+ if (!collapsed && areRenderRangesEqual(nextRenderRange, this.renderRange) && !forceRender && !annotationsChanged && !themeChanged && (fileDiff != null && fileDiff === this.fileDiff || fileDiff == null && !filesDidChange)) return this.applyCachedThemeState(themeType);
315
336
  const { renderRange: previousRenderRange } = this;
316
337
  this.renderRange = nextRenderRange;
317
338
  this.deletionFile = oldFile;
@@ -325,7 +346,7 @@ var FileDiff = class {
325
346
  if (this.fileDiff == null) return false;
326
347
  this.hunksRenderer.setOptions(this.getHunksRendererOptions(this.options));
327
348
  this.hunksRenderer.setLineAnnotations(this.lineAnnotations);
328
- const { diffStyle = "split", disableErrorHandling = false, disableFileHeader = false, overflow = "scroll", themeType = "system" } = this.options;
349
+ const { disableErrorHandling = false, disableFileHeader = false } = this.options;
329
350
  if (disableFileHeader) {
330
351
  if (this.headerElement != null) {
331
352
  this.headerElement.remove();
@@ -335,6 +356,7 @@ var FileDiff = class {
335
356
  this.clearHeaderSlots();
336
357
  }
337
358
  fileContainer = this.getOrCreateFileContainer(fileContainer, containerWrapper);
359
+ this.applyCachedThemeState(themeType);
338
360
  if (collapsed) {
339
361
  this.removeRenderedCode();
340
362
  this.clearAuxiliaryNodes();
@@ -354,7 +376,7 @@ var FileDiff = class {
354
376
  }
355
377
  try {
356
378
  const pre = this.getOrCreatePreNode(fileContainer);
357
- if (!(this.canPartiallyRender(forceRender, annotationsChanged, filesDidChange || diffDidChange) && this.applyPartialRender({
379
+ if (!(this.canPartiallyRender(forceRender, annotationsChanged, filesDidChange || diffDidChange || themeChanged) && this.applyPartialRender({
358
380
  previousRenderRange,
359
381
  renderRange: nextRenderRange
360
382
  }))) {
@@ -376,10 +398,8 @@ var FileDiff = class {
376
398
  this.injectUnsafeCSS();
377
399
  this.renderAnnotations();
378
400
  this.renderGutterUtility();
379
- this.interactionManager.setup(pre);
380
- this.resizeManager.setup(pre, overflow === "wrap");
381
- if (overflow === "scroll" && diffStyle === "split") this.scrollSyncManager.setup(pre, this.codeDeletions, this.codeAdditions);
382
- else this.scrollSyncManager.cleanUp();
401
+ this.managersDirty = true;
402
+ if (!deferManagers) this.flushManagers();
383
403
  } catch (error) {
384
404
  if (disableErrorHandling) throw error;
385
405
  console.error(error);
@@ -532,7 +552,7 @@ var FileDiff = class {
532
552
  }
533
553
  }
534
554
  renderGutterUtility() {
535
- const renderGutterUtility = this.options.renderGutterUtility ?? this.options.renderHoverUtility;
555
+ const { renderGutterUtility } = this.options;
536
556
  if (this.fileContainer == null || renderGutterUtility == null) {
537
557
  this.gutterUtilityContent?.remove();
538
558
  this.gutterUtilityContent = void 0;
@@ -683,13 +703,19 @@ var FileDiff = class {
683
703
  applyThemeState(container, themeStyles, themeType, baseThemeType) {
684
704
  const shadowRoot = container.shadowRoot ?? container.attachShadow({ mode: "open" });
685
705
  const effectiveThemeType = baseThemeType ?? themeType;
686
- if (this.themeCSSStyle?.parentNode === shadowRoot && this.appliedThemeCSS?.themeStyles === themeStyles && this.appliedThemeCSS.themeType === effectiveThemeType) return;
706
+ const currentTheme = this.options.theme ?? DEFAULT_THEMES;
707
+ const theme = typeof currentTheme === "string" ? currentTheme : { ...currentTheme };
708
+ if (this.themeCSSStyle?.parentNode === shadowRoot && this.appliedThemeCSS?.themeStyles === themeStyles && this.appliedThemeCSS.themeType === effectiveThemeType) {
709
+ this.appliedThemeCSS.theme = theme;
710
+ return;
711
+ }
687
712
  this.themeCSSStyle = upsertHostThemeStyle({
688
713
  shadowRoot,
689
714
  currentNode: this.themeCSSStyle,
690
715
  themeCSS: wrapThemeCSS(themeStyles, effectiveThemeType)
691
716
  });
692
717
  this.appliedThemeCSS = this.themeCSSStyle != null ? {
718
+ theme,
693
719
  themeStyles,
694
720
  themeType: effectiveThemeType,
695
721
  baseThemeType
@@ -953,6 +979,7 @@ var FileDiff = class {
953
979
  rowCount += totalRows;
954
980
  }
955
981
  preTrimCount -= rowsToRemove;
982
+ if (preTrimCount === 0 && newSize === 0) pendingMetadataTrim = true;
956
983
  } else if (hasPostTrim) {
957
984
  const bufferStart = visibleLineIndex;
958
985
  const bufferEnd = visibleLineIndex + totalRows - 1;
@@ -1030,8 +1057,7 @@ var FileDiff = class {
1030
1057
  }
1031
1058
  }
1032
1059
  applyBuffers(pre, renderRange) {
1033
- const { disableVirtualizationBuffers = false } = this.options;
1034
- if (disableVirtualizationBuffers || renderRange == null) {
1060
+ if (renderRange == null || this.shouldDisableVirtualizationBuffers()) {
1035
1061
  if (this.bufferBefore != null) {
1036
1062
  this.bufferBefore.remove();
1037
1063
  this.bufferBefore = void 0;
@@ -1067,6 +1093,9 @@ var FileDiff = class {
1067
1093
  this.bufferAfter = void 0;
1068
1094
  }
1069
1095
  }
1096
+ shouldDisableVirtualizationBuffers() {
1097
+ return this.options.disableVirtualizationBuffers ?? false;
1098
+ }
1070
1099
  applyPreNodeAttributes(pre, { additionsContentAST, deletionsContentAST, totalLines }, customProperties) {
1071
1100
  const { diffIndicators = "bars", disableBackground = false, disableLineNumbers = false, overflow = "scroll", diffStyle = "split" } = this.options;
1072
1101
  const preProperties = {
@@ -1085,15 +1114,13 @@ var FileDiff = class {
1085
1114
  }
1086
1115
  applyErrorToDOM(error, container) {
1087
1116
  this.cleanupErrorWrapper();
1088
- const pre = this.getOrCreatePreNode(container);
1089
- pre.innerHTML = "";
1090
- pre.remove();
1117
+ this.pre?.remove();
1091
1118
  this.pre = void 0;
1092
1119
  this.appliedPreAttributes = void 0;
1093
1120
  const shadowRoot = container.shadowRoot ?? container.attachShadow({ mode: "open" });
1094
1121
  this.errorWrapper ??= document.createElement("div");
1095
1122
  this.errorWrapper.dataset.errorWrapper = "";
1096
- this.errorWrapper.innerHTML = "";
1123
+ this.errorWrapper.textContent = "";
1097
1124
  shadowRoot.appendChild(this.errorWrapper);
1098
1125
  const errorMessage = document.createElement("div");
1099
1126
  errorMessage.dataset.errorMessage = "";