@pierre/diffs 1.1.8 → 1.1.9

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 (52) hide show
  1. package/dist/components/AdvancedVirtualizedFileDiff.d.ts.map +1 -1
  2. package/dist/components/UnresolvedFile.d.ts.map +1 -1
  3. package/dist/components/VirtulizerDevelopment.d.ts.map +1 -1
  4. package/dist/constants.d.ts.map +1 -1
  5. package/dist/index.d.ts +3 -3
  6. package/dist/managers/InteractionManager.d.ts +15 -2
  7. package/dist/managers/InteractionManager.d.ts.map +1 -1
  8. package/dist/managers/InteractionManager.js +143 -40
  9. package/dist/managers/InteractionManager.js.map +1 -1
  10. package/dist/react/index.d.ts +2 -2
  11. package/dist/react/types.d.ts.map +1 -1
  12. package/dist/renderers/DiffHunksRenderer.js +4 -1
  13. package/dist/renderers/DiffHunksRenderer.js.map +1 -1
  14. package/dist/renderers/FileRenderer.js +3 -1
  15. package/dist/renderers/FileRenderer.js.map +1 -1
  16. package/dist/ssr/FileDiffReact.js +1 -1
  17. package/dist/ssr/index.d.ts +2 -2
  18. package/dist/style.js +1 -1
  19. package/dist/style.js.map +1 -1
  20. package/dist/types.d.ts +15 -1
  21. package/dist/types.d.ts.map +1 -1
  22. package/dist/utils/areDiffRenderOptionsEqual.js +1 -1
  23. package/dist/utils/areDiffRenderOptionsEqual.js.map +1 -1
  24. package/dist/utils/createTransformerWithState.d.ts +1 -1
  25. package/dist/utils/createTransformerWithState.d.ts.map +1 -1
  26. package/dist/utils/createTransformerWithState.js +27 -2
  27. package/dist/utils/createTransformerWithState.js.map +1 -1
  28. package/dist/utils/renderDiffWithHighlighter.js +1 -1
  29. package/dist/utils/renderDiffWithHighlighter.js.map +1 -1
  30. package/dist/utils/renderFileWithHighlighter.d.ts +2 -1
  31. package/dist/utils/renderFileWithHighlighter.d.ts.map +1 -1
  32. package/dist/utils/renderFileWithHighlighter.js +2 -2
  33. package/dist/utils/renderFileWithHighlighter.js.map +1 -1
  34. package/dist/utils/shouldUseTokenTransformer.d.ts +9 -0
  35. package/dist/utils/shouldUseTokenTransformer.d.ts.map +1 -0
  36. package/dist/utils/shouldUseTokenTransformer.js +8 -0
  37. package/dist/utils/shouldUseTokenTransformer.js.map +1 -0
  38. package/dist/utils/wrapTokenFragments.d.ts +10 -0
  39. package/dist/utils/wrapTokenFragments.d.ts.map +1 -0
  40. package/dist/utils/wrapTokenFragments.js +82 -0
  41. package/dist/utils/wrapTokenFragments.js.map +1 -0
  42. package/dist/worker/WorkerPoolManager.d.ts +2 -0
  43. package/dist/worker/WorkerPoolManager.d.ts.map +1 -1
  44. package/dist/worker/WorkerPoolManager.js +6 -3
  45. package/dist/worker/WorkerPoolManager.js.map +1 -1
  46. package/dist/worker/types.d.ts +1 -0
  47. package/dist/worker/types.d.ts.map +1 -1
  48. package/dist/worker/worker-portable.js +133 -5
  49. package/dist/worker/worker-portable.js.map +1 -1
  50. package/dist/worker/worker.js +117 -5
  51. package/dist/worker/worker.js.map +1 -1
  52. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"AdvancedVirtualizedFileDiff.d.ts","names":["FileDiffMetadata","RenderRange","RenderWindow","VirtualFileMetrics","WorkerPoolManager","FileDiff","FileDiffOptions","RenderProps","HTMLElement","PositionProps","AdvancedVirtualizedFileDiff","LAnnotation","unifiedTop","splitTop","fileDiff","Partial","renderWindow","fileContainer"],"sources":["../../src/components/AdvancedVirtualizedFileDiff.d.ts"],"sourcesContent":["import type { FileDiffMetadata, RenderRange, RenderWindow, VirtualFileMetrics } from '../types';\nimport type { WorkerPoolManager } from '../worker';\nimport { FileDiff, type FileDiffOptions } from './FileDiff';\nexport type { FileDiffOptions };\ninterface RenderProps {\n fileContainer?: HTMLElement;\n renderWindow: RenderWindow;\n}\ninterface PositionProps {\n unifiedTop: number;\n splitTop: number;\n fileDiff: FileDiffMetadata;\n}\nexport declare class AdvancedVirtualizedFileDiff<LAnnotation = undefined> extends FileDiff<LAnnotation> {\n readonly __id: string;\n unifiedTop: number;\n splitTop: number;\n unifiedHeight: number;\n splitHeight: number;\n private metrics;\n fileDiff: FileDiffMetadata;\n renderedRange: RenderRange | undefined;\n constructor({ unifiedTop, splitTop, fileDiff }: PositionProps, options?: FileDiffOptions<LAnnotation>, metrics?: Partial<VirtualFileMetrics>, workerManager?: WorkerPoolManager | undefined);\n cleanUp(recycle?: boolean): void;\n private computeSize;\n virtualizedRender({ renderWindow, fileContainer }: RenderProps): void;\n private computeRenderRangeFromWindow;\n}\n//# sourceMappingURL=AdvancedVirtualizedFileDiff.d.ts.map"],"mappings":";;;;;;UAIUO,WAAAA;kBACUC;EADVD,YAAAA,EAEQL,YADEM;AACU;AAO9B,UALUC,aAAAA,CAKWC;EAAsEC,UAAAA,EAAAA,MAAAA;EAO7EX,QAAAA,EAAAA,MAAAA;EACKC,QAAAA,EAVLD,gBAUKC;;AACWY,cATTH,2BASSG,CAAAA,cAAAA,SAAAA,CAAAA,SAToDR,QASpDQ,CAT6DF,WAS7DE,CAAAA,CAAAA;EAAUC,SAAAA,IAAAA,EAAAA,MAAAA;EAAYL,UAAAA,EAAAA,MAAAA;EAAyCE,QAAAA,EAAAA,MAAAA;EAAhBL,aAAAA,EAAAA,MAAAA;EAAgDH,WAAAA,EAAAA,MAAAA;EAARY,QAAAA,OAAAA;EAA6CX,QAAAA,EAFpJJ,gBAEoJI;EAG1IY,aAAAA,EAJLf,WAIKe,GAAAA,SAAAA;EAAcC,WAAAA,CAAAA;IAAAA,UAAAA;IAAAA,QAAAA;IAAAA;EAAAA,CAAAA,EAHcR,aAGdQ,EAAAA,OAAAA,CAAAA,EAHuCX,eAGvCW,CAHuDN,WAGvDM,CAAAA,EAAAA,OAAAA,CAAAA,EAH+EF,OAG/EE,CAHuFd,kBAGvFc,CAAAA,EAAAA,aAAAA,CAAAA,EAH4Hb,iBAG5Ha,GAAAA,SAAAA;EAAiBV,OAAAA,CAAAA,OAAAA,CAAAA,EAAAA,OAAAA,CAAAA,EAAAA,IAAAA;EAZ2BF,QAAAA,WAAAA;EAAQ,iBAAA,CAAA;IAAA,YAAA;IAAA;EAAA,CAAA,EAYnCE,WAZmC,CAAA,EAAA,IAAA"}
1
+ {"version":3,"file":"AdvancedVirtualizedFileDiff.d.ts","names":["FileDiffMetadata","RenderRange","RenderWindow","VirtualFileMetrics","WorkerPoolManager","FileDiff","FileDiffOptions","RenderProps","HTMLElement","PositionProps","AdvancedVirtualizedFileDiff","LAnnotation","unifiedTop","splitTop","fileDiff","Partial","renderWindow","fileContainer"],"sources":["../../src/components/AdvancedVirtualizedFileDiff.d.ts"],"sourcesContent":["import type { FileDiffMetadata, RenderRange, RenderWindow, VirtualFileMetrics } from '../types';\nimport type { WorkerPoolManager } from '../worker';\nimport { FileDiff, type FileDiffOptions } from './FileDiff';\nexport type { FileDiffOptions };\ninterface RenderProps {\n fileContainer?: HTMLElement;\n renderWindow: RenderWindow;\n}\ninterface PositionProps {\n unifiedTop: number;\n splitTop: number;\n fileDiff: FileDiffMetadata;\n}\nexport declare class AdvancedVirtualizedFileDiff<LAnnotation = undefined> extends FileDiff<LAnnotation> {\n readonly __id: string;\n unifiedTop: number;\n splitTop: number;\n unifiedHeight: number;\n splitHeight: number;\n private metrics;\n fileDiff: FileDiffMetadata;\n renderedRange: RenderRange | undefined;\n constructor({ unifiedTop, splitTop, fileDiff }: PositionProps, options?: FileDiffOptions<LAnnotation>, metrics?: Partial<VirtualFileMetrics>, workerManager?: WorkerPoolManager | undefined);\n cleanUp(recycle?: boolean): void;\n private computeSize;\n virtualizedRender({ renderWindow, fileContainer }: RenderProps): void;\n private computeRenderRangeFromWindow;\n}\n//# sourceMappingURL=AdvancedVirtualizedFileDiff.d.ts.map"],"mappings":";;;;;;UAIUO,WAAAA;kBACUC;EADVD,YAAAA,EAEQL,YAFG;AAES;AAO9B,UALUO,aAAAA,CAKWC;EAAsEC,UAAAA,EAAAA,MAAAA;EAO7EX,QAAAA,EAAAA,MAAAA;EACKC,QAAAA,EAVLD,gBAUKC;;AACWY,cATTH,2BASSG,CAAAA,cAAAA,SAAAA,CAAAA,SAToDR,QASpDQ,CAT6DF,WAS7DE,CAAAA,CAAAA;EAAUC,SAAAA,IAAAA,EAAAA,MAAAA;EAAYL,UAAAA,EAAAA,MAAAA;EAAyCE,QAAAA,EAAAA,MAAAA;EAAhBL,aAAAA,EAAAA,MAAAA;EAAgDH,WAAAA,EAAAA,MAAAA;EAARY,QAAAA,OAAAA;EAA6CX,QAAAA,EAFpJJ,gBAEoJI;EAG1IY,aAAAA,EAJLf,WAIKe,GAAAA,SAAAA;EAAcC,WAAAA,CAAAA;IAAAA,UAAAA;IAAAA,QAAAA;IAAAA;EAAAA,CAAAA,EAHcR,aAGdQ,EAAAA,OAAAA,CAAAA,EAHuCX,eAGvCW,CAHuDN,WAGvDM,CAAAA,EAAAA,OAAAA,CAAAA,EAH+EF,OAG/EE,CAHuFd,kBAGvFc,CAAAA,EAAAA,aAAAA,CAAAA,EAH4Hb,iBAG5Ha,GAAAA,SAAAA;EAAiBV,OAAAA,CAAAA,OAAAA,CAAAA,EAAAA,OAAAA,CAAAA,EAAAA,IAAAA;EAZ2BF,QAAAA,WAAAA;EAAQ,iBAAA,CAAA;IAAA,YAAA;IAAA;EAAA,CAAA,EAYnCE,WAZmC,CAAA,EAAA,IAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"UnresolvedFile.d.ts","names":["HunksRenderResult","UnresolvedFileHunksRenderer","UnresolvedFileHunksRendererOptions","FileContents","FileDiffMetadata","MergeConflictActionPayload","MergeConflictMarkerRow","MergeConflictResolution","MergeConflictDiffAction","WorkerPoolManager","FileDiff","FileDiffOptions","FileDiffRenderProps","RenderMergeConflictActions","LAnnotation","UnresolvedFile","HTMLElement","DocumentFragment","MergeConflictActionsTypeOption","UnresolvedFileOptions","Omit","UnresolvedFileRenderProps","UnresolvedFileHydrationProps","GetOrComputeDiffProps","ResolveConflictReturn","UnresolvedFileDataCache","HTMLPreElement","getUnresolvedDiffHunksRendererOptions"],"sources":["../../src/components/UnresolvedFile.d.ts"],"sourcesContent":["import type { HunksRenderResult } from '../renderers/DiffHunksRenderer';\nimport { UnresolvedFileHunksRenderer, type UnresolvedFileHunksRendererOptions } from '../renderers/UnresolvedFileHunksRenderer';\nimport type { FileContents, FileDiffMetadata, MergeConflictActionPayload, MergeConflictMarkerRow, MergeConflictResolution } from '../types';\nimport { type MergeConflictDiffAction } from '../utils/parseMergeConflictDiffFromFile';\nimport type { WorkerPoolManager } from '../worker';\nimport { FileDiff, type FileDiffOptions, type FileDiffRenderProps } from './FileDiff';\nexport type RenderMergeConflictActions<LAnnotation> = (action: MergeConflictDiffAction, instance: UnresolvedFile<LAnnotation>) => HTMLElement | DocumentFragment | null | undefined;\nexport type MergeConflictActionsTypeOption<LAnnotation> = 'none' | 'default' | RenderMergeConflictActions<LAnnotation>;\nexport interface UnresolvedFileOptions<LAnnotation> extends Omit<FileDiffOptions<LAnnotation>, 'diffStyle'> {\n onPostRender?(node: HTMLElement, instance: UnresolvedFile<LAnnotation>): unknown;\n mergeConflictActionsType?: MergeConflictActionsTypeOption<LAnnotation>;\n onMergeConflictAction?(payload: MergeConflictActionPayload, instance: UnresolvedFile<LAnnotation>): void;\n onMergeConflictResolve?(file: FileContents, payload: MergeConflictActionPayload): void;\n maxContextLines?: number;\n}\nexport interface UnresolvedFileRenderProps<LAnnotation> extends Omit<FileDiffRenderProps<LAnnotation>, 'oldFile' | 'newFile'> {\n file?: FileContents;\n actions?: (MergeConflictDiffAction | undefined)[];\n markerRows?: MergeConflictMarkerRow[];\n}\nexport interface UnresolvedFileHydrationProps<LAnnotation> extends Omit<UnresolvedFileRenderProps<LAnnotation>, 'file'> {\n file?: FileContents;\n fileContainer: HTMLElement;\n prerenderedHTML?: string;\n}\ninterface GetOrComputeDiffProps {\n file: FileContents | undefined;\n fileDiff: FileDiffMetadata | undefined;\n actions: (MergeConflictDiffAction | undefined)[] | undefined;\n markerRows: MergeConflictMarkerRow[] | undefined;\n}\ninterface ResolveConflictReturn {\n file: FileContents;\n fileDiff: FileDiffMetadata;\n actions: (MergeConflictDiffAction | undefined)[];\n markerRows: MergeConflictMarkerRow[];\n}\ntype UnresolvedFileDataCache = GetOrComputeDiffProps;\nexport declare class UnresolvedFile<LAnnotation = undefined> extends FileDiff<LAnnotation> {\n options: UnresolvedFileOptions<LAnnotation>;\n readonly __id: string;\n protected computedCache: UnresolvedFileDataCache;\n private conflictActions;\n private markerRows;\n private conflictActionCache;\n constructor(options?: UnresolvedFileOptions<LAnnotation>, workerManager?: WorkerPoolManager | undefined, isContainerManaged?: boolean);\n setOptions(options: UnresolvedFileOptions<LAnnotation> | undefined): void;\n protected createHunksRenderer(options: UnresolvedFileOptions<LAnnotation>): UnresolvedFileHunksRenderer<LAnnotation>;\n protected getHunksRendererOptions(options: UnresolvedFileOptions<LAnnotation>): UnresolvedFileHunksRendererOptions;\n protected applyPreNodeAttributes(pre: HTMLPreElement, result: HunksRenderResult): void;\n cleanUp(): void;\n private getOrComputeDiff;\n hydrate(props: UnresolvedFileHydrationProps<LAnnotation>): void;\n rerender(): void;\n render(props?: UnresolvedFileRenderProps<LAnnotation>): boolean;\n resolveConflict(conflictIndex: number, resolution: MergeConflictResolution, fileDiff?: FileDiffMetadata | undefined): ResolveConflictReturn | undefined;\n private resolveConflictAndRender;\n private setActiveMergeConflictState;\n private handleMergeConflictActionClick;\n private renderMergeConflictActionSlots;\n private renderMergeConflictAction;\n private clearMergeConflictActionCache;\n}\nexport declare function getUnresolvedDiffHunksRendererOptions<LAnnotation>(options?: UnresolvedFileOptions<LAnnotation>, baseOptions?: UnresolvedFileOptions<LAnnotation>): UnresolvedFileHunksRendererOptions;\nexport {};\n//# sourceMappingURL=UnresolvedFile.d.ts.map"],"mappings":"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"}
1
+ {"version":3,"file":"UnresolvedFile.d.ts","names":["HunksRenderResult","UnresolvedFileHunksRenderer","UnresolvedFileHunksRendererOptions","FileContents","FileDiffMetadata","MergeConflictActionPayload","MergeConflictMarkerRow","MergeConflictResolution","MergeConflictDiffAction","WorkerPoolManager","FileDiff","FileDiffOptions","FileDiffRenderProps","RenderMergeConflictActions","LAnnotation","UnresolvedFile","HTMLElement","DocumentFragment","MergeConflictActionsTypeOption","UnresolvedFileOptions","Omit","UnresolvedFileRenderProps","UnresolvedFileHydrationProps","GetOrComputeDiffProps","ResolveConflictReturn","UnresolvedFileDataCache","HTMLPreElement","getUnresolvedDiffHunksRendererOptions"],"sources":["../../src/components/UnresolvedFile.d.ts"],"sourcesContent":["import type { HunksRenderResult } from '../renderers/DiffHunksRenderer';\nimport { UnresolvedFileHunksRenderer, type UnresolvedFileHunksRendererOptions } from '../renderers/UnresolvedFileHunksRenderer';\nimport type { FileContents, FileDiffMetadata, MergeConflictActionPayload, MergeConflictMarkerRow, MergeConflictResolution } from '../types';\nimport { type MergeConflictDiffAction } from '../utils/parseMergeConflictDiffFromFile';\nimport type { WorkerPoolManager } from '../worker';\nimport { FileDiff, type FileDiffOptions, type FileDiffRenderProps } from './FileDiff';\nexport type RenderMergeConflictActions<LAnnotation> = (action: MergeConflictDiffAction, instance: UnresolvedFile<LAnnotation>) => HTMLElement | DocumentFragment | null | undefined;\nexport type MergeConflictActionsTypeOption<LAnnotation> = 'none' | 'default' | RenderMergeConflictActions<LAnnotation>;\nexport interface UnresolvedFileOptions<LAnnotation> extends Omit<FileDiffOptions<LAnnotation>, 'diffStyle'> {\n onPostRender?(node: HTMLElement, instance: UnresolvedFile<LAnnotation>): unknown;\n mergeConflictActionsType?: MergeConflictActionsTypeOption<LAnnotation>;\n onMergeConflictAction?(payload: MergeConflictActionPayload, instance: UnresolvedFile<LAnnotation>): void;\n onMergeConflictResolve?(file: FileContents, payload: MergeConflictActionPayload): void;\n maxContextLines?: number;\n}\nexport interface UnresolvedFileRenderProps<LAnnotation> extends Omit<FileDiffRenderProps<LAnnotation>, 'oldFile' | 'newFile'> {\n file?: FileContents;\n actions?: (MergeConflictDiffAction | undefined)[];\n markerRows?: MergeConflictMarkerRow[];\n}\nexport interface UnresolvedFileHydrationProps<LAnnotation> extends Omit<UnresolvedFileRenderProps<LAnnotation>, 'file'> {\n file?: FileContents;\n fileContainer: HTMLElement;\n prerenderedHTML?: string;\n}\ninterface GetOrComputeDiffProps {\n file: FileContents | undefined;\n fileDiff: FileDiffMetadata | undefined;\n actions: (MergeConflictDiffAction | undefined)[] | undefined;\n markerRows: MergeConflictMarkerRow[] | undefined;\n}\ninterface ResolveConflictReturn {\n file: FileContents;\n fileDiff: FileDiffMetadata;\n actions: (MergeConflictDiffAction | undefined)[];\n markerRows: MergeConflictMarkerRow[];\n}\ntype UnresolvedFileDataCache = GetOrComputeDiffProps;\nexport declare class UnresolvedFile<LAnnotation = undefined> extends FileDiff<LAnnotation> {\n options: UnresolvedFileOptions<LAnnotation>;\n readonly __id: string;\n protected computedCache: UnresolvedFileDataCache;\n private conflictActions;\n private markerRows;\n private conflictActionCache;\n constructor(options?: UnresolvedFileOptions<LAnnotation>, workerManager?: WorkerPoolManager | undefined, isContainerManaged?: boolean);\n setOptions(options: UnresolvedFileOptions<LAnnotation> | undefined): void;\n protected createHunksRenderer(options: UnresolvedFileOptions<LAnnotation>): UnresolvedFileHunksRenderer<LAnnotation>;\n protected getHunksRendererOptions(options: UnresolvedFileOptions<LAnnotation>): UnresolvedFileHunksRendererOptions;\n protected applyPreNodeAttributes(pre: HTMLPreElement, result: HunksRenderResult): void;\n cleanUp(): void;\n private getOrComputeDiff;\n hydrate(props: UnresolvedFileHydrationProps<LAnnotation>): void;\n rerender(): void;\n render(props?: UnresolvedFileRenderProps<LAnnotation>): boolean;\n resolveConflict(conflictIndex: number, resolution: MergeConflictResolution, fileDiff?: FileDiffMetadata | undefined): ResolveConflictReturn | undefined;\n private resolveConflictAndRender;\n private setActiveMergeConflictState;\n private handleMergeConflictActionClick;\n private renderMergeConflictActionSlots;\n private renderMergeConflictAction;\n private clearMergeConflictActionCache;\n}\nexport declare function getUnresolvedDiffHunksRendererOptions<LAnnotation>(options?: UnresolvedFileOptions<LAnnotation>, baseOptions?: UnresolvedFileOptions<LAnnotation>): UnresolvedFileHunksRendererOptions;\nexport {};\n//# sourceMappingURL=UnresolvedFile.d.ts.map"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"VirtulizerDevelopment.d.ts","names":["AdvancedVirtualizer","Virtualizer","_0","sideEffect"],"sources":["../../src/components/VirtulizerDevelopment.d.ts"],"sourcesContent":["import type { AdvancedVirtualizer } from './AdvancedVirtualizer';\nimport type { Virtualizer } from './Virtualizer';\n\n// FIXME(amadeus): REMOVE ME AFTER RELEASING VIRTUALIZATION\ndeclare global {\n interface Window {\n // oxlint-disable-next-line typescript/no-explicit-any\n __INSTANCE?: AdvancedVirtualizer<any> | Virtualizer;\n __TOGGLE?: () => void;\n __LOG?: boolean;\n }\n}\n"],"mappings":";;;;;AACiD,QAAAE,MAAA,CAAA;EAAA,UAAA,MAAA,CAAA;;IAMMC,UAAAD,CAAA,EAAtCF,mBAAsC,CAAA,GAAA,CAAA,GAAXC,WAAW;IAAA,QAAA,CAAA,EAAA,GAAA,GAAA,IAAA"}
1
+ {"version":3,"file":"VirtulizerDevelopment.d.ts","names":["AdvancedVirtualizer","Virtualizer","_1","sideEffect"],"sources":["../../src/components/VirtulizerDevelopment.d.ts"],"sourcesContent":["import type { AdvancedVirtualizer } from './AdvancedVirtualizer';\nimport type { Virtualizer } from './Virtualizer';\n\n// FIXME(amadeus): REMOVE ME AFTER RELEASING VIRTUALIZATION\ndeclare global {\n interface Window {\n // oxlint-disable-next-line typescript/no-explicit-any\n __INSTANCE?: AdvancedVirtualizer<any> | Virtualizer;\n __TOGGLE?: () => void;\n __LOG?: boolean;\n }\n}\n"],"mappings":";;;;;AACiD,QAAAE,MAAA,CAAA;EAAA,UAAA,MAAA,CAAA;;IAMMC,UAAAD,CAAA,EAAtCF,mBAAsC,CAAA,GAAA,CAAA,GAAXC,WAAW;IAAA,QAAA,CAAA,EAAA,GAAA,GAAA,IAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","names":["HunkExpansionRegion","RenderRange","ThemesType","VirtualFileMetrics","DIFFS_TAG_NAME","COMMIT_METADATA_SPLIT","RegExp","GIT_DIFF_FILE_BREAK_REGEX","UNIFIED_DIFF_FILE_BREAK_REGEX","FILE_CONTEXT_BLOB","HUNK_HEADER","SPLIT_WITH_NEWLINES","FILENAME_HEADER_REGEX","FILENAME_HEADER_REGEX_GIT","ALTERNATE_FILE_NAMES_GIT","INDEX_LINE_METADATA","MERGE_CONFLICT_START_MARKER_REGEX","MERGE_CONFLICT_BASE_MARKER_REGEX","MERGE_CONFLICT_SEPARATOR_MARKER_REGEX","MERGE_CONFLICT_END_MARKER_REGEX","HEADER_PREFIX_SLOT_ID","HEADER_METADATA_SLOT_ID","CUSTOM_HEADER_SLOT_ID","DEFAULT_THEMES","THEME_CSS_ATTRIBUTE","UNSAFE_CSS_ATTRIBUTE","CORE_CSS_ATTRIBUTE","DEFAULT_COLLAPSED_CONTEXT_THRESHOLD","DEFAULT_VIRTUAL_FILE_METRICS","DEFAULT_EXPANDED_REGION","DEFAULT_RENDER_RANGE","EMPTY_RENDER_RANGE"],"sources":["../src/constants.d.ts"],"sourcesContent":["import type { HunkExpansionRegion, RenderRange, ThemesType, VirtualFileMetrics } from './types';\nexport declare const DIFFS_TAG_NAME: \"diffs-container\";\nexport declare const COMMIT_METADATA_SPLIT: RegExp;\nexport declare const GIT_DIFF_FILE_BREAK_REGEX: RegExp;\nexport declare const UNIFIED_DIFF_FILE_BREAK_REGEX: RegExp;\nexport declare const FILE_CONTEXT_BLOB: RegExp;\nexport declare const HUNK_HEADER: RegExp;\nexport declare const SPLIT_WITH_NEWLINES: RegExp;\nexport declare const FILENAME_HEADER_REGEX: RegExp;\nexport declare const FILENAME_HEADER_REGEX_GIT: RegExp;\nexport declare const ALTERNATE_FILE_NAMES_GIT: RegExp;\nexport declare const INDEX_LINE_METADATA: RegExp;\nexport declare const MERGE_CONFLICT_START_MARKER_REGEX: RegExp;\nexport declare const MERGE_CONFLICT_BASE_MARKER_REGEX: RegExp;\nexport declare const MERGE_CONFLICT_SEPARATOR_MARKER_REGEX: RegExp;\nexport declare const MERGE_CONFLICT_END_MARKER_REGEX: RegExp;\nexport declare const HEADER_PREFIX_SLOT_ID = \"header-prefix\";\nexport declare const HEADER_METADATA_SLOT_ID = \"header-metadata\";\nexport declare const CUSTOM_HEADER_SLOT_ID = \"header-custom\";\nexport declare const DEFAULT_THEMES: ThemesType;\nexport declare const THEME_CSS_ATTRIBUTE = \"data-theme-css\";\nexport declare const UNSAFE_CSS_ATTRIBUTE = \"data-unsafe-css\";\nexport declare const CORE_CSS_ATTRIBUTE = \"data-core-css\";\nexport declare const DEFAULT_COLLAPSED_CONTEXT_THRESHOLD = 1;\nexport declare const DEFAULT_VIRTUAL_FILE_METRICS: VirtualFileMetrics;\nexport declare const DEFAULT_EXPANDED_REGION: HunkExpansionRegion;\nexport declare const DEFAULT_RENDER_RANGE: RenderRange;\nexport declare const EMPTY_RENDER_RANGE: RenderRange;\n//# sourceMappingURL=constants.d.ts.map"],"mappings":";;;cACqBI;cACAC,uBAAuBC;AADvBF,cAEAG,yBAFiC,EAEND,MAFM;AACjCD,cAEAG,6BAF6B,EAEEF,MAFF;AAC7BC,cAEAE,iBAFiC,EAEdH,MAFQA;AAC3BE,cAEAE,WAFAF,EAEaF,MAFwB;AACrCG,cAEAE,mBAFmBL,EAEEA,MAFI;AACzBI,cAEAE,qBAFmB,EAEIN,MAFJ;AACnBK,cAEAE,yBAF2B,EAEAP,MAFA;AAC3BM,cAEAE,wBAFuBR,EAEGA,MAFG;AAC7BO,cAEAE,mBAFiC,EAEZT,MAFMA;AAC3BQ,cAEAE,iCAFgC,EAEGV,MAFH;AAChCS,cAEAE,gCAF2B,EAEOX,MAFP;AAC3BU,cAEAE,qCAFmCZ,EAEIA,MAFE;AACzCW,cAEAE,+BAFkCb,EAEDA,MAFO;AACxCY,cAEAE,qBAAAA,GAF6C,eAANd;AACvCa,cAEAE,uBAAAA,GAFuC,iBAAA;AACvCD,cAEAE,qBAAAA,GAFqB,eAAA;AACrBD,cAEAE,cAFuB,EAEPrB,UAFO;AACvBoB,cAEAE,mBAAAA,GAFqB,gBAAA;AACrBD,cAEAE,oBAAAA,GAFgBvB,iBAAU;AAC1BsB,cAEAE,kBAAAA,GAFmB,eAAA;AACnBD,cAEAE,mCAAAA,GAFoB,CAAA;AACpBD,cAEAE,4BAFkB,EAEYzB,kBAFZ;AAClBwB,cAEAE,uBAFmC,EAEV7B,mBAFU;AACnC4B,cAEAE,oBAFgD,EAE1B7B,WAFQE;AAC9B0B,cAEAE,kBAF4C,EAExB9B,WAFKD"}
1
+ {"version":3,"file":"constants.d.ts","names":["HunkExpansionRegion","RenderRange","ThemesType","VirtualFileMetrics","DIFFS_TAG_NAME","COMMIT_METADATA_SPLIT","RegExp","GIT_DIFF_FILE_BREAK_REGEX","UNIFIED_DIFF_FILE_BREAK_REGEX","FILE_CONTEXT_BLOB","HUNK_HEADER","SPLIT_WITH_NEWLINES","FILENAME_HEADER_REGEX","FILENAME_HEADER_REGEX_GIT","ALTERNATE_FILE_NAMES_GIT","INDEX_LINE_METADATA","MERGE_CONFLICT_START_MARKER_REGEX","MERGE_CONFLICT_BASE_MARKER_REGEX","MERGE_CONFLICT_SEPARATOR_MARKER_REGEX","MERGE_CONFLICT_END_MARKER_REGEX","HEADER_PREFIX_SLOT_ID","HEADER_METADATA_SLOT_ID","CUSTOM_HEADER_SLOT_ID","DEFAULT_THEMES","THEME_CSS_ATTRIBUTE","UNSAFE_CSS_ATTRIBUTE","CORE_CSS_ATTRIBUTE","DEFAULT_COLLAPSED_CONTEXT_THRESHOLD","DEFAULT_VIRTUAL_FILE_METRICS","DEFAULT_EXPANDED_REGION","DEFAULT_RENDER_RANGE","EMPTY_RENDER_RANGE"],"sources":["../src/constants.d.ts"],"sourcesContent":["import type { HunkExpansionRegion, RenderRange, ThemesType, VirtualFileMetrics } from './types';\nexport declare const DIFFS_TAG_NAME: \"diffs-container\";\nexport declare const COMMIT_METADATA_SPLIT: RegExp;\nexport declare const GIT_DIFF_FILE_BREAK_REGEX: RegExp;\nexport declare const UNIFIED_DIFF_FILE_BREAK_REGEX: RegExp;\nexport declare const FILE_CONTEXT_BLOB: RegExp;\nexport declare const HUNK_HEADER: RegExp;\nexport declare const SPLIT_WITH_NEWLINES: RegExp;\nexport declare const FILENAME_HEADER_REGEX: RegExp;\nexport declare const FILENAME_HEADER_REGEX_GIT: RegExp;\nexport declare const ALTERNATE_FILE_NAMES_GIT: RegExp;\nexport declare const INDEX_LINE_METADATA: RegExp;\nexport declare const MERGE_CONFLICT_START_MARKER_REGEX: RegExp;\nexport declare const MERGE_CONFLICT_BASE_MARKER_REGEX: RegExp;\nexport declare const MERGE_CONFLICT_SEPARATOR_MARKER_REGEX: RegExp;\nexport declare const MERGE_CONFLICT_END_MARKER_REGEX: RegExp;\nexport declare const HEADER_PREFIX_SLOT_ID = \"header-prefix\";\nexport declare const HEADER_METADATA_SLOT_ID = \"header-metadata\";\nexport declare const CUSTOM_HEADER_SLOT_ID = \"header-custom\";\nexport declare const DEFAULT_THEMES: ThemesType;\nexport declare const THEME_CSS_ATTRIBUTE = \"data-theme-css\";\nexport declare const UNSAFE_CSS_ATTRIBUTE = \"data-unsafe-css\";\nexport declare const CORE_CSS_ATTRIBUTE = \"data-core-css\";\nexport declare const DEFAULT_COLLAPSED_CONTEXT_THRESHOLD = 1;\nexport declare const DEFAULT_VIRTUAL_FILE_METRICS: VirtualFileMetrics;\nexport declare const DEFAULT_EXPANDED_REGION: HunkExpansionRegion;\nexport declare const DEFAULT_RENDER_RANGE: RenderRange;\nexport declare const EMPTY_RENDER_RANGE: RenderRange;\n//# sourceMappingURL=constants.d.ts.map"],"mappings":";;;cACqBI;cACAC,uBAAuBC;AADvBF,cAEAG,yBAFiC,EAEND,MAFM;AACjCD,cAEAG,6BAF6B,EAEEF,MAFF;AAC7BC,cAEAE,iBAFiC,EAEdH,MAFQA;AAC3BE,cAEAE,WAFAF,EAEaF,MAFwB;AACrCG,cAEAE,mBAFmBL,EAEEA,MAFI;AACzBI,cAEAE,qBAFmB,EAEIN,MAFJ;AACnBK,cAEAE,yBAF2B,EAEAP,MAFA;AAC3BM,cAEAE,wBAFuBR,EAEGA,MAFG;AAC7BO,cAEAE,mBAFiC,EAEZT,MAFMA;AAC3BQ,cAEAE,iCAFgC,EAEGV,MAFH;AAChCS,cAEAE,gCAF2B,EAEOX,MAFP;AAC3BU,cAEAE,qCAFmCZ,EAEIA,MAFE;AACzCW,cAEAE,+BAFkCb,EAEDA,MAFO;AACxCY,cAEAE,qBAAAA,GAF6C,eAANd;AACvCa,cAEAE,uBAAAA,GAFuC,iBAAA;AACvCD,cAEAE,qBAAAA,GAFqB,eAAA;AACrBD,cAEAE,cAFuB,EAEPrB,UAFO;AACvBoB,cAEAE,mBAAAA,GAFqB,gBAAA;AACrBD,cAEAE,oBAAAA,GAF0B,iBAAA;AAC1BD,cAEAE,kBAAAA,GAFmB,eAAA;AACnBD,cAEAE,mCAAAA,GAFoB,CAAA;AACpBD,cAEAE,4BAFkB,EAEYzB,kBAFZ;AAClBwB,cAEAE,uBAFmC,EAEV7B,mBAFU;AACnC4B,cAEAE,oBAFgD,EAE1B7B,WAFQE;AAC9B0B,cAEAE,kBAF4C,EAExB9B,WAFKD"}
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { AnnotationLineMap, AnnotationSide, AnnotationSpan, AppliedThemeStyleCache, BaseCodeOptions, BaseDiffOptions, BaseDiffOptionsWithDefaults, BundledLanguage, ChangeContent, ChangeTypes, CodeColumnType, CodeToHastOptions, ConflictResolverTypes, ContextContent, CreatePatchOptionsNonabortable, CustomPreProperties, DecorationItem, DiffAcceptRejectHunkConfig, DiffAcceptRejectHunkType, DiffLineAnnotation, DiffLineEventBaseProps, DiffsHighlighter, DiffsThemeNames, ExpansionDirections, ExtensionFormatMap, FileContents, FileDiffMetadata, FileHeaderRenderMode, ForceDiffPlainTextOptions, ForceFilePlainTextOptions, GapSpan, HighlighterTypes, Hunk, HunkData, HunkExpansionRegion, HunkLineType, HunkSeparators, LanguageRegistration, LineAnnotation, LineDiffTypes, LineEventBaseProps, LineInfo, LineSpans, LineTypes, MergeConflictActionPayload, MergeConflictMarkerRow, MergeConflictMarkerRowType, MergeConflictRegion, MergeConflictResolution, ObservedAnnotationNodes, ObservedGridNodes, ParsedPatch, PrePropertiesConfig, ProcessFileConflictData, RenderDiffFilesResult, RenderDiffOptions, RenderDiffResult, RenderFileMetadata, RenderFileOptions, RenderFileResult, RenderHeaderMetadataCallback, RenderHeaderPrefixCallback, RenderRange, RenderWindow, RenderedDiffASTCache, RenderedFileASTCache, SelectionPoint, SelectionSide, SharedRenderState, ShikiTransformer, SupportedLanguages, ThemeRegistrationResolved, ThemeTypes, ThemedDiffResult, ThemedFileResult, ThemedToken, ThemesType, VirtualFileMetrics, VirtualWindowSpecs } from "./types.js";
2
- import { GetHoveredLineResult, GetLineIndexUtility, InteractionManager, InteractionManagerBaseOptions, InteractionManagerMode, InteractionManagerOptions, LogTypes, MergeConflictActionTarget, OnDiffLineClickProps, OnDiffLineEnterLeaveProps, OnLineClickProps, OnLineEnterLeaveProps, SelectedLineRange, pluckInteractionOptions } from "./managers/InteractionManager.js";
1
+ import { AnnotationLineMap, AnnotationSide, AnnotationSpan, AppliedThemeStyleCache, BaseCodeOptions, BaseDiffOptions, BaseDiffOptionsWithDefaults, BundledLanguage, ChangeContent, ChangeTypes, CodeColumnType, CodeToHastOptions, ConflictResolverTypes, ContextContent, CreatePatchOptionsNonabortable, CustomPreProperties, DecorationItem, DiffAcceptRejectHunkConfig, DiffAcceptRejectHunkType, DiffLineAnnotation, DiffLineEventBaseProps, DiffTokenEventBaseProps, DiffsHighlighter, DiffsThemeNames, ExpansionDirections, ExtensionFormatMap, FileContents, FileDiffMetadata, FileHeaderRenderMode, ForceDiffPlainTextOptions, ForceFilePlainTextOptions, GapSpan, HighlighterTypes, Hunk, HunkData, HunkExpansionRegion, HunkLineType, HunkSeparators, LanguageRegistration, LineAnnotation, LineDiffTypes, LineEventBaseProps, LineInfo, LineSpans, LineTypes, MergeConflictActionPayload, MergeConflictMarkerRow, MergeConflictMarkerRowType, MergeConflictRegion, MergeConflictResolution, ObservedAnnotationNodes, ObservedGridNodes, ParsedPatch, PrePropertiesConfig, ProcessFileConflictData, RenderDiffFilesResult, RenderDiffOptions, RenderDiffResult, RenderFileMetadata, RenderFileOptions, RenderFileResult, RenderHeaderMetadataCallback, RenderHeaderPrefixCallback, RenderRange, RenderWindow, RenderedDiffASTCache, RenderedFileASTCache, SelectionPoint, SelectionSide, SharedRenderState, ShikiTransformer, SupportedLanguages, ThemeRegistrationResolved, ThemeTypes, ThemedDiffResult, ThemedFileResult, ThemedToken, ThemesType, TokenEventBase, VirtualFileMetrics, VirtualWindowSpecs } from "./types.js";
2
+ import { GetHoveredLineResult, GetLineIndexUtility, InteractionManager, InteractionManagerBaseOptions, InteractionManagerMode, InteractionManagerOptions, LogTypes, MergeConflictActionTarget, OnDiffLineClickProps, OnDiffLineEnterLeaveProps, OnLineClickProps, OnLineEnterLeaveProps, OnTokenEventProps, SelectedLineRange, pluckInteractionOptions } from "./managers/InteractionManager.js";
3
3
  import { ResizeManager } from "./managers/ResizeManager.js";
4
4
  import { FileRenderResult, FileRenderer, FileRendererOptions } from "./renderers/FileRenderer.js";
5
5
  import { File, FileHydrateProps, FileOptions, FileRenderProps } from "./components/File.js";
@@ -100,4 +100,4 @@ import { setPreNodeProperties } from "./utils/setWrapperNodeProps.js";
100
100
  import { trimPatchContext } from "./utils/trimPatchContext.js";
101
101
  import { FileDiff, FileDiffHydrationProps, FileDiffOptions, FileDiffRenderProps } from "./components/FileDiff.js";
102
102
  import { codeToHtml, createCssVariablesTheme as createCSSVariablesTheme } from "shiki";
103
- export { ALTERNATE_FILE_NAMES_GIT, AnnotationLineMap, AnnotationSide, AnnotationSpan, AppliedThemeStyleCache, AttachedLanguages, AttachedThemes, BaseCodeOptions, BaseDiffOptions, BaseDiffOptionsWithDefaults, BundledLanguage, COMMIT_METADATA_SPLIT, CORE_CSS_ATTRIBUTE, CUSTOM_EXTENSION_TO_FILE_FORMAT, CUSTOM_HEADER_SLOT_ID, ChangeContent, ChangeTypes, CodeColumnType, CodeToHastOptions, CodeToTokenTransformStream, CodeToTokenTransformStreamOptions, ConflictResolverTypes, ContextContent, CreateFileHeaderElementProps, CreatePatchOptionsNonabortable, CustomPreProperties, DEFAULT_COLLAPSED_CONTEXT_THRESHOLD, DEFAULT_EXPANDED_REGION, DEFAULT_RENDER_RANGE, DEFAULT_THEMES, DEFAULT_VIRTUAL_FILE_METRICS, DIFFS_TAG_NAME, DecorationItem, DiffAcceptRejectHunkConfig, DiffAcceptRejectHunkType, DiffHunksRenderer, DiffHunksRendererOptions, DiffHunksRendererOptionsWithDefaults, DiffLineAnnotation, DiffLineEventBaseProps, DiffsHighlighter, DiffsThemeNames, EMPTY_RENDER_RANGE, EXTENSION_TO_FILE_FORMAT, ExpansionDirections, ExtensionFormatMap, FILENAME_HEADER_REGEX, FILENAME_HEADER_REGEX_GIT, FILE_CONTEXT_BLOB, File, FileContents, FileDiff, FileDiffHydrationProps, FileDiffMetadata, FileDiffOptions, FileDiffRenderProps, FileHeaderRenderMode, FileHydrateProps, FileOptions, FileRenderProps, FileRenderResult, FileRenderer, FileRendererOptions, FileStream, FileStreamOptions, ForceDiffPlainTextOptions, ForceFilePlainTextOptions, GIT_DIFF_FILE_BREAK_REGEX, GapSpan, GetHoveredLineResult, GetLineIndexUtility, HEADER_METADATA_SLOT_ID, HEADER_PREFIX_SLOT_ID, HUNK_HEADER, HighlighterTypes, Hunk, HunkData, HunkExpansionRegion, HunkLineType, HunkSeparators, HunksRenderResult, INDEX_LINE_METADATA, InjectedRow, InteractionManager, InteractionManagerBaseOptions, InteractionManagerMode, InteractionManagerOptions, LanguageRegistration, LineAnnotation, LineDecoration, LineDiffTypes, LineEventBaseProps, LineInfo, LineSpans, LineTypes, LogTypes, MERGE_CONFLICT_BASE_MARKER_REGEX, MERGE_CONFLICT_END_MARKER_REGEX, MERGE_CONFLICT_SEPARATOR_MARKER_REGEX, MERGE_CONFLICT_START_MARKER_REGEX, MergeConflictActionPayload, MergeConflictActionTarget, MergeConflictActionsTypeOption, MergeConflictMarkerRow, MergeConflictMarkerRowType, MergeConflictRegion, MergeConflictResolution, ObservedAnnotationNodes, ObservedGridNodes, OnDiffLineClickProps, OnDiffLineEnterLeaveProps, OnLineClickProps, OnLineEnterLeaveProps, ParsedLine, ParsedPatch, PrePropertiesConfig, ProcessFileConflictData, RecallToken, RegisteredCustomLanguages, RegisteredCustomThemes, RenderDiffFilesResult, RenderDiffOptions, RenderDiffResult, RenderFileMetadata, RenderFileOptions, RenderFileResult, RenderHeaderMetadataCallback, RenderHeaderPrefixCallback, RenderMergeConflictActions, RenderRange, RenderWindow, RenderedDiffASTCache, RenderedFileASTCache, RenderedLineContext, ResizeManager, ResolvedLanguages, ResolvedThemes, ResolvingLanguages, ResolvingThemes, SPLIT_WITH_NEWLINES, SVGSpriteNames, SVGSpriteSheet, ScrollSyncManager, SelectedLineRange, SelectionPoint, SelectionSide, SharedRenderState, ShikiStreamTokenizer, ShikiStreamTokenizerEnqueueResult, ShikiStreamTokenizerOptions, ShikiTransformer, SplitInjectedRow, SplitInjectedRowPlacement, SplitLineDecorationProps, SupportedLanguages, THEME_CSS_ATTRIBUTE, ThemeRegistrationResolved, ThemeTypes, ThemedDiffResult, ThemedFileResult, ThemedToken, ThemesType, UNIFIED_DIFF_FILE_BREAK_REGEX, UNSAFE_CSS_ATTRIBUTE, UnifiedInjectedRowPlacement, UnifiedLineDecorationProps, UnresolvedFile, UnresolvedFileHydrationProps, UnresolvedFileOptions, UnresolvedFileRenderProps, VirtualFileMetrics, VirtualWindowSpecs, VirtualizedFile, VirtualizedFileDiff, Virtualizer, VirtualizerConfig, areDiffLineAnnotationsEqual, areDiffRenderOptionsEqual, areFilesEqual, areHunkDataEqual, areLanguagesAttached, areLineAnnotationsEqual, areObjectsEqual, areOptionsEqual, arePrePropertiesEqual, areRenderRangesEqual, areSelectionsEqual, areThemesAttached, areThemesEqual, areVirtualWindowSpecsEqual, areWorkerStatsEqual, attachResolvedLanguages, attachResolvedThemes, cleanLastNewline, cleanUpResolvedLanguages, cleanUpResolvedThemes, codeToHtml, createAnnotationElement, createAnnotationWrapperNode, createCSSVariablesTheme, createDiffSpanDecoration, createEmptyRowBuffer, createFileHeaderElement, createGutterGap, createGutterItem, createGutterUtilityContentNode, createGutterUtilityElement, createGutterWrapper, createHastElement, createIconElement, createNoNewlineElement, createPreElement, createPreWrapperProperties, createRowNodes, createSeparator, createSpanFromToken, createStyleElement, createTextNodeElement, createThemeStyleElement, createTransformerWithState, createUnsafeCSSStyleNode, createWindowFromScrollPosition, diffAcceptRejectHunk, disposeHighlighter, extendFileFormatMap, findCodeElement, formatCSSVariablePrefix, getFiletypeFromFileName, getHighlighterIfLoaded, getHighlighterOptions, getHighlighterThemeStyles, getHunkSeparatorSlotName, getIconForType, getLineAnnotationName, getLineEndingType, getLineNodes, getOrCreateCodeNode, getResolvedLanguages, getResolvedOrResolveLanguage, getResolvedOrResolveTheme, getResolvedThemes, getSharedHighlighter, getSingularPatch, getThemes, getTotalLineCountFromHunks, getUnresolvedDiffHunksRendererOptions, hasResolvedLanguages, hasResolvedThemes, isDefaultRenderRange, isHighlighterLoaded, isHighlighterLoading, isHighlighterNull, isWorkerContext, parseDiffFromFile, parseLineType, parsePatchFiles, pluckInteractionOptions, preloadHighlighter, prerenderHTMLIfNecessary, processFile, processLine, processPatch, pushOrJoinSpan, queueRender, registerCustomCSSVariableTheme, registerCustomLanguage, registerCustomTheme, renderDiffWithHighlighter, renderFileWithHighlighter, resolveConflict, resolveLanguage, resolveLanguages, resolveRegion, resolveTheme, resolveThemes, setLanguageOverride, setPreNodeProperties, trimPatchContext, wrapCoreCSS, wrapThemeCSS, wrapUnsafeCSS };
103
+ export { ALTERNATE_FILE_NAMES_GIT, AnnotationLineMap, AnnotationSide, AnnotationSpan, AppliedThemeStyleCache, AttachedLanguages, AttachedThemes, BaseCodeOptions, BaseDiffOptions, BaseDiffOptionsWithDefaults, BundledLanguage, COMMIT_METADATA_SPLIT, CORE_CSS_ATTRIBUTE, CUSTOM_EXTENSION_TO_FILE_FORMAT, CUSTOM_HEADER_SLOT_ID, ChangeContent, ChangeTypes, CodeColumnType, CodeToHastOptions, CodeToTokenTransformStream, CodeToTokenTransformStreamOptions, ConflictResolverTypes, ContextContent, CreateFileHeaderElementProps, CreatePatchOptionsNonabortable, CustomPreProperties, DEFAULT_COLLAPSED_CONTEXT_THRESHOLD, DEFAULT_EXPANDED_REGION, DEFAULT_RENDER_RANGE, DEFAULT_THEMES, DEFAULT_VIRTUAL_FILE_METRICS, DIFFS_TAG_NAME, DecorationItem, DiffAcceptRejectHunkConfig, DiffAcceptRejectHunkType, DiffHunksRenderer, DiffHunksRendererOptions, DiffHunksRendererOptionsWithDefaults, DiffLineAnnotation, DiffLineEventBaseProps, DiffTokenEventBaseProps, DiffsHighlighter, DiffsThemeNames, EMPTY_RENDER_RANGE, EXTENSION_TO_FILE_FORMAT, ExpansionDirections, ExtensionFormatMap, FILENAME_HEADER_REGEX, FILENAME_HEADER_REGEX_GIT, FILE_CONTEXT_BLOB, File, FileContents, FileDiff, FileDiffHydrationProps, FileDiffMetadata, FileDiffOptions, FileDiffRenderProps, FileHeaderRenderMode, FileHydrateProps, FileOptions, FileRenderProps, FileRenderResult, FileRenderer, FileRendererOptions, FileStream, FileStreamOptions, ForceDiffPlainTextOptions, ForceFilePlainTextOptions, GIT_DIFF_FILE_BREAK_REGEX, GapSpan, GetHoveredLineResult, GetLineIndexUtility, HEADER_METADATA_SLOT_ID, HEADER_PREFIX_SLOT_ID, HUNK_HEADER, HighlighterTypes, Hunk, HunkData, HunkExpansionRegion, HunkLineType, HunkSeparators, HunksRenderResult, INDEX_LINE_METADATA, InjectedRow, InteractionManager, InteractionManagerBaseOptions, InteractionManagerMode, InteractionManagerOptions, LanguageRegistration, LineAnnotation, LineDecoration, LineDiffTypes, LineEventBaseProps, LineInfo, LineSpans, LineTypes, LogTypes, MERGE_CONFLICT_BASE_MARKER_REGEX, MERGE_CONFLICT_END_MARKER_REGEX, MERGE_CONFLICT_SEPARATOR_MARKER_REGEX, MERGE_CONFLICT_START_MARKER_REGEX, MergeConflictActionPayload, MergeConflictActionTarget, MergeConflictActionsTypeOption, MergeConflictMarkerRow, MergeConflictMarkerRowType, MergeConflictRegion, MergeConflictResolution, ObservedAnnotationNodes, ObservedGridNodes, OnDiffLineClickProps, OnDiffLineEnterLeaveProps, OnLineClickProps, OnLineEnterLeaveProps, OnTokenEventProps, ParsedLine, ParsedPatch, PrePropertiesConfig, ProcessFileConflictData, RecallToken, RegisteredCustomLanguages, RegisteredCustomThemes, RenderDiffFilesResult, RenderDiffOptions, RenderDiffResult, RenderFileMetadata, RenderFileOptions, RenderFileResult, RenderHeaderMetadataCallback, RenderHeaderPrefixCallback, RenderMergeConflictActions, RenderRange, RenderWindow, RenderedDiffASTCache, RenderedFileASTCache, RenderedLineContext, ResizeManager, ResolvedLanguages, ResolvedThemes, ResolvingLanguages, ResolvingThemes, SPLIT_WITH_NEWLINES, SVGSpriteNames, SVGSpriteSheet, ScrollSyncManager, SelectedLineRange, SelectionPoint, SelectionSide, SharedRenderState, ShikiStreamTokenizer, ShikiStreamTokenizerEnqueueResult, ShikiStreamTokenizerOptions, ShikiTransformer, SplitInjectedRow, SplitInjectedRowPlacement, SplitLineDecorationProps, SupportedLanguages, THEME_CSS_ATTRIBUTE, ThemeRegistrationResolved, ThemeTypes, ThemedDiffResult, ThemedFileResult, ThemedToken, ThemesType, TokenEventBase, UNIFIED_DIFF_FILE_BREAK_REGEX, UNSAFE_CSS_ATTRIBUTE, UnifiedInjectedRowPlacement, UnifiedLineDecorationProps, UnresolvedFile, UnresolvedFileHydrationProps, UnresolvedFileOptions, UnresolvedFileRenderProps, VirtualFileMetrics, VirtualWindowSpecs, VirtualizedFile, VirtualizedFileDiff, Virtualizer, VirtualizerConfig, areDiffLineAnnotationsEqual, areDiffRenderOptionsEqual, areFilesEqual, areHunkDataEqual, areLanguagesAttached, areLineAnnotationsEqual, areObjectsEqual, areOptionsEqual, arePrePropertiesEqual, areRenderRangesEqual, areSelectionsEqual, areThemesAttached, areThemesEqual, areVirtualWindowSpecsEqual, areWorkerStatsEqual, attachResolvedLanguages, attachResolvedThemes, cleanLastNewline, cleanUpResolvedLanguages, cleanUpResolvedThemes, codeToHtml, createAnnotationElement, createAnnotationWrapperNode, createCSSVariablesTheme, createDiffSpanDecoration, createEmptyRowBuffer, createFileHeaderElement, createGutterGap, createGutterItem, createGutterUtilityContentNode, createGutterUtilityElement, createGutterWrapper, createHastElement, createIconElement, createNoNewlineElement, createPreElement, createPreWrapperProperties, createRowNodes, createSeparator, createSpanFromToken, createStyleElement, createTextNodeElement, createThemeStyleElement, createTransformerWithState, createUnsafeCSSStyleNode, createWindowFromScrollPosition, diffAcceptRejectHunk, disposeHighlighter, extendFileFormatMap, findCodeElement, formatCSSVariablePrefix, getFiletypeFromFileName, getHighlighterIfLoaded, getHighlighterOptions, getHighlighterThemeStyles, getHunkSeparatorSlotName, getIconForType, getLineAnnotationName, getLineEndingType, getLineNodes, getOrCreateCodeNode, getResolvedLanguages, getResolvedOrResolveLanguage, getResolvedOrResolveTheme, getResolvedThemes, getSharedHighlighter, getSingularPatch, getThemes, getTotalLineCountFromHunks, getUnresolvedDiffHunksRendererOptions, hasResolvedLanguages, hasResolvedThemes, isDefaultRenderRange, isHighlighterLoaded, isHighlighterLoading, isHighlighterNull, isWorkerContext, parseDiffFromFile, parseLineType, parsePatchFiles, pluckInteractionOptions, preloadHighlighter, prerenderHTMLIfNecessary, processFile, processLine, processPatch, pushOrJoinSpan, queueRender, registerCustomCSSVariableTheme, registerCustomLanguage, registerCustomTheme, renderDiffWithHighlighter, renderFileWithHighlighter, resolveConflict, resolveLanguage, resolveLanguages, resolveRegion, resolveTheme, resolveThemes, setLanguageOverride, setPreNodeProperties, trimPatchContext, wrapCoreCSS, wrapThemeCSS, wrapUnsafeCSS };
@@ -1,4 +1,4 @@
1
- import { AnnotationSide, DiffLineEventBaseProps, ExpansionDirections, LineEventBaseProps, MergeConflictResolution, SelectionSide } from "../types.js";
1
+ import { AnnotationSide, DiffLineEventBaseProps, DiffTokenEventBaseProps, ExpansionDirections, LineEventBaseProps, MergeConflictResolution, SelectionSide, TokenEventBase } from "../types.js";
2
2
 
3
3
  //#region src/managers/InteractionManager.d.ts
4
4
  type LogTypes = 'click' | 'move' | 'both' | 'none';
@@ -24,6 +24,7 @@ interface SelectedLineRange {
24
24
  type GetLineIndexUtility = (lineNumber: number, side?: SelectionSide) => [number, number] | undefined;
25
25
  type EventClickProps<TMode extends InteractionManagerMode> = TMode extends 'file' ? OnLineClickProps : OnDiffLineClickProps;
26
26
  type PointerEventEnterLeaveProps<TMode extends InteractionManagerMode> = TMode extends 'file' ? OnLineEnterLeaveProps : OnDiffLineEnterLeaveProps;
27
+ type OnTokenEventProps<TMode extends InteractionManagerMode> = TMode extends 'file' ? TokenEventBase : DiffTokenEventBaseProps;
27
28
  type GetHoveredLineResult<TMode extends InteractionManagerMode> = TMode extends 'file' ? {
28
29
  lineNumber: number;
29
30
  } : {
@@ -37,12 +38,16 @@ interface MergeConflictActionTarget {
37
38
  }
38
39
  interface InteractionManagerBaseOptions<TMode extends InteractionManagerMode> {
39
40
  lineHoverHighlight?: 'disabled' | 'both' | 'number' | 'line';
41
+ enableTokenInteractionsOnWhitespace?: boolean;
40
42
  enableGutterUtility?: boolean;
41
43
  onGutterUtilityClick?(range: SelectedLineRange): unknown;
42
44
  onLineClick?(props: EventClickProps<TMode>): unknown;
43
45
  onLineNumberClick?(props: EventClickProps<TMode>): unknown;
44
46
  onLineEnter?(props: PointerEventEnterLeaveProps<TMode>): unknown;
45
47
  onLineLeave?(props: PointerEventEnterLeaveProps<TMode>): unknown;
48
+ onTokenClick?(props: OnTokenEventProps<TMode>, event: MouseEvent): unknown;
49
+ onTokenEnter?(props: OnTokenEventProps<TMode>, event: PointerEvent): unknown;
50
+ onTokenLeave?(props: OnTokenEventProps<TMode>, event: PointerEvent): unknown;
46
51
  __debugPointerEvents?: LogTypes;
47
52
  enableLineSelection?: boolean;
48
53
  onLineSelected?: (range: SelectedLineRange | null) => void;
@@ -60,6 +65,7 @@ declare class InteractionManager<TMode extends InteractionManagerMode> {
60
65
  private mode;
61
66
  private options;
62
67
  private hoveredLine;
68
+ private hoveredToken;
63
69
  private pre;
64
70
  private gutterUtilityContainer;
65
71
  private gutterUtilityButton;
@@ -96,6 +102,8 @@ declare class InteractionManager<TMode extends InteractionManagerMode> {
96
102
  private handleDocumentPointerCancel;
97
103
  private clearHoveredLine;
98
104
  private setHoveredLine;
105
+ private clearHoveredToken;
106
+ private setHoveredToken;
99
107
  private ensureGutterUtilityNode;
100
108
  private attachDocumentPointerListeners;
101
109
  private detachDocumentPointerListeners;
@@ -112,6 +120,7 @@ declare class InteractionManager<TMode extends InteractionManagerMode> {
112
120
  private notifySelectionStart;
113
121
  private notifySelectionEnd;
114
122
  private toEventBaseProps;
123
+ private toTokenEventBaseProps;
115
124
  private buildSelectedLineRange;
116
125
  private buildSelectionRange;
117
126
  private resolvePointerTarget;
@@ -124,6 +133,7 @@ type InteractionPluckOptions<TMode extends InteractionManagerMode> = Interaction
124
133
  renderHoverUtility?(getHoveredRow: () => GetHoveredLineResult<TMode> | undefined): HTMLElement | null | undefined;
125
134
  };
126
135
  declare function pluckInteractionOptions<TMode extends InteractionManagerMode>({
136
+ enableTokenInteractionsOnWhitespace,
127
137
  enableGutterUtility,
128
138
  enableHoverUtility,
129
139
  lineHoverHighlight,
@@ -132,6 +142,9 @@ declare function pluckInteractionOptions<TMode extends InteractionManagerMode>({
132
142
  onLineEnter,
133
143
  onLineLeave,
134
144
  onLineNumberClick,
145
+ onTokenClick,
146
+ onTokenEnter,
147
+ onTokenLeave,
135
148
  renderGutterUtility,
136
149
  renderHoverUtility,
137
150
  __debugPointerEvents,
@@ -142,5 +155,5 @@ declare function pluckInteractionOptions<TMode extends InteractionManagerMode>({
142
155
  onLineSelectionEnd
143
156
  }: InteractionPluckOptions<TMode>, onHunkExpand?: (hunkIndex: number, direction: ExpansionDirections, expansionLineCount?: number) => unknown, getLineIndex?: GetLineIndexUtility, onMergeConflictActionClick?: (target: MergeConflictActionTarget) => void): InteractionManagerOptions<TMode>;
144
157
  //#endregion
145
- export { GetHoveredLineResult, GetLineIndexUtility, InteractionManager, InteractionManagerBaseOptions, InteractionManagerMode, InteractionManagerOptions, LogTypes, MergeConflictActionTarget, OnDiffLineClickProps, OnDiffLineEnterLeaveProps, OnLineClickProps, OnLineEnterLeaveProps, SelectedLineRange, pluckInteractionOptions };
158
+ export { GetHoveredLineResult, GetLineIndexUtility, InteractionManager, InteractionManagerBaseOptions, InteractionManagerMode, InteractionManagerOptions, LogTypes, MergeConflictActionTarget, OnDiffLineClickProps, OnDiffLineEnterLeaveProps, OnLineClickProps, OnLineEnterLeaveProps, OnTokenEventProps, SelectedLineRange, pluckInteractionOptions };
146
159
  //# sourceMappingURL=InteractionManager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"InteractionManager.d.ts","names":["AnnotationSide","DiffLineEventBaseProps","ExpansionDirections","LineEventBaseProps","MergeConflictResolution","SelectionSide","LogTypes","InteractionManagerMode","OnLineClickProps","PointerEvent","OnLineEnterLeaveProps","OnDiffLineClickProps","OnDiffLineEnterLeaveProps","SelectedLineRange","GetLineIndexUtility","EventClickProps","TMode","PointerEventEnterLeaveProps","GetHoveredLineResult","MergeConflictActionTarget","InteractionManagerBaseOptions","InteractionManagerOptions","InteractionManager","HTMLPreElement","MouseEvent","InteractionPluckOptions","HTMLElement","pluckInteractionOptions","enableGutterUtility","enableHoverUtility","lineHoverHighlight","onGutterUtilityClick","onLineClick","onLineEnter","onLineLeave","onLineNumberClick","renderGutterUtility","renderHoverUtility","__debugPointerEvents","enableLineSelection","onLineSelected","onLineSelectionStart","onLineSelectionChange","onLineSelectionEnd"],"sources":["../../src/managers/InteractionManager.d.ts"],"sourcesContent":["import type { AnnotationSide, DiffLineEventBaseProps, ExpansionDirections, LineEventBaseProps, MergeConflictResolution, SelectionSide } from '../types';\nexport type LogTypes = 'click' | 'move' | 'both' | 'none';\nexport type InteractionManagerMode = 'file' | 'diff';\nexport interface OnLineClickProps extends LineEventBaseProps {\n event: PointerEvent;\n}\nexport interface OnLineEnterLeaveProps extends LineEventBaseProps {\n event: PointerEvent;\n}\nexport interface OnDiffLineClickProps extends DiffLineEventBaseProps {\n event: PointerEvent;\n}\nexport interface OnDiffLineEnterLeaveProps extends DiffLineEventBaseProps {\n event: PointerEvent;\n}\nexport interface SelectedLineRange {\n start: number;\n side?: SelectionSide;\n end: number;\n endSide?: SelectionSide;\n}\nexport type GetLineIndexUtility = (lineNumber: number, side?: SelectionSide) => [number, number] | undefined;\ntype EventClickProps<TMode extends InteractionManagerMode> = TMode extends 'file' ? OnLineClickProps : OnDiffLineClickProps;\ntype PointerEventEnterLeaveProps<TMode extends InteractionManagerMode> = TMode extends 'file' ? OnLineEnterLeaveProps : OnDiffLineEnterLeaveProps;\nexport type GetHoveredLineResult<TMode extends InteractionManagerMode> = TMode extends 'file' ? {\n lineNumber: number;\n} : {\n lineNumber: number;\n side: AnnotationSide;\n};\nexport interface MergeConflictActionTarget {\n kind: 'merge-conflict-action';\n resolution: MergeConflictResolution;\n conflictIndex: number;\n}\nexport interface InteractionManagerBaseOptions<TMode extends InteractionManagerMode> {\n lineHoverHighlight?: 'disabled' | 'both' | 'number' | 'line';\n enableGutterUtility?: boolean;\n onGutterUtilityClick?(range: SelectedLineRange): unknown;\n onLineClick?(props: EventClickProps<TMode>): unknown;\n onLineNumberClick?(props: EventClickProps<TMode>): unknown;\n onLineEnter?(props: PointerEventEnterLeaveProps<TMode>): unknown;\n onLineLeave?(props: PointerEventEnterLeaveProps<TMode>): unknown;\n __debugPointerEvents?: LogTypes;\n enableLineSelection?: boolean;\n onLineSelected?: (range: SelectedLineRange | null) => void;\n onLineSelectionStart?: (range: SelectedLineRange | null) => void;\n onLineSelectionChange?: (range: SelectedLineRange | null) => void;\n onLineSelectionEnd?: (range: SelectedLineRange | null) => void;\n getLineIndex?: GetLineIndexUtility;\n}\nexport interface InteractionManagerOptions<TMode extends InteractionManagerMode> extends InteractionManagerBaseOptions<TMode> {\n usesCustomGutterUtility?: boolean;\n onHunkExpand?(hunkIndex: number, direction: ExpansionDirections, expansionLineCountOverride?: number): unknown;\n onMergeConflictActionClick?(target: MergeConflictActionTarget): void;\n}\nexport declare class InteractionManager<TMode extends InteractionManagerMode> {\n private mode;\n private options;\n private hoveredLine;\n private pre;\n private gutterUtilityContainer;\n private gutterUtilityButton;\n private gutterUtilitySlot;\n private interactiveLinesAttr;\n private interactiveLineNumbersAttr;\n private hasPointerListeners;\n private hasDocumentPointerListeners;\n private selectedRange;\n private renderedSelectionRange;\n private selectionAnchor;\n private queuedSelectionRender;\n private pointerSession;\n constructor(mode: TMode, options: InteractionManagerOptions<TMode>);\n setOptions(options: InteractionManagerOptions<TMode>): void;\n cleanUp(): void;\n setup(pre: HTMLPreElement): void;\n setSelectionDirty(): void;\n isSelectionDirty(): boolean;\n setSelection(range: SelectedLineRange | null): void;\n getSelection(): SelectedLineRange | null;\n getHoveredLine: () => GetHoveredLineResult<TMode> | undefined;\n handlePointerClick: (event: MouseEvent) => void;\n handlePointerMove: (event: PointerEvent) => void;\n handlePointerLeave: (event: PointerEvent) => void;\n private handlePointerEvent;\n private syncPointerListeners;\n private updateInteractiveLineAttributes;\n private handlePointerDown;\n private startLineSelectionFromPointerDown;\n private startGutterSelectionFromPointerDown;\n private handleDocumentPointerMove;\n private handleDocumentPointerUp;\n private handleDocumentPointerCancel;\n private clearHoveredLine;\n private setHoveredLine;\n private ensureGutterUtilityNode;\n private attachDocumentPointerListeners;\n private detachDocumentPointerListeners;\n private clearPointerSession;\n private clearPendingSingleLineState;\n private getSelectionPointerInfo;\n private getSelectionPointFromPath;\n private getLineIndex;\n private updateSelection;\n private getIndexesFromSelection;\n private renderSelection;\n private notifySelectionCommitted;\n private notifySelectionChangeDelta;\n private notifySelectionStart;\n private notifySelectionEnd;\n private toEventBaseProps;\n private buildSelectedLineRange;\n private buildSelectionRange;\n private resolvePointerTarget;\n private isSplitDiff;\n private parseLineIndex;\n}\ntype InteractionPluckOptions<TMode extends InteractionManagerMode> = InteractionManagerBaseOptions<TMode> & {\n enableHoverUtility?: boolean;\n renderGutterUtility?(getHoveredRow: () => GetHoveredLineResult<TMode> | undefined): HTMLElement | null | undefined;\n renderHoverUtility?(getHoveredRow: () => GetHoveredLineResult<TMode> | undefined): HTMLElement | null | undefined;\n};\nexport declare function pluckInteractionOptions<TMode extends InteractionManagerMode>({ enableGutterUtility, enableHoverUtility, lineHoverHighlight, onGutterUtilityClick, onLineClick, onLineEnter, onLineLeave, onLineNumberClick, renderGutterUtility, renderHoverUtility, __debugPointerEvents, enableLineSelection, onLineSelected, onLineSelectionStart, onLineSelectionChange, onLineSelectionEnd }: InteractionPluckOptions<TMode>, onHunkExpand?: (hunkIndex: number, direction: ExpansionDirections, expansionLineCount?: number) => unknown, getLineIndex?: GetLineIndexUtility, onMergeConflictActionClick?: (target: MergeConflictActionTarget) => void): InteractionManagerOptions<TMode>;\nexport {};\n//# sourceMappingURL=InteractionManager.d.ts.map"],"mappings":";;;KACYM,QAAAA;KACAC,sBAAAA;AADAD,UAEKE,gBAAAA,SAAyBL,kBAFtB,CAAA;EACRI,KAAAA,EAEDE,YAFCF;AACZ;AAGiBG,UAAAA,qBAAAA,SAA8BP,kBAAAA,CAAAA;EAG9BQ,KAAAA,EAFNF,YAEME;AAGjB;AAGiBE,UANAF,oBAAAA,SAA6BV,sBAUnB,CAAA;EAEfa,KAAAA,EAXDL,YAWCK;AAAiG;AAC1EP,UAVlBK,yBAAAA,SAAkCX,sBAUhBM,CAAAA;EAA0BS,KAAAA,EATlDP,YASkDO;;AAA0CL,UAPtFE,iBAAAA,CAOsFF;EAAoB,KAAA,EAAA,MAAA;EACtHM,IAAAA,CAAAA,EANMZ,aAMNY;EAA0CV,GAAAA,EAAAA,MAAAA;EAA0BS,OAAAA,CAAAA,EAJ3DX,aAI2DW;;AAA+CJ,KAF5GE,mBAAAA,GAE4GF,CAAAA,UAAAA,EAAAA,MAAAA,EAAAA,IAAAA,CAAAA,EAF1DP,aAE0DO,EAAAA,GAAAA,CAAAA,MAAAA,EAAAA,MAAAA,CAAAA,GAAAA,SAAAA;KADnHG,eAC4I,CAAA,cAD9GR,sBAC8G,CAAA,GADpFS,KACoF,SAAA,MAAA,GAD7DR,gBAC6D,GAD1CG,oBAC0C;AACjJ,KADKM,2BAC2B,CAAA,cADeV,sBACf,CAAA,GADyCS,KACzC,SAAA,MAAA,GADgEN,qBAChE,GADwFE,yBACxF;AAAeL,KAAnCW,oBAAmCX,CAAAA,cAAAA,sBAAAA,CAAAA,GAA0BS,KAA1BT,SAAAA,MAAAA,GAAAA;EAA0BS,UAAAA,EAAAA,MAAAA;CAI/DhB,GAAAA;EAAc,UAAA,EAAA,MAAA;EAEPmB,IAAAA,EAFPnB,cAEOmB;AAKjB,CAAA;AAA6DZ,UAL5CY,yBAAAA,CAK4CZ;EAG5BM,IAAAA,EAAAA,uBAAAA;EACOG,UAAAA,EAPxBZ,uBAOwBY;EAAhBD,aAAAA,EAAAA,MAAAA;;AACMA,UALbK,6BAKaL,CAAAA,cAL+BR,sBAK/BQ,CAAAA,CAAAA;EACsBC,kBAAAA,CAAAA,EAAAA,UAAAA,GAAAA,MAAAA,GAAAA,QAAAA,GAAAA,MAAAA;EAA5BC,mBAAAA,CAAAA,EAAAA,OAAAA;EAC4BD,oBAAAA,EAAAA,KAAAA,EAJnBH,iBAImBG,CAAAA,EAAAA,OAAAA;EAA5BC,WAAAA,EAAAA,KAAAA,EAHAF,eAGAE,CAHgBD,KAGhBC,CAAAA,CAAAA,EAAAA,OAAAA;EACGX,iBAAAA,EAAAA,KAAAA,EAHGS,eAGHT,CAHmBU,KAGnBV,CAAAA,CAAAA,EAAAA,OAAAA;EAEEO,WAAAA,EAAAA,KAAAA,EAJLI,2BAIKJ,CAJuBG,KAIvBH,CAAAA,CAAAA,EAAAA,OAAAA;EACMA,WAAAA,EAAAA,KAAAA,EAJXI,2BAIWJ,CAJiBG,KAIjBH,CAAAA,CAAAA,EAAAA,OAAAA;EACCA,oBAAAA,CAAAA,EAJTP,QAISO;EACHA,mBAAAA,CAAAA,EAAAA,OAAAA;EACdC,cAAAA,CAAAA,EAAAA,CAAAA,KAAAA,EAJUD,iBAIVC,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA;EAAmB,oBAAA,CAAA,EAAA,CAAA,KAAA,EAHHD,iBAGG,GAAA,IAAA,EAAA,GAAA,IAAA;EAErBQ,qBAAAA,CAAAA,EAAAA,CAAAA,KAAyB,EAJNR,iBAIM,GAAA,IAAA,EAAA,GAAA,IAAA;EAAeN,kBAAAA,CAAAA,EAAAA,CAAAA,KAAAA,EAHxBM,iBAGwBN,GAAAA,IAAAA,EAAAA,GAAAA,IAAAA;EAA8DS,YAAAA,CAAAA,EAFpGF,mBAEoGE;;AAG/EG,UAHvBE,yBAGuBF,CAAAA,cAHiBZ,sBAGjBY,CAAAA,SAHiDC,6BAGjDD,CAH+EH,KAG/EG,CAAAA,CAAAA;EAHiDC,uBAAAA,CAAAA,EAAAA,OAAAA;EAA6B,YAAA,EAAA,SAAA,EAAA,MAAA,EAAA,SAAA,EAEtElB,mBAFsE,EAAA,0BAAA,CAAA,EAAA,MAAA,CAAA,EAAA,OAAA;EAKjGoB,0BAAkB,EAAAN,MAAAA,EAFCG,yBAED,CAAA,EAAA,IAAA;;AAiBjBH,cAjBDM,kBAiBCN,CAAAA,cAjBgCT,sBAiBhCS,CAAAA,CAAAA;EAA0CA,QAAAA,IAAAA;EAA1BK,QAAAA,OAAAA;EACYL,QAAAA,WAAAA;EAA1BK,QAAAA,GAAAA;EAETE,QAAAA,sBAAAA;EAGSV,QAAAA,mBAAAA;EACJA,QAAAA,iBAAAA;EAC2BG,QAAAA,oBAAAA;EAArBE,QAAAA,0BAAAA;EACMM,QAAAA,mBAAAA;EACDf,QAAAA,2BAAAA;EACCA,QAAAA,aAAAA;EAAY,QAAA,sBAAA;EAkCvCgB,QAAAA,eAAAA;EAAsClB,QAAAA,qBAAAA;EAAwDS,QAAAA,cAAAA;EAA9BI,WAAAA,CAAAA,IAAAA,EA7C/CJ,KA6C+CI,EAAAA,OAAAA,EA7C/BC,yBA6C+BD,CA7CLJ,KA6CKI,CAAAA;EAEFJ,UAAAA,CAAAA,OAAAA,EA9C3CK,yBA8C2CL,CA9CjBA,KA8CiBA,CAAAA,CAAAA,EAAAA,IAAAA;EAArBE,OAAAA,CAAAA,CAAAA,EAAAA,IAAAA;EAA0CQ,KAAAA,CAAAA,GAAAA,EA5CzEH,cA4CyEG,CAAAA,EAAAA,IAAAA;EACtBV,iBAAAA,CAAAA,CAAAA,EAAAA,IAAAA;EAArBE,gBAAAA,CAAAA,CAAAA,EAAAA,OAAAA;EAA0CQ,YAAAA,CAAAA,KAAAA,EA1C/Db,iBA0C+Da,GAAAA,IAAAA,CAAAA,EAAAA,IAAAA;EAAW,YAAA,CAAA,CAAA,EAzC9Eb,iBAyC8E,GAAA,IAAA;EAE1Ec,cAAAA,EAAAA,GAAAA,GA1CET,oBA0CqBF,CA1CAA,KA0CA,CAAA,GAAA,SAAA;EAAeT,kBAAAA,EAAAA,CAAAA,KAAAA,EAzC9BiB,UAyC8BjB,EAAAA,GAAAA,IAAAA;EAA0BqB,iBAAAA,EAAAA,CAAAA,KAAAA,EAxCzDnB,YAwCyDmB,EAAAA,GAAAA,IAAAA;EAAqBC,kBAAAA,EAAAA,CAAAA,KAAAA,EAvC7EpB,YAuC6EoB,EAAAA,GAAAA,IAAAA;EAAoBC,QAAAA,kBAAAA;EAAoBC,QAAAA,oBAAAA;EAAsBC,QAAAA,+BAAAA;EAAaC,QAAAA,iBAAAA;EAAaC,QAAAA,iCAAAA;EAAaC,QAAAA,mCAAAA;EAAmBC,QAAAA,yBAAAA;EAAqBC,QAAAA,uBAAAA;EAAoBC,QAAAA,2BAAAA;EAAsBC,QAAAA,gBAAAA;EAAqBC,QAAAA,cAAAA;EAAgBC,QAAAA,uBAAAA;EAAsBC,QAAAA,8BAAAA;EAAuBC,QAAAA,8BAAAA;EAA8C3B,QAAAA,mBAAAA;EAAxBS,QAAAA,2BAAAA;EAA8EvB,QAAAA,uBAAAA;EAA6EY,QAAAA,yBAAAA;EAA2DK,QAAAA,YAAAA;EAA+DH,QAAAA,eAAAA;EAA1BK,QAAAA,uBAAAA;EAAyB,QAAA,eAAA;;;;;;;;;;;;KAL3pBI,sCAAsClB,0BAA0Ba,8BAA8BJ;;4CAErDE,qBAAqBF,qBAAqBU;2CAC3CR,qBAAqBF,qBAAqBU;;iBAE/DC,sCAAsCpB;;;;;;;;;;;;;;;;;GAA8UkB,wBAAwBT,sDAAsDd,6EAA6EY,2DAA2DK,qCAAqCE,0BAA0BL"}
1
+ {"version":3,"file":"InteractionManager.d.ts","names":["AnnotationSide","DiffLineEventBaseProps","DiffTokenEventBaseProps","ExpansionDirections","LineEventBaseProps","MergeConflictResolution","SelectionSide","TokenEventBase","LogTypes","InteractionManagerMode","OnLineClickProps","PointerEvent","OnLineEnterLeaveProps","OnDiffLineClickProps","OnDiffLineEnterLeaveProps","SelectedLineRange","GetLineIndexUtility","EventClickProps","TMode","PointerEventEnterLeaveProps","OnTokenEventProps","GetHoveredLineResult","MergeConflictActionTarget","InteractionManagerBaseOptions","MouseEvent","InteractionManagerOptions","InteractionManager","HTMLPreElement","InteractionPluckOptions","HTMLElement","pluckInteractionOptions","enableTokenInteractionsOnWhitespace","enableGutterUtility","enableHoverUtility","lineHoverHighlight","onGutterUtilityClick","onLineClick","onLineEnter","onLineLeave","onLineNumberClick","onTokenClick","onTokenEnter","onTokenLeave","renderGutterUtility","renderHoverUtility","__debugPointerEvents","enableLineSelection","onLineSelected","onLineSelectionStart","onLineSelectionChange","onLineSelectionEnd"],"sources":["../../src/managers/InteractionManager.d.ts"],"sourcesContent":["import type { AnnotationSide, DiffLineEventBaseProps, DiffTokenEventBaseProps, ExpansionDirections, LineEventBaseProps, MergeConflictResolution, SelectionSide, TokenEventBase } from '../types';\nexport type LogTypes = 'click' | 'move' | 'both' | 'none';\nexport type InteractionManagerMode = 'file' | 'diff';\nexport interface OnLineClickProps extends LineEventBaseProps {\n event: PointerEvent;\n}\nexport interface OnLineEnterLeaveProps extends LineEventBaseProps {\n event: PointerEvent;\n}\nexport interface OnDiffLineClickProps extends DiffLineEventBaseProps {\n event: PointerEvent;\n}\nexport interface OnDiffLineEnterLeaveProps extends DiffLineEventBaseProps {\n event: PointerEvent;\n}\nexport interface SelectedLineRange {\n start: number;\n side?: SelectionSide;\n end: number;\n endSide?: SelectionSide;\n}\nexport type GetLineIndexUtility = (lineNumber: number, side?: SelectionSide) => [number, number] | undefined;\ntype EventClickProps<TMode extends InteractionManagerMode> = TMode extends 'file' ? OnLineClickProps : OnDiffLineClickProps;\ntype PointerEventEnterLeaveProps<TMode extends InteractionManagerMode> = TMode extends 'file' ? OnLineEnterLeaveProps : OnDiffLineEnterLeaveProps;\nexport type OnTokenEventProps<TMode extends InteractionManagerMode> = TMode extends 'file' ? TokenEventBase : DiffTokenEventBaseProps;\nexport type GetHoveredLineResult<TMode extends InteractionManagerMode> = TMode extends 'file' ? {\n lineNumber: number;\n} : {\n lineNumber: number;\n side: AnnotationSide;\n};\nexport interface MergeConflictActionTarget {\n kind: 'merge-conflict-action';\n resolution: MergeConflictResolution;\n conflictIndex: number;\n}\nexport interface InteractionManagerBaseOptions<TMode extends InteractionManagerMode> {\n lineHoverHighlight?: 'disabled' | 'both' | 'number' | 'line';\n enableTokenInteractionsOnWhitespace?: boolean;\n enableGutterUtility?: boolean;\n onGutterUtilityClick?(range: SelectedLineRange): unknown;\n onLineClick?(props: EventClickProps<TMode>): unknown;\n onLineNumberClick?(props: EventClickProps<TMode>): unknown;\n onLineEnter?(props: PointerEventEnterLeaveProps<TMode>): unknown;\n onLineLeave?(props: PointerEventEnterLeaveProps<TMode>): unknown;\n onTokenClick?(props: OnTokenEventProps<TMode>, event: MouseEvent): unknown;\n onTokenEnter?(props: OnTokenEventProps<TMode>, event: PointerEvent): unknown;\n onTokenLeave?(props: OnTokenEventProps<TMode>, event: PointerEvent): unknown;\n __debugPointerEvents?: LogTypes;\n enableLineSelection?: boolean;\n onLineSelected?: (range: SelectedLineRange | null) => void;\n onLineSelectionStart?: (range: SelectedLineRange | null) => void;\n onLineSelectionChange?: (range: SelectedLineRange | null) => void;\n onLineSelectionEnd?: (range: SelectedLineRange | null) => void;\n getLineIndex?: GetLineIndexUtility;\n}\nexport interface InteractionManagerOptions<TMode extends InteractionManagerMode> extends InteractionManagerBaseOptions<TMode> {\n usesCustomGutterUtility?: boolean;\n onHunkExpand?(hunkIndex: number, direction: ExpansionDirections, expansionLineCountOverride?: number): unknown;\n onMergeConflictActionClick?(target: MergeConflictActionTarget): void;\n}\nexport declare class InteractionManager<TMode extends InteractionManagerMode> {\n private mode;\n private options;\n private hoveredLine;\n private hoveredToken;\n private pre;\n private gutterUtilityContainer;\n private gutterUtilityButton;\n private gutterUtilitySlot;\n private interactiveLinesAttr;\n private interactiveLineNumbersAttr;\n private hasPointerListeners;\n private hasDocumentPointerListeners;\n private selectedRange;\n private renderedSelectionRange;\n private selectionAnchor;\n private queuedSelectionRender;\n private pointerSession;\n constructor(mode: TMode, options: InteractionManagerOptions<TMode>);\n setOptions(options: InteractionManagerOptions<TMode>): void;\n cleanUp(): void;\n setup(pre: HTMLPreElement): void;\n setSelectionDirty(): void;\n isSelectionDirty(): boolean;\n setSelection(range: SelectedLineRange | null): void;\n getSelection(): SelectedLineRange | null;\n getHoveredLine: () => GetHoveredLineResult<TMode> | undefined;\n handlePointerClick: (event: MouseEvent) => void;\n handlePointerMove: (event: PointerEvent) => void;\n handlePointerLeave: (event: PointerEvent) => void;\n private handlePointerEvent;\n private syncPointerListeners;\n private updateInteractiveLineAttributes;\n private handlePointerDown;\n private startLineSelectionFromPointerDown;\n private startGutterSelectionFromPointerDown;\n private handleDocumentPointerMove;\n private handleDocumentPointerUp;\n private handleDocumentPointerCancel;\n private clearHoveredLine;\n private setHoveredLine;\n private clearHoveredToken;\n private setHoveredToken;\n private ensureGutterUtilityNode;\n private attachDocumentPointerListeners;\n private detachDocumentPointerListeners;\n private clearPointerSession;\n private clearPendingSingleLineState;\n private getSelectionPointerInfo;\n private getSelectionPointFromPath;\n private getLineIndex;\n private updateSelection;\n private getIndexesFromSelection;\n private renderSelection;\n private notifySelectionCommitted;\n private notifySelectionChangeDelta;\n private notifySelectionStart;\n private notifySelectionEnd;\n private toEventBaseProps;\n private toTokenEventBaseProps;\n private buildSelectedLineRange;\n private buildSelectionRange;\n private resolvePointerTarget;\n private isSplitDiff;\n private parseLineIndex;\n}\ntype InteractionPluckOptions<TMode extends InteractionManagerMode> = InteractionManagerBaseOptions<TMode> & {\n enableHoverUtility?: boolean;\n renderGutterUtility?(getHoveredRow: () => GetHoveredLineResult<TMode> | undefined): HTMLElement | null | undefined;\n renderHoverUtility?(getHoveredRow: () => GetHoveredLineResult<TMode> | undefined): HTMLElement | null | undefined;\n};\nexport declare function pluckInteractionOptions<TMode extends InteractionManagerMode>({ enableTokenInteractionsOnWhitespace, enableGutterUtility, enableHoverUtility, lineHoverHighlight, onGutterUtilityClick, onLineClick, onLineEnter, onLineLeave, onLineNumberClick, onTokenClick, onTokenEnter, onTokenLeave, renderGutterUtility, renderHoverUtility, __debugPointerEvents, enableLineSelection, onLineSelected, onLineSelectionStart, onLineSelectionChange, onLineSelectionEnd }: InteractionPluckOptions<TMode>, onHunkExpand?: (hunkIndex: number, direction: ExpansionDirections, expansionLineCount?: number) => unknown, getLineIndex?: GetLineIndexUtility, onMergeConflictActionClick?: (target: MergeConflictActionTarget) => void): InteractionManagerOptions<TMode>;\nexport {};\n//# sourceMappingURL=InteractionManager.d.ts.map"],"mappings":"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"}
@@ -6,6 +6,7 @@ import { toHtml } from "hast-util-to-html";
6
6
  //#region src/managers/InteractionManager.ts
7
7
  var InteractionManager = class {
8
8
  hoveredLine;
9
+ hoveredToken;
9
10
  pre;
10
11
  gutterUtilityContainer;
11
12
  gutterUtilityButton;
@@ -39,6 +40,7 @@ var InteractionManager = class {
39
40
  this.gutterUtilityButton = void 0;
40
41
  this.gutterUtilitySlot = void 0;
41
42
  this.clearHoveredLine();
43
+ this.clearHoveredToken();
42
44
  this.detachDocumentPointerListeners();
43
45
  this.clearPointerSession();
44
46
  if (this.queuedSelectionRender != null) {
@@ -97,8 +99,8 @@ var InteractionManager = class {
97
99
  }
98
100
  };
99
101
  handlePointerClick = (event) => {
100
- const { onHunkExpand, onLineClick, onLineNumberClick, onMergeConflictActionClick } = this.options;
101
- if (onHunkExpand == null && onLineClick == null && onLineNumberClick == null && onMergeConflictActionClick == null) return;
102
+ const { onHunkExpand, onLineClick, onLineNumberClick, onTokenClick, onMergeConflictActionClick } = this.options;
103
+ if (onHunkExpand == null && onLineClick == null && onLineNumberClick == null && onMergeConflictActionClick == null && onTokenClick == null) return;
102
104
  if (this.options.onGutterUtilityClick != null && isGutterUtilityPointerPath(event.composedPath())) return;
103
105
  debugLogIfEnabled(this.options.__debugPointerEvents, "click", "FileDiff.DEBUG.handlePointerClick:", event);
104
106
  this.handlePointerEvent({
@@ -107,8 +109,8 @@ var InteractionManager = class {
107
109
  });
108
110
  };
109
111
  handlePointerMove = (event) => {
110
- const { lineHoverHighlight = "disabled", onLineEnter, onLineLeave, enableGutterUtility = false } = this.options;
111
- if (lineHoverHighlight === "disabled" && !enableGutterUtility && onLineEnter == null && onLineLeave == null) return;
112
+ const { lineHoverHighlight = "disabled", onLineEnter, onLineLeave, onTokenEnter, onTokenLeave, enableGutterUtility = false } = this.options;
113
+ if (lineHoverHighlight === "disabled" && !enableGutterUtility && onLineEnter == null && onLineLeave == null && onTokenEnter == null && onTokenLeave == null) return;
112
114
  debugLogIfEnabled(this.options.__debugPointerEvents, "move", "FileDiff.DEBUG.handlePointerMove:", event);
113
115
  this.handlePointerEvent({
114
116
  eventType: "move",
@@ -118,16 +120,22 @@ var InteractionManager = class {
118
120
  handlePointerLeave = (event) => {
119
121
  const { __debugPointerEvents } = this.options;
120
122
  debugLogIfEnabled(__debugPointerEvents, "move", "FileDiff.DEBUG.handlePointerLeave: no event");
121
- if (this.hoveredLine == null) {
122
- debugLogIfEnabled(__debugPointerEvents, "move", "FileDiff.DEBUG.handlePointerLeave: returned early, no .hoveredLine");
123
+ if (this.hoveredLine == null && this.hoveredToken == null) {
124
+ debugLogIfEnabled(__debugPointerEvents, "move", "FileDiff.DEBUG.handlePointerLeave: returned early, no hovered line or token");
123
125
  return;
124
126
  }
125
127
  this.gutterUtilityContainer?.remove();
126
- this.options.onLineLeave?.({
127
- ...this.hoveredLine,
128
- event
129
- });
130
- this.clearHoveredLine();
128
+ if (this.hoveredToken != null) {
129
+ this.options.onTokenLeave?.(this.hoveredToken, event);
130
+ this.clearHoveredToken();
131
+ }
132
+ if (this.hoveredLine != null) {
133
+ this.options.onLineLeave?.({
134
+ ...this.hoveredLine,
135
+ event
136
+ });
137
+ this.clearHoveredLine();
138
+ }
131
139
  };
132
140
  handlePointerEvent({ eventType, event }) {
133
141
  const { __debugPointerEvents } = this.options;
@@ -138,27 +146,40 @@ var InteractionManager = class {
138
146
  });
139
147
  const target = this.resolvePointerTarget(composedPath);
140
148
  debugLogIfEnabled(__debugPointerEvents, eventType, "FileDiff.DEBUG.handlePointerEvent: resolvePointerTarget result:", target);
141
- const { onLineClick, onLineNumberClick, onLineEnter, onLineLeave, onHunkExpand, onMergeConflictActionClick } = this.options;
149
+ const { onLineClick, onLineNumberClick, onLineEnter, onLineLeave, onTokenClick, onTokenEnter, onTokenLeave, onHunkExpand, onMergeConflictActionClick } = this.options;
142
150
  switch (eventType) {
143
- case "move":
144
- if (isLinePointerTarget(target) && this.hoveredLine?.lineElement === target.lineElement) break;
145
- if (this.hoveredLine != null) {
146
- this.gutterUtilityContainer?.remove();
147
- onLineLeave?.({
148
- ...this.hoveredLine,
149
- event
150
- });
151
- this.clearHoveredLine();
151
+ case "move": {
152
+ const sameLine = isHoverableLinePointerTarget(target) && this.hoveredLine?.lineElement === target.lineElement;
153
+ if (!(isTokenPointerTarget(target) && this.hoveredToken?.tokenElement === target.tokenElement)) {
154
+ if (this.hoveredToken != null) {
155
+ onTokenLeave?.(this.hoveredToken, event);
156
+ this.clearHoveredToken();
157
+ }
158
+ if (isTokenPointerTarget(target)) {
159
+ this.setHoveredToken(this.toTokenEventBaseProps(target));
160
+ onTokenEnter?.(this.hoveredToken, event);
161
+ }
152
162
  }
153
- if (isLinePointerTarget(target)) {
154
- this.setHoveredLine(this.toEventBaseProps(target));
155
- if (this.gutterUtilityContainer != null) target.numberElement.appendChild(this.gutterUtilityContainer);
156
- onLineEnter?.({
157
- ...this.hoveredLine,
158
- event
159
- });
163
+ if (!sameLine) {
164
+ if (this.hoveredLine != null) {
165
+ this.gutterUtilityContainer?.remove();
166
+ onLineLeave?.({
167
+ ...this.hoveredLine,
168
+ event
169
+ });
170
+ this.clearHoveredLine();
171
+ }
172
+ if (isHoverableLinePointerTarget(target)) {
173
+ this.setHoveredLine(this.toEventBaseProps(target));
174
+ if (this.gutterUtilityContainer != null) target.numberElement.appendChild(this.gutterUtilityContainer);
175
+ onLineEnter?.({
176
+ ...this.hoveredLine,
177
+ event
178
+ });
179
+ }
160
180
  }
161
181
  break;
182
+ }
162
183
  case "click": {
163
184
  if (target == null) break;
164
185
  if (isMergeConflictActionPointerTarget(target) && onMergeConflictActionClick != null) {
@@ -169,7 +190,8 @@ var InteractionManager = class {
169
190
  onHunkExpand(target.hunkIndex, event.shiftKey ? "both" : target.direction, event.shiftKey ? Number.POSITIVE_INFINITY : void 0);
170
191
  break;
171
192
  }
172
- if (!isLinePointerTarget(target)) break;
193
+ if (!isHoverableLinePointerTarget(target)) break;
194
+ if (isTokenPointerTarget(target) && onTokenClick != null) onTokenClick(this.toTokenEventBaseProps(target), event);
173
195
  const eventBase = this.toEventBaseProps(target);
174
196
  if (onLineNumberClick != null && target.numberColumn) onLineNumberClick({
175
197
  ...eventBase,
@@ -184,9 +206,9 @@ var InteractionManager = class {
184
206
  }
185
207
  }
186
208
  syncPointerListeners(pre) {
187
- const { __debugPointerEvents, lineHoverHighlight = "disabled", onLineClick, onLineNumberClick, onLineEnter, onLineLeave, onHunkExpand, onMergeConflictActionClick, enableGutterUtility = false, enableLineSelection = false, onGutterUtilityClick } = this.options;
209
+ const { __debugPointerEvents, lineHoverHighlight = "disabled", onLineClick, onLineNumberClick, onLineEnter, onLineLeave, onTokenClick, onTokenEnter, onTokenLeave, onHunkExpand, onMergeConflictActionClick, enableGutterUtility = false, enableLineSelection = false, onGutterUtilityClick } = this.options;
188
210
  const enableGutterSelection = onGutterUtilityClick != null;
189
- const shouldAttachPointerListeners = lineHoverHighlight !== "disabled" || onLineClick != null || onLineNumberClick != null || onHunkExpand != null || onMergeConflictActionClick != null || onLineEnter != null || onLineLeave != null || enableGutterUtility || enableLineSelection || enableGutterSelection;
211
+ const shouldAttachPointerListeners = lineHoverHighlight !== "disabled" || onLineClick != null || onLineNumberClick != null || onLineEnter != null || onLineLeave != null || onTokenClick != null || onTokenEnter != null || onTokenLeave != null || onHunkExpand != null || onMergeConflictActionClick != null || enableGutterUtility || enableLineSelection || enableGutterSelection;
190
212
  if (shouldAttachPointerListeners && !this.hasPointerListeners) {
191
213
  pre.addEventListener("click", this.handlePointerClick);
192
214
  pre.addEventListener("pointerdown", this.handlePointerDown);
@@ -432,6 +454,14 @@ var InteractionManager = class {
432
454
  if (lineHoverHighlight === "both" || lineHoverHighlight === "number") this.hoveredLine.numberElement.setAttribute("data-hovered", "");
433
455
  }
434
456
  }
457
+ clearHoveredToken() {
458
+ if (this.hoveredToken == null) return;
459
+ this.hoveredToken = void 0;
460
+ }
461
+ setHoveredToken(hoveredToken) {
462
+ if (this.hoveredToken != null) this.clearHoveredToken();
463
+ this.hoveredToken = hoveredToken;
464
+ }
435
465
  ensureGutterUtilityNode(useCustomGutterUtility) {
436
466
  if (this.gutterUtilityContainer == null) {
437
467
  this.gutterUtilityContainer = document.createElement("div");
@@ -611,6 +641,25 @@ var InteractionManager = class {
611
641
  numberColumn: target.numberColumn
612
642
  };
613
643
  }
644
+ toTokenEventBaseProps({ lineCharEnd, lineCharStart, lineNumber, side, tokenElement, tokenText }) {
645
+ if (this.mode === "file") return {
646
+ type: "token",
647
+ lineCharEnd,
648
+ lineCharStart,
649
+ lineNumber,
650
+ tokenElement,
651
+ tokenText
652
+ };
653
+ return {
654
+ type: "token",
655
+ lineCharEnd,
656
+ lineCharStart,
657
+ lineNumber,
658
+ side,
659
+ tokenElement,
660
+ tokenText
661
+ };
662
+ }
614
663
  buildSelectedLineRange(anchor, current) {
615
664
  return this.buildSelectionRange(anchor.lineNumber, current.lineNumber, anchor.side, current.side);
616
665
  }
@@ -629,6 +678,8 @@ var InteractionManager = class {
629
678
  let lineElement;
630
679
  let lineIndexValue;
631
680
  let numberElement;
681
+ let tokenElement;
682
+ let tokenInfo;
632
683
  let expandInfo;
633
684
  let lineNumber;
634
685
  let mergeConflictActionTarget;
@@ -644,6 +695,24 @@ var InteractionManager = class {
644
695
  conflictIndex
645
696
  };
646
697
  }
698
+ if (tokenElement == null && element.hasAttribute("data-char")) {
699
+ tokenElement = element;
700
+ const startAttr = element.getAttribute("data-char");
701
+ if (startAttr != null) {
702
+ const lineCharStart = Number.parseInt(startAttr, 10);
703
+ if (!Number.isNaN(lineCharStart)) {
704
+ const tokenText = element.textContent ?? "";
705
+ const lineCharEnd = lineCharStart + tokenText.length;
706
+ if (tokenText.trim() !== "" || this.options.enableTokenInteractionsOnWhitespace === true) tokenInfo = {
707
+ tokenElement,
708
+ lineCharStart,
709
+ lineCharEnd,
710
+ tokenText
711
+ };
712
+ continue;
713
+ }
714
+ }
715
+ }
647
716
  const columnNumber = numberElement == null ? element.getAttribute("data-column-number") ?? void 0 : void 0;
648
717
  if (columnNumber != null) {
649
718
  numberElement = element;
@@ -693,6 +762,30 @@ var InteractionManager = class {
693
762
  numberElement ??= lineIndexValue != null ? queryHTMLElement(codeElement, `[data-column-number][data-line-index="${lineIndexValue}"]`) : void 0;
694
763
  if (codeElement == null || lineElement == null || numberElement == null || lineType == null || lineNumber == null || Number.isNaN(lineNumber)) return;
695
764
  const splitLineIndex = this.parseLineIndex(lineElement, this.isSplitDiff());
765
+ if (tokenInfo != null) {
766
+ if (this.mode === "file") return {
767
+ kind: "token",
768
+ lineType,
769
+ lineElement,
770
+ lineNumber,
771
+ numberColumn,
772
+ numberElement,
773
+ side: void 0,
774
+ splitLineIndex,
775
+ ...tokenInfo
776
+ };
777
+ return {
778
+ kind: "token",
779
+ lineType,
780
+ lineElement,
781
+ lineNumber,
782
+ numberColumn,
783
+ numberElement,
784
+ side: getAnnotationSide(lineType, codeElement),
785
+ splitLineIndex,
786
+ ...tokenInfo
787
+ };
788
+ }
696
789
  if (this.mode === "file") return {
697
790
  kind: "line",
698
791
  lineType,
@@ -703,13 +796,6 @@ var InteractionManager = class {
703
796
  side: void 0,
704
797
  splitLineIndex
705
798
  };
706
- const annotationSide = (() => {
707
- switch (lineType) {
708
- case "change-deletion": return "deletions";
709
- case "change-addition": return "additions";
710
- default: return codeElement.hasAttribute("data-deletions") ? "deletions" : "additions";
711
- }
712
- })();
713
799
  return {
714
800
  kind: "line",
715
801
  lineType,
@@ -717,7 +803,7 @@ var InteractionManager = class {
717
803
  lineNumber,
718
804
  numberColumn,
719
805
  numberElement,
720
- side: annotationSide,
806
+ side: getAnnotationSide(lineType, codeElement),
721
807
  splitLineIndex
722
808
  };
723
809
  }
@@ -730,8 +816,9 @@ var InteractionManager = class {
730
816
  if (!split) return lineIndexes[0];
731
817
  }
732
818
  };
733
- function pluckInteractionOptions({ enableGutterUtility, enableHoverUtility, lineHoverHighlight, onGutterUtilityClick, onLineClick, onLineEnter, onLineLeave, onLineNumberClick, renderGutterUtility, renderHoverUtility, __debugPointerEvents, enableLineSelection, onLineSelected, onLineSelectionStart, onLineSelectionChange, onLineSelectionEnd }, onHunkExpand, getLineIndex, onMergeConflictActionClick) {
819
+ function pluckInteractionOptions({ enableTokenInteractionsOnWhitespace, enableGutterUtility, enableHoverUtility, lineHoverHighlight, onGutterUtilityClick, onLineClick, onLineEnter, onLineLeave, onLineNumberClick, onTokenClick, onTokenEnter, onTokenLeave, renderGutterUtility, renderHoverUtility, __debugPointerEvents, enableLineSelection, onLineSelected, onLineSelectionStart, onLineSelectionChange, onLineSelectionEnd }, onHunkExpand, getLineIndex, onMergeConflictActionClick) {
734
820
  return {
821
+ enableTokenInteractionsOnWhitespace,
735
822
  enableGutterUtility: resolveEnableGutterUtilityOption({
736
823
  enableGutterUtility,
737
824
  enableHoverUtility,
@@ -748,6 +835,9 @@ function pluckInteractionOptions({ enableGutterUtility, enableHoverUtility, line
748
835
  onLineEnter,
749
836
  onLineLeave,
750
837
  onLineNumberClick,
838
+ onTokenClick,
839
+ onTokenEnter,
840
+ onTokenLeave,
751
841
  __debugPointerEvents,
752
842
  enableLineSelection,
753
843
  onLineSelected,
@@ -766,6 +856,12 @@ function resolveEnableGutterUtilityOption({ enableGutterUtility, enableHoverUtil
766
856
  function isLinePointerTarget(target) {
767
857
  return target != null && "kind" in target && target.kind === "line";
768
858
  }
859
+ function isTokenPointerTarget(target) {
860
+ return target != null && "kind" in target && target.kind === "token";
861
+ }
862
+ function isHoverableLinePointerTarget(target) {
863
+ return isLinePointerTarget(target) || isTokenPointerTarget(target);
864
+ }
769
865
  function isExpandoPointerTarget(target) {
770
866
  return "type" in target && target.type === "line-info";
771
867
  }
@@ -779,6 +875,13 @@ function queryHTMLElement(parent, query) {
779
875
  const element = parent?.querySelector(query);
780
876
  return element instanceof HTMLElement ? element : void 0;
781
877
  }
878
+ function getAnnotationSide(lineType, codeElement) {
879
+ switch (lineType) {
880
+ case "change-deletion": return "deletions";
881
+ case "change-addition": return "additions";
882
+ default: return codeElement.hasAttribute("data-deletions") ? "deletions" : "additions";
883
+ }
884
+ }
782
885
  function getLineTypeFromElement(element) {
783
886
  const lineType = element.getAttribute("data-line-type");
784
887
  if (lineType == null) return;