@pierre/diffs 1.2.12 → 1.3.0-beta.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/CodeView.d.ts +91 -6
- package/dist/components/CodeView.d.ts.map +1 -1
- package/dist/components/CodeView.js +300 -38
- package/dist/components/CodeView.js.map +1 -1
- package/dist/components/File.d.ts +14 -3
- package/dist/components/File.d.ts.map +1 -1
- package/dist/components/File.js +98 -12
- package/dist/components/File.js.map +1 -1
- package/dist/components/FileDiff.d.ts +68 -19
- package/dist/components/FileDiff.d.ts.map +1 -1
- package/dist/components/FileDiff.js +363 -25
- package/dist/components/FileDiff.js.map +1 -1
- package/dist/components/FileStream.d.ts.map +1 -1
- package/dist/components/FileStream.js +2 -1
- package/dist/components/FileStream.js.map +1 -1
- package/dist/components/UnresolvedFile.d.ts +2 -2
- package/dist/components/UnresolvedFile.d.ts.map +1 -1
- package/dist/components/UnresolvedFile.js +2 -2
- package/dist/components/UnresolvedFile.js.map +1 -1
- package/dist/components/VirtualizedFile.d.ts +4 -2
- package/dist/components/VirtualizedFile.d.ts.map +1 -1
- package/dist/components/VirtualizedFile.js +59 -47
- package/dist/components/VirtualizedFile.js.map +1 -1
- package/dist/components/VirtualizedFileDiff.d.ts +27 -5
- package/dist/components/VirtualizedFileDiff.d.ts.map +1 -1
- package/dist/components/VirtualizedFileDiff.js +262 -56
- package/dist/components/VirtualizedFileDiff.js.map +1 -1
- package/dist/components/Virtualizer.d.ts +4 -1
- package/dist/components/Virtualizer.d.ts.map +1 -1
- package/dist/components/Virtualizer.js +21 -4
- package/dist/components/Virtualizer.js.map +1 -1
- package/dist/constants.d.ts +4 -1
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +4 -1
- package/dist/constants.js.map +1 -1
- package/dist/editor/command.d.ts +7 -0
- package/dist/editor/command.d.ts.map +1 -0
- package/dist/editor/command.js +54 -0
- package/dist/editor/command.js.map +1 -0
- package/dist/editor/editStack.d.ts +71 -0
- package/dist/editor/editStack.d.ts.map +1 -0
- package/dist/editor/editStack.js +218 -0
- package/dist/editor/editStack.js.map +1 -0
- package/dist/editor/editor.d.ts +105 -0
- package/dist/editor/editor.d.ts.map +1 -0
- package/dist/editor/editor.js +2545 -0
- package/dist/editor/editor.js.map +1 -0
- package/dist/editor/editor2.js +6 -0
- package/dist/editor/editor2.js.map +1 -0
- package/dist/editor/index.d.ts +5 -0
- package/dist/editor/index.js +3 -0
- package/dist/editor/languages.d.ts +26 -0
- package/dist/editor/languages.d.ts.map +1 -0
- package/dist/editor/languages.js +363 -0
- package/dist/editor/languages.js.map +1 -0
- package/dist/editor/lineAnnotations.d.ts +9 -0
- package/dist/editor/lineAnnotations.d.ts.map +1 -0
- package/dist/editor/lineAnnotations.js +212 -0
- package/dist/editor/lineAnnotations.js.map +1 -0
- package/dist/editor/marker.d.ts +38 -0
- package/dist/editor/marker.d.ts.map +1 -0
- package/dist/editor/marker.js +245 -0
- package/dist/editor/marker.js.map +1 -0
- package/dist/editor/matchBrackets.d.ts +9 -0
- package/dist/editor/matchBrackets.d.ts.map +1 -0
- package/dist/editor/matchBrackets.js +138 -0
- package/dist/editor/matchBrackets.js.map +1 -0
- package/dist/editor/pieceTable.d.ts +41 -0
- package/dist/editor/pieceTable.d.ts.map +1 -0
- package/dist/editor/pieceTable.js +671 -0
- package/dist/editor/pieceTable.js.map +1 -0
- package/dist/editor/platform.d.ts +19 -0
- package/dist/editor/platform.d.ts.map +1 -0
- package/dist/editor/platform.js +57 -0
- package/dist/editor/platform.js.map +1 -0
- package/dist/editor/popover.d.ts +65 -0
- package/dist/editor/popover.d.ts.map +1 -0
- package/dist/editor/popover.js +187 -0
- package/dist/editor/popover.js.map +1 -0
- package/dist/editor/searchPanel.d.ts +40 -0
- package/dist/editor/searchPanel.d.ts.map +1 -0
- package/dist/editor/searchPanel.js +318 -0
- package/dist/editor/searchPanel.js.map +1 -0
- package/dist/editor/selection.d.ts +211 -0
- package/dist/editor/selection.d.ts.map +1 -0
- package/dist/editor/selection.js +1626 -0
- package/dist/editor/selection.js.map +1 -0
- package/dist/editor/selectionAction.d.ts +46 -0
- package/dist/editor/selectionAction.d.ts.map +1 -0
- package/dist/editor/selectionAction.js +64 -0
- package/dist/editor/selectionAction.js.map +1 -0
- package/dist/editor/sprite.d.ts +8 -0
- package/dist/editor/sprite.d.ts.map +1 -0
- package/dist/editor/sprite.js +45 -0
- package/dist/editor/sprite.js.map +1 -0
- package/dist/editor/stateStorage.d.ts +15 -0
- package/dist/editor/stateStorage.d.ts.map +1 -0
- package/dist/editor/stateStorage.js +65 -0
- package/dist/editor/stateStorage.js.map +1 -0
- package/dist/editor/textDocument.d.ts +77 -0
- package/dist/editor/textDocument.d.ts.map +1 -0
- package/dist/editor/textDocument.js +271 -0
- package/dist/editor/textDocument.js.map +1 -0
- package/dist/editor/textMeasure.d.ts +61 -0
- package/dist/editor/textMeasure.d.ts.map +1 -0
- package/dist/editor/textMeasure.js +209 -0
- package/dist/editor/textMeasure.js.map +1 -0
- package/dist/editor/tokenizer.d.ts +41 -0
- package/dist/editor/tokenizer.d.ts.map +1 -0
- package/dist/editor/tokenizer.js +513 -0
- package/dist/editor/tokenizer.js.map +1 -0
- package/dist/editor/utils.d.ts +21 -0
- package/dist/editor/utils.d.ts.map +1 -0
- package/dist/editor/utils.js +68 -0
- package/dist/editor/utils.js.map +1 -0
- package/dist/index.d.ts +10 -8
- package/dist/index.js +12 -10
- package/dist/managers/InteractionManager.d.ts +7 -0
- package/dist/managers/InteractionManager.d.ts.map +1 -1
- package/dist/managers/InteractionManager.js +22 -1
- package/dist/managers/InteractionManager.js.map +1 -1
- package/dist/managers/ResizeManager.d.ts +10 -2
- package/dist/managers/ResizeManager.d.ts.map +1 -1
- package/dist/managers/ResizeManager.js +33 -13
- package/dist/managers/ResizeManager.js.map +1 -1
- package/dist/managers/UniversalRenderingManager.d.ts +2 -1
- package/dist/managers/UniversalRenderingManager.d.ts.map +1 -1
- package/dist/managers/UniversalRenderingManager.js +6 -1
- package/dist/managers/UniversalRenderingManager.js.map +1 -1
- package/dist/react/CodeView.d.ts +26 -1
- package/dist/react/CodeView.d.ts.map +1 -1
- package/dist/react/CodeView.js +82 -19
- package/dist/react/CodeView.js.map +1 -1
- package/dist/react/EditContext.d.ts +15 -0
- package/dist/react/EditContext.d.ts.map +1 -0
- package/dist/react/EditContext.js +23 -0
- package/dist/react/EditContext.js.map +1 -0
- package/dist/react/File.d.ts +3 -1
- package/dist/react/File.d.ts.map +1 -1
- package/dist/react/File.js +4 -2
- package/dist/react/File.js.map +1 -1
- package/dist/react/FileDiff.d.ts +4 -1
- package/dist/react/FileDiff.d.ts.map +1 -1
- package/dist/react/FileDiff.js +4 -2
- package/dist/react/FileDiff.js.map +1 -1
- package/dist/react/MultiFileDiff.d.ts +7 -5
- package/dist/react/MultiFileDiff.d.ts.map +1 -1
- package/dist/react/MultiFileDiff.js +4 -2
- package/dist/react/MultiFileDiff.js.map +1 -1
- package/dist/react/PatchDiff.d.ts +4 -1
- package/dist/react/PatchDiff.d.ts.map +1 -1
- package/dist/react/PatchDiff.js +4 -2
- package/dist/react/PatchDiff.js.map +1 -1
- package/dist/react/UnresolvedFile.d.ts +1 -0
- package/dist/react/UnresolvedFile.d.ts.map +1 -1
- package/dist/react/UnresolvedFile.js +2 -1
- package/dist/react/UnresolvedFile.js.map +1 -1
- package/dist/react/index.d.ts +3 -2
- package/dist/react/index.js +2 -1
- package/dist/react/types.d.ts +3 -0
- package/dist/react/types.d.ts.map +1 -1
- package/dist/react/utils/renderDiffChildren.d.ts +2 -0
- package/dist/react/utils/renderDiffChildren.d.ts.map +1 -1
- package/dist/react/utils/renderDiffChildren.js +16 -8
- package/dist/react/utils/renderDiffChildren.js.map +1 -1
- package/dist/react/utils/renderFileChildren.d.ts +2 -0
- package/dist/react/utils/renderFileChildren.d.ts.map +1 -1
- package/dist/react/utils/renderFileChildren.js +16 -8
- package/dist/react/utils/renderFileChildren.js.map +1 -1
- package/dist/react/utils/useFileDiffInstance.d.ts +3 -1
- package/dist/react/utils/useFileDiffInstance.d.ts.map +1 -1
- package/dist/react/utils/useFileDiffInstance.js +30 -6
- package/dist/react/utils/useFileDiffInstance.js.map +1 -1
- package/dist/react/utils/useFileInstance.d.ts +4 -1
- package/dist/react/utils/useFileInstance.d.ts.map +1 -1
- package/dist/react/utils/useFileInstance.js +30 -5
- package/dist/react/utils/useFileInstance.js.map +1 -1
- package/dist/renderers/DiffHunksRenderer.d.ts +28 -2
- package/dist/renderers/DiffHunksRenderer.d.ts.map +1 -1
- package/dist/renderers/DiffHunksRenderer.js +244 -22
- package/dist/renderers/DiffHunksRenderer.js.map +1 -1
- package/dist/renderers/FileRenderer.d.ts +8 -1
- package/dist/renderers/FileRenderer.d.ts.map +1 -1
- package/dist/renderers/FileRenderer.js +155 -45
- package/dist/renderers/FileRenderer.js.map +1 -1
- package/dist/ssr/index.d.ts +2 -2
- package/dist/ssr/preloadDiffs.d.ts +11 -10
- package/dist/ssr/preloadDiffs.d.ts.map +1 -1
- package/dist/ssr/preloadDiffs.js +15 -7
- package/dist/ssr/preloadDiffs.js.map +1 -1
- package/dist/style.js +1 -1
- package/dist/types.d.ts +282 -5
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/applyLineTextWithNewline.d.ts +5 -0
- package/dist/utils/applyLineTextWithNewline.d.ts.map +1 -0
- package/dist/utils/applyLineTextWithNewline.js +11 -0
- package/dist/utils/applyLineTextWithNewline.js.map +1 -0
- package/dist/utils/areHunkDataEqual.js +1 -1
- package/dist/utils/areHunkDataEqual.js.map +1 -1
- package/dist/utils/areManagedSnapshotsEqual.d.ts +2 -2
- package/dist/utils/areManagedSnapshotsEqual.d.ts.map +1 -1
- package/dist/utils/areManagedSnapshotsEqual.js +5 -0
- package/dist/utils/areManagedSnapshotsEqual.js.map +1 -1
- package/dist/utils/awaitWithTimeout.d.ts +5 -0
- package/dist/utils/awaitWithTimeout.d.ts.map +1 -0
- package/dist/utils/awaitWithTimeout.js +15 -0
- package/dist/utils/awaitWithTimeout.js.map +1 -0
- package/dist/utils/cleanLastNewline.js +6 -1
- package/dist/utils/cleanLastNewline.js.map +1 -1
- package/dist/utils/cloneFileDiffMetadata.d.ts +7 -0
- package/dist/utils/cloneFileDiffMetadata.d.ts.map +1 -0
- package/dist/utils/cloneFileDiffMetadata.js +16 -0
- package/dist/utils/cloneFileDiffMetadata.js.map +1 -0
- package/dist/utils/computeEstimatedDiffHeights.d.ts +3 -1
- package/dist/utils/computeEstimatedDiffHeights.d.ts.map +1 -1
- package/dist/utils/computeEstimatedDiffHeights.js +8 -1
- package/dist/utils/computeEstimatedDiffHeights.js.map +1 -1
- package/dist/utils/computeFileOffsets.d.ts +21 -0
- package/dist/utils/computeFileOffsets.d.ts.map +1 -0
- package/dist/utils/computeFileOffsets.js +51 -0
- package/dist/utils/computeFileOffsets.js.map +1 -0
- package/dist/utils/createCodeViewHeaderFooterHostElement.d.ts +5 -0
- package/dist/utils/createCodeViewHeaderFooterHostElement.d.ts.map +1 -0
- package/dist/utils/createCodeViewHeaderFooterHostElement.js +19 -0
- package/dist/utils/createCodeViewHeaderFooterHostElement.js.map +1 -0
- package/dist/utils/createFileHeaderElement.d.ts.map +1 -1
- package/dist/utils/createFileHeaderElement.js +5 -1
- package/dist/utils/createFileHeaderElement.js.map +1 -1
- package/dist/utils/createTransformerWithState.js +9 -0
- package/dist/utils/createTransformerWithState.js.map +1 -1
- package/dist/utils/editSessionHunks.d.ts +84 -0
- package/dist/utils/editSessionHunks.d.ts.map +1 -0
- package/dist/utils/editSessionHunks.js +366 -0
- package/dist/utils/editSessionHunks.js.map +1 -0
- package/dist/utils/getDiffFileInput.d.ts +14 -0
- package/dist/utils/getDiffFileInput.d.ts.map +1 -0
- package/dist/utils/getDiffFileInput.js +24 -0
- package/dist/utils/getDiffFileInput.js.map +1 -0
- package/dist/utils/getDiffHunksRendererOptions.js +1 -0
- package/dist/utils/getDiffHunksRendererOptions.js.map +1 -1
- package/dist/utils/getFiletypeFromFileName.d.ts.map +1 -1
- package/dist/utils/getFiletypeFromFileName.js +2 -0
- package/dist/utils/getFiletypeFromFileName.js.map +1 -1
- package/dist/utils/hydratePartialDiff.d.ts +10 -0
- package/dist/utils/hydratePartialDiff.d.ts.map +1 -0
- package/dist/utils/hydratePartialDiff.js +140 -0
- package/dist/utils/hydratePartialDiff.js.map +1 -0
- package/dist/utils/iterateOverDiff.js +3 -3
- package/dist/utils/iterateOverDiff.js.map +1 -1
- package/dist/utils/parseDiffFromFile.d.ts +1 -1
- package/dist/utils/parseDiffFromFile.d.ts.map +1 -1
- package/dist/utils/parseDiffFromFile.js +26 -5
- package/dist/utils/parseDiffFromFile.js.map +1 -1
- package/dist/utils/parsePatchFiles.d.ts.map +1 -1
- package/dist/utils/parsePatchFiles.js +2 -0
- package/dist/utils/parsePatchFiles.js.map +1 -1
- package/dist/utils/realignChangeContent.d.ts +28 -0
- package/dist/utils/realignChangeContent.d.ts.map +1 -0
- package/dist/utils/realignChangeContent.js +142 -0
- package/dist/utils/realignChangeContent.js.map +1 -0
- package/dist/utils/renderDiffWithHighlighter.js +1 -1
- package/dist/utils/renderFileWithHighlighter.d.ts.map +1 -1
- package/dist/utils/renderFileWithHighlighter.js +5 -14
- package/dist/utils/renderFileWithHighlighter.js.map +1 -1
- package/dist/utils/updateDiffHunks.d.ts +24 -0
- package/dist/utils/updateDiffHunks.d.ts.map +1 -0
- package/dist/utils/updateDiffHunks.js +235 -0
- package/dist/utils/updateDiffHunks.js.map +1 -0
- package/dist/utils/virtualDiffLayout.d.ts +40 -1
- package/dist/utils/virtualDiffLayout.d.ts.map +1 -1
- package/dist/utils/virtualDiffLayout.js +96 -1
- package/dist/utils/virtualDiffLayout.js.map +1 -1
- package/dist/worker/WorkerPoolManager.d.ts +7 -2
- package/dist/worker/WorkerPoolManager.d.ts.map +1 -1
- package/dist/worker/WorkerPoolManager.js +83 -18
- package/dist/worker/WorkerPoolManager.js.map +1 -1
- package/dist/worker/index.d.ts +2 -2
- package/dist/worker/types.d.ts +11 -1
- package/dist/worker/types.d.ts.map +1 -1
- package/dist/worker/worker-portable.js +46 -66
- package/dist/worker/worker-portable.js.map +1 -1
- package/dist/worker/worker.js +46 -66
- package/dist/worker/worker.js.map +1 -1
- package/package.json +12 -5
- package/dist/utils/iterateOverFile.d.ts +0 -50
- package/dist/utils/iterateOverFile.d.ts.map +0 -1
- package/dist/utils/iterateOverFile.js +0 -49
- package/dist/utils/iterateOverFile.js.map +0 -1
package/dist/style.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
//#region src/style.css?inline
|
|
2
|
-
var style_default = "@layer base {\n :host {\n --diffs-font-fallback: \"SF Mono\", Monaco, Consolas, \"Ubuntu Mono\", \"Liberation Mono\",\n \"Courier New\", monospace;\n --diffs-header-font-fallback: system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\",\n \"Noto Sans\", \"Liberation Sans\", Arial, sans-serif;\n --diffs-mixer: light-dark(#000, #fff);\n --diffs-gap-fallback: 8px;\n --diffs-scrollbar-gutter-fallback: 6px;\n --diffs-scrollbar-gutter: var(--diffs-scrollbar-gutter-override, var(--diffs-scrollbar-gutter-measured, var(--diffs-scrollbar-gutter-fallback)));\n --diffs-added-light: #0dbe4e;\n --diffs-added-dark: #5ecc71;\n --diffs-modified-light: #009fff;\n --diffs-modified-dark: #69b1ff;\n --diffs-deleted-light: #ff2e3f;\n --diffs-deleted-dark: #ff6762;\n color-scheme: light dark;\n font-family: var(--diffs-header-font-family, var(--diffs-header-font-fallback));\n font-size: var(--diffs-font-size, 13px);\n line-height: var(--diffs-line-height, 20px);\n font-feature-settings: var(--diffs-font-features);\n --diffs-bg: light-dark(var(--diffs-light-bg, #fff), var(--diffs-dark-bg, #000));\n --diffs-bg-buffer: var(--diffs-bg-buffer-override, light-dark(color-mix(in lab, var(--diffs-bg) 92%, var(--diffs-mixer)), color-mix(in lab, var(--diffs-bg) 92%, var(--diffs-mixer))));\n --diffs-bg-context: var(--diffs-bg-context-override, light-dark(color-mix(in lab, var(--diffs-bg) 98.5%, var(--diffs-mixer)), color-mix(in lab, var(--diffs-bg) 92.5%, var(--diffs-mixer))));\n --diffs-bg-context-gutter: var(--diffs-bg-context-gutter-override, light-dark(color-mix(in lab, var(--diffs-bg-context) 90%, var(--diffs-bg)), color-mix(in lab, var(--diffs-bg-context) 45%, var(--diffs-bg))));\n --diffs-bg-separator: var(--diffs-bg-separator-override, light-dark(color-mix(in lab, var(--diffs-bg) 96%, var(--diffs-mixer)), color-mix(in lab, var(--diffs-bg) 85%, var(--diffs-mixer))));\n --diffs-fg: light-dark(var(--diffs-light, #000), var(--diffs-dark, #fff));\n --diffs-fg-number: var(--diffs-fg-number-override, light-dark(color-mix(in lab, var(--diffs-fg) 65%, var(--diffs-bg)), color-mix(in lab, var(--diffs-fg) 65%, var(--diffs-bg))));\n --diffs-fg-conflict-marker: var(--diffs-fg-conflict-marker-override, var(--diffs-fg-number));\n --diffs-deletion-base: var(--diffs-deletion-color-override, light-dark(var(--diffs-light-deletion-color, var(--diffs-deletion-color, var(--diffs-deleted-light))), var(--diffs-dark-deletion-color, var(--diffs-deletion-color, var(--diffs-deleted-dark)))));\n --diffs-addition-base: var(--diffs-addition-color-override, light-dark(var(--diffs-light-addition-color, var(--diffs-addition-color, var(--diffs-added-light))), var(--diffs-dark-addition-color, var(--diffs-addition-color, var(--diffs-added-dark)))));\n --diffs-modified-base: var(--diffs-modified-color-override, light-dark(var(--diffs-light-modified-color, var(--diffs-modified-color, var(--diffs-modified-light))), var(--diffs-dark-modified-color, var(--diffs-modified-color, var(--diffs-modified-dark)))));\n --diffs-bg-deletion: var(--diffs-bg-deletion-override, light-dark(color-mix(in lab, var(--diffs-bg) 88%, var(--diffs-deletion-base)), color-mix(in lab, var(--diffs-bg) 80%, var(--diffs-deletion-base))));\n --diffs-bg-deletion-emphasis: var(--diffs-bg-deletion-emphasis-override, light-dark(rgb(from var(--diffs-deletion-base) r g b / .15), rgb(from var(--diffs-deletion-base) r g b / .2)));\n --diffs-bg-addition: var(--diffs-bg-addition-override, light-dark(color-mix(in lab, var(--diffs-bg) 88%, var(--diffs-addition-base)), color-mix(in lab, var(--diffs-bg) 80%, var(--diffs-addition-base))));\n --diffs-bg-addition-emphasis: var(--diffs-bg-addition-emphasis-override, light-dark(rgb(from var(--diffs-addition-base) r g b / .15), rgb(from var(--diffs-addition-base) r g b / .2)));\n --diffs-selection-base: var(--diffs-modified-base);\n --diffs-selection-number-fg: light-dark(color-mix(in lab, var(--diffs-selection-base) 65%, var(--diffs-mixer)), color-mix(in lab, var(--diffs-selection-base) 75%, var(--diffs-mixer)));\n background-color: var(--diffs-bg);\n color: var(--diffs-fg);\n display: block;\n }\n\n pre, code, [data-error-wrapper] {\n isolation: isolate;\n font-family: var(--diffs-font-family, var(--diffs-font-fallback));\n outline: none;\n margin: 0;\n padding: 0;\n display: block;\n }\n\n pre, code {\n background-color: var(--diffs-bg);\n }\n\n code {\n contain: content;\n }\n\n *, :before, :after {\n box-sizing: border-box;\n }\n\n [data-icon-sprite] {\n display: none;\n }\n\n [data-diffs-header], [data-separator] {\n font-family: var(--diffs-header-font-family, var(--diffs-header-font-fallback));\n }\n\n [data-diffs-header][data-sticky] {\n z-index: 1;\n background-color: var(--diffs-bg);\n position: sticky;\n top: 0;\n }\n\n [data-file-info] {\n color: var(--fg);\n background-color: color-mix(in lab, var(--bg) 98%, var(--fg));\n border-block: 1px solid color-mix(in lab, var(--bg) 95%, var(--fg));\n padding: 10px;\n font-weight: 700;\n }\n\n [data-diff], [data-file] {\n --diffs-grid-number-column-width: minmax(min-content, max-content);\n --diffs-code-grid: var(--diffs-grid-number-column-width) 1fr;\n\n &[data-dehydrated] {\n --diffs-code-grid: var(--diffs-grid-number-column-width) minmax(0, 1fr);\n }\n\n &:hover [data-code]::-webkit-scrollbar-thumb {\n background-color: var(--diffs-bg-context);\n }\n }\n\n @supports (-webkit-touch-callout: none) {\n :host {\n --diffs-scrollbar-gutter-fallback: 0px;\n }\n }\n\n [data-line] span {\n color: light-dark(var(--diffs-token-light, var(--diffs-light)), var(--diffs-token-dark, var(--diffs-dark)));\n background-color: light-dark(var(--diffs-token-light-bg, inherit), var(--diffs-token-dark-bg, inherit));\n font-weight: light-dark(var(--diffs-token-light-font-weight, inherit), var(--diffs-token-dark-font-weight, inherit));\n font-style: light-dark(var(--diffs-token-light-font-style, inherit), var(--diffs-token-dark-font-style, inherit));\n text-decoration: light-dark(var(--diffs-token-light-text-decoration, inherit), var(--diffs-token-dark-text-decoration, inherit));\n }\n\n [data-line], [data-gutter-buffer], [data-column-number], [data-line-annotation], [data-no-newline], [data-merge-conflict], [data-merge-conflict-actions] {\n --diffs-computed-decoration-bg: var(--diffs-bg);\n --diffs-computed-diff-line-bg: var(--diffs-bg);\n --diffs-computed-selected-line-bg: var(--diffs-bg);\n color: var(--diffs-fg);\n background-color: var(--diffs-line-bg, var(--diffs-bg));\n\n @media (pointer: fine) {\n &:where([data-hovered]) {\n --diffs-computed-hovered-line-bg: light-dark(color-mix(in lab,\n var(--diffs-computed-selected-line-bg) 97%,\n var(--diffs-bg-hover-override, var(--diffs-mixer))), color-mix(in lab,\n var(--diffs-computed-selected-line-bg) 91%,\n var(--diffs-bg-hover-override, var(--diffs-mixer))));\n --diffs-line-bg: var(--diffs-computed-hovered-line-bg, inherit);\n }\n }\n }\n\n [data-line], [data-no-newline] {\n &[data-decoration-bg] {\n --mix-deco-light: 92%;\n --mix-deco-dark: 85%;\n\n &[data-decoration-bg-depth=\"2\"] {\n --mix-deco-light: 88%;\n --mix-deco-dark: 80%;\n }\n\n &[data-decoration-bg-depth=\"3\"] {\n --mix-deco-light: 85%;\n --mix-deco-dark: 78%;\n }\n\n @media (pointer: fine) {\n &[data-hovered]:not([data-selected-line]) {\n --mix-deco-light: 85%;\n --mix-deco-dark: 85%;\n }\n\n &[data-hovered]:not([data-selected-line])[data-decoration-bg-depth=\"2\"] {\n --mix-deco-light: 83%;\n --mix-deco-dark: 83%;\n }\n\n &[data-hovered]:not([data-selected-line])[data-decoration-bg-depth=\"3\"] {\n --mix-deco-light: 81%;\n --mix-deco-dark: 81%;\n }\n }\n\n --diffs-computed-decoration-bg: light-dark(color-mix(in lab,\n var(--diffs-bg) var(--mix-deco-light),\n var(--diffs-decoration-bg)), color-mix(in lab,\n var(--diffs-bg) var(--mix-deco-dark),\n var(--diffs-decoration-bg)));\n --diffs-computed-diff-line-bg: var(--diffs-computed-decoration-bg);\n --diffs-computed-selected-line-bg: var(--diffs-computed-decoration-bg);\n --diffs-line-bg: var(--diffs-computed-decoration-bg);\n }\n }\n\n [data-line-annotation], [data-gutter-buffer=\"annotation\"] {\n --diffs-annotation-bg: var(--diffs-bg-context);\n --diffs-computed-decoration-bg: var(--diffs-annotation-bg);\n --diffs-computed-diff-line-bg: var(--diffs-annotation-bg);\n --diffs-computed-selected-line-bg: var(--diffs-annotation-bg);\n --diffs-line-bg: var(--diffs-annotation-bg);\n }\n\n [data-merge-conflict-actions], [data-gutter-buffer=\"merge-conflict-action\"], [data-gutter-buffer=\"merge-conflict-marker-base\"], [data-gutter-buffer=\"merge-conflict-marker-separator\"], [data-merge-conflict=\"marker-base\"], [data-merge-conflict=\"marker-separator\"] {\n --diffs-computed-decoration-bg: var(--diffs-bg-context);\n --diffs-computed-diff-line-bg: var(--diffs-bg-context);\n --diffs-computed-selected-line-bg: var(--diffs-bg-context);\n --diffs-line-bg: var(--diffs-bg-context);\n }\n\n [data-gutter-buffer=\"merge-conflict-marker-start\"], [data-merge-conflict=\"marker-start\"] {\n --diffs-computed-decoration-bg: light-dark(color-mix(in lab,\n var(--diffs-bg) 78%,\n var(--conflict-bg-current-header-override, var(--diffs-addition-base))), color-mix(in lab,\n var(--diffs-bg) 68%,\n var(--conflict-bg-current-header-override, var(--diffs-addition-base))));\n --diffs-computed-diff-line-bg: var(--diffs-computed-decoration-bg);\n --diffs-computed-selected-line-bg: var(--diffs-computed-decoration-bg);\n --diffs-line-bg: var(--diffs-computed-decoration-bg);\n }\n\n [data-gutter-buffer=\"merge-conflict-marker-end\"], [data-merge-conflict=\"marker-end\"] {\n --diffs-computed-decoration-bg: light-dark(color-mix(in lab,\n var(--diffs-bg) 78%,\n var(--conflict-bg-incoming-header-override, var(--diffs-modified-base))), color-mix(in lab,\n var(--diffs-bg) 68%,\n var(--conflict-bg-incoming-header-override, var(--diffs-modified-base))));\n --diffs-computed-diff-line-bg: var(--diffs-computed-decoration-bg);\n --diffs-computed-selected-line-bg: var(--diffs-computed-decoration-bg);\n --diffs-line-bg: var(--diffs-computed-decoration-bg);\n }\n\n [data-has-merge-conflict] [data-line-annotation], [data-has-merge-conflict] [data-gutter-buffer=\"annotation\"] {\n --diffs-computed-decoration-bg: var(--diffs-bg);\n --diffs-computed-diff-line-bg: var(--diffs-bg);\n --diffs-computed-selected-line-bg: var(--diffs-bg);\n --diffs-line-bg: var(--diffs-bg);\n }\n\n :where([data-background]) {\n & [data-gutter-buffer], & [data-column-number] {\n --mix-light: 91%;\n --mix-dark: 85%;\n }\n\n & [data-line], & [data-no-newline] {\n --mix-light: 88%;\n --mix-dark: 80%;\n }\n\n & [data-gutter-buffer], & [data-column-number], & [data-line], & [data-no-newline] {\n --diffs-diff-line-mix-target: var(--diffs-bg);\n\n &[data-line-type=\"change-deletion\"] {\n --diffs-diff-line-mix-target: var(--diffs-bg-deletion-override, var(--diffs-deletion-base));\n\n @media (pointer: fine) {\n &[data-hovered] {\n --mix-light: 80%;\n --mix-dark: 75%;\n }\n }\n\n &:where([data-gutter-buffer], [data-column-number]) {\n color: var(--diffs-fg-number-deletion-override, var(--diffs-deletion-base));\n --diffs-diff-line-mix-target: var(--diffs-bg-deletion-number-override, var(--diffs-deletion-base));\n }\n\n --diffs-computed-diff-line-bg: light-dark(color-mix(in lab,\n var(--diffs-computed-decoration-bg) var(--mix-light),\n var(--diffs-diff-line-mix-target)), color-mix(in lab,\n var(--diffs-computed-decoration-bg) var(--mix-dark),\n var(--diffs-diff-line-mix-target)));\n --diffs-computed-selected-line-bg: var(--diffs-computed-diff-line-bg);\n --diffs-line-bg: var(--diffs-computed-diff-line-bg, inherit);\n }\n\n &[data-line-type=\"change-addition\"] {\n --diffs-diff-line-mix-target: var(--diffs-bg-addition-override, var(--diffs-addition-base));\n\n @media (pointer: fine) {\n &[data-hovered] {\n --mix-light: 80%;\n --mix-dark: 70%;\n }\n }\n\n &:where([data-gutter-buffer], [data-column-number]) {\n color: var(--diffs-fg-number-addition-override, var(--diffs-addition-base));\n --diffs-diff-line-mix-target: var(--diffs-bg-addition-number-override, var(--diffs-addition-base));\n }\n\n --diffs-computed-diff-line-bg: light-dark(color-mix(in lab,\n var(--diffs-computed-decoration-bg) var(--mix-light),\n var(--diffs-diff-line-mix-target)), color-mix(in lab,\n var(--diffs-computed-decoration-bg) var(--mix-dark),\n var(--diffs-diff-line-mix-target)));\n --diffs-computed-selected-line-bg: var(--diffs-computed-diff-line-bg);\n --diffs-line-bg: var(--diffs-computed-diff-line-bg, inherit);\n }\n\n &[data-merge-conflict=\"current\"] {\n --diffs-diff-line-mix-target: var(--conflict-bg-current-override, var(--diffs-addition-base));\n\n &:where([data-gutter-buffer], [data-column-number]) {\n color: var(--diffs-fg-number-addition-override, var(--diffs-addition-base));\n --diffs-diff-line-mix-target: var(--conflict-bg-current-number-override, var(--diffs-addition-base));\n }\n\n @media (pointer: fine) {\n &[data-hovered] {\n --mix-light: 80%;\n --mix-dark: 70%;\n }\n }\n\n --diffs-computed-diff-line-bg: light-dark(color-mix(in lab,\n var(--diffs-computed-decoration-bg) var(--mix-light),\n var(--diffs-diff-line-mix-target)), color-mix(in lab,\n var(--diffs-computed-decoration-bg) var(--mix-dark),\n var(--diffs-diff-line-mix-target)));\n --diffs-computed-selected-line-bg: var(--diffs-computed-diff-line-bg);\n --diffs-line-bg: var(--diffs-computed-diff-line-bg, inherit);\n }\n\n &[data-merge-conflict=\"incoming\"] {\n --diffs-diff-line-mix-target: var(--conflict-bg-incoming-override, var(--diffs-modified-base));\n\n &:where([data-gutter-buffer], [data-column-number]) {\n color: var(--diffs-modified-base);\n --diffs-diff-line-mix-target: var(--conflict-bg-incoming-number-override, var(--diffs-modified-base));\n }\n\n @media (pointer: fine) {\n &[data-hovered] {\n --mix-light: 80%;\n --mix-dark: 70%;\n }\n }\n\n --diffs-computed-diff-line-bg: light-dark(color-mix(in lab,\n var(--diffs-computed-decoration-bg) var(--mix-light),\n var(--diffs-diff-line-mix-target)), color-mix(in lab,\n var(--diffs-computed-decoration-bg) var(--mix-dark),\n var(--diffs-diff-line-mix-target)));\n --diffs-computed-selected-line-bg: var(--diffs-computed-diff-line-bg);\n --diffs-line-bg: var(--diffs-computed-diff-line-bg, inherit);\n }\n }\n }\n\n [data-gutter-buffer], [data-column-number], [data-line], [data-line-annotation], [data-merge-conflict], [data-merge-conflict-actions], [data-no-newline] {\n --diffs-selection-mix-target: var(--diffs-bg-selection-override, var(--diffs-selection-base));\n\n &:where([data-line], [data-line-annotation], [data-merge-conflict], [data-merge-conflict-actions], [data-no-newline])[data-selected-line] {\n --mix-selection-light: 82%;\n --mix-selection-dark: 75%;\n\n @media (pointer: fine) {\n &[data-hovered]:not([data-merge-conflict], [data-line-type=\"change-addition\"], [data-line-type=\"change-deletion\"]) {\n --mix-selection-light: 75%;\n --mix-selection-dark: 70%;\n }\n }\n }\n\n &:where([data-gutter-buffer], [data-column-number])[data-selected-line] {\n --mix-selection-light: 75%;\n --mix-selection-dark: 60%;\n --diffs-selection-mix-target: var(--diffs-bg-selection-number-override, var(--diffs-selection-base));\n\n @media (pointer: fine) {\n &[data-hovered]:not([data-merge-conflict], [data-line-type=\"change-addition\"], [data-line-type=\"change-deletion\"]) {\n --mix-selection-light: 70%;\n --mix-selection-dark: 55%;\n }\n }\n }\n\n &[data-selected-line] {\n --diffs-computed-selected-line-bg: light-dark(color-mix(in lab,\n var(--diffs-computed-diff-line-bg) var(--mix-selection-light),\n var(--diffs-selection-mix-target)), color-mix(in lab,\n var(--diffs-computed-diff-line-bg) var(--mix-selection-dark),\n var(--diffs-selection-mix-target)));\n --diffs-line-bg: var(--diffs-computed-selected-line-bg, inherit);\n }\n }\n\n [data-gutter-buffer], [data-column-number] {\n &[data-selected-line] {\n color: var(--diffs-selection-number-fg);\n }\n }\n\n [data-no-newline] {\n user-select: none;\n\n & span {\n opacity: .6;\n }\n }\n\n [data-diff-type=\"split\"][data-overflow=\"scroll\"] {\n grid-template-columns: 1fr 1fr;\n display: grid;\n\n & [data-additions] {\n border-left: 1px solid var(--diffs-bg);\n }\n\n & [data-deletions] {\n border-right: 1px solid var(--diffs-bg);\n }\n }\n\n [data-code] {\n grid-auto-flow: dense;\n grid-template-columns: var(--diffs-code-grid);\n overflow: var(--diffs-overflow-override, scroll) clip;\n overscroll-behavior-x: none;\n tab-size: var(--diffs-tab-size, 2);\n padding-top: var(--diffs-gap-block, var(--diffs-gap-fallback));\n padding-bottom: max(0px,\n calc(var(--diffs-gap-block, var(--diffs-gap-fallback)) -\n var(--diffs-scrollbar-gutter)));\n scrollbar-gutter: stable;\n align-self: flex-start;\n display: grid;\n }\n\n [data-diffs-scrollbar-measure] {\n opacity: 0;\n pointer-events: none;\n scrollbar-gutter: auto;\n grid-template-columns: none;\n width: 100px;\n height: 100px;\n padding: 0;\n position: absolute;\n top: -200px;\n left: -200px;\n }\n\n [data-container-size] {\n container-type: inline-size;\n }\n\n [data-code]::-webkit-scrollbar {\n width: 0;\n height: var(--diffs-scrollbar-gutter);\n }\n\n [data-code]::-webkit-scrollbar-track {\n background: none;\n }\n\n [data-code]::-webkit-scrollbar-thumb {\n background-color: #0000;\n background-clip: content-box;\n border: 1px solid #0000;\n border-radius: 3px;\n }\n\n [data-code]::-webkit-scrollbar-corner {\n background-color: #0000;\n }\n\n @supports ((-moz-appearance: none)) {\n [data-code] {\n scrollbar-width: thin;\n scrollbar-color: var(--diffs-bg-context) transparent;\n padding-bottom: var(--diffs-gap-block, var(--diffs-gap-fallback));\n }\n }\n\n [data-diffs-header] ~ [data-diff], [data-diffs-header] ~ [data-file] {\n & [data-code], &[data-overflow=\"wrap\"] {\n padding-top: 0;\n }\n }\n\n [data-gutter] {\n grid-template-rows: subgrid;\n grid-template-columns: subgrid;\n z-index: 3;\n background-color: var(--diffs-bg);\n grid-column: 1;\n display: grid;\n position: relative;\n\n & [data-gutter-buffer], & [data-column-number] {\n border-right: var(--diffs-gap-style, 2px solid var(--diffs-bg));\n }\n }\n\n [data-content] {\n grid-template-rows: subgrid;\n grid-template-columns: subgrid;\n background-color: var(--diffs-bg);\n grid-column: 2;\n min-width: 0;\n display: grid;\n }\n\n [data-diff-type=\"split\"][data-overflow=\"wrap\"] {\n grid-auto-flow: dense;\n grid-template-columns: repeat(2, var(--diffs-code-grid));\n padding-block: var(--diffs-gap-block, var(--diffs-gap-fallback));\n display: grid;\n\n & [data-deletions] {\n display: contents;\n\n & [data-gutter] {\n grid-column: 1;\n }\n\n & [data-content] {\n border-right: 1px solid var(--diffs-bg);\n grid-column: 2;\n }\n }\n\n & [data-additions] {\n display: contents;\n\n & [data-gutter] {\n border-left: 1px solid var(--diffs-bg);\n grid-column: 3;\n }\n\n & [data-content] {\n grid-column: 4;\n }\n }\n }\n\n [data-overflow=\"scroll\"] [data-gutter] {\n position: sticky;\n left: 0;\n }\n\n [data-interactive-lines] [data-line] {\n cursor: pointer;\n }\n\n [data-interactive-line-numbers] [data-column-number] {\n cursor: pointer;\n touch-action: none;\n }\n\n [data-content-buffer], [data-gutter-buffer] {\n user-select: none;\n min-height: 1lh;\n position: relative;\n }\n\n [data-gutter-buffer] {\n padding-left: 2ch;\n padding-right: 1ch;\n\n &:before {\n content: \"\";\n min-width: var(--diffs-min-number-column-width, var(--diffs-min-number-column-width-default, 3ch));\n display: block;\n }\n }\n\n [data-gutter-buffer=\"annotation\"] {\n --diffs-annotation-bg: var(--diffs-bg-context-gutter);\n min-height: 0;\n }\n\n [data-gutter-buffer=\"buffer\"] {\n --diffs-line-bg: var(--diffs-bg-context-gutter);\n }\n\n [data-content-buffer] {\n background-position: 5px 0;\n background-size: 8px 8px;\n background-origin: border-box;\n background-image: repeating-linear-gradient(-45deg,\n transparent,\n transparent calc(3px * 1.414),\n var(--diffs-bg-buffer) calc(3px * 1.414),\n var(--diffs-bg-buffer) calc(4px * 1.414));\n grid-column: 1;\n }\n\n [data-separator] {\n box-sizing: content-box;\n background-color: var(--diffs-bg);\n }\n\n [data-separator=\"simple\"] {\n min-height: 4px;\n }\n\n [data-separator=\"line-info\"], [data-separator=\"line-info-basic\"], [data-separator=\"metadata\"], [data-separator=\"simple\"] {\n background-color: var(--diffs-bg-separator);\n }\n\n [data-separator=\"line-info\"], [data-separator=\"line-info-basic\"], [data-separator=\"metadata\"] {\n height: 32px;\n position: relative;\n }\n\n [data-separator-wrapper] {\n user-select: none;\n fill: currentColor;\n background-color: var(--diffs-bg);\n align-items: center;\n height: 100%;\n display: flex;\n position: absolute;\n inset-inline: 0;\n }\n\n [data-content] [data-separator-wrapper] {\n display: none;\n }\n\n [data-separator=\"metadata\"] [data-separator-wrapper] {\n background-color: var(--diffs-bg-separator);\n height: 100%;\n color: var(--diffs-fg-number);\n white-space: nowrap;\n text-overflow: ellipsis;\n min-width: min-content;\n padding-inline: 1ch;\n inset-inline: 100% auto;\n overflow: hidden;\n }\n\n [data-separator=\"line-info\"] {\n margin-block: var(--diffs-gap-block, var(--diffs-gap-fallback));\n\n & [data-separator-wrapper] {\n min-width: 16px;\n }\n }\n\n [data-separator=\"line-info-basic\"], [data-separator=\"metadata\"] {\n margin-block: 0;\n }\n\n [data-separator=\"line-info\"][data-separator-first] {\n margin-top: 0;\n }\n\n [data-separator=\"line-info\"][data-separator-last] {\n margin-bottom: 0;\n }\n\n [data-expand-index] [data-separator-wrapper] {\n grid-template-columns: 32px auto;\n display: grid;\n }\n\n [data-expand-index] [data-separator-wrapper][data-separator-multi-button] {\n grid-template-columns: 32px 32px auto;\n }\n\n [data-expand-button], [data-separator-content] {\n background-color: var(--diffs-bg-separator);\n flex: none;\n align-items: center;\n display: flex;\n }\n\n [data-expand-index] [data-separator-content]:hover {\n cursor: pointer;\n text-decoration: underline;\n }\n\n [data-expand-button] {\n cursor: pointer;\n min-width: 32px;\n color: var(--diffs-fg-number);\n border-right: 2px solid var(--diffs-bg);\n flex-shrink: 0;\n justify-content: center;\n align-self: stretch;\n\n &:hover {\n color: var(--diffs-fg);\n }\n\n &[data-expand-all-button] {\n display: none;\n }\n }\n\n [data-expand-down] [data-icon] {\n transform: scaleY(-1);\n }\n\n [data-separator-content] {\n height: 100%;\n color: var(--diffs-fg-number);\n flex: auto;\n justify-content: flex-start;\n padding: 0 1ch;\n overflow: hidden;\n }\n\n [data-separator=\"line-info\"], [data-separator=\"line-info-basic\"] {\n & [data-separator-content] {\n user-select: none;\n height: 100%;\n overflow: clip;\n }\n }\n\n [data-unmodified-lines] {\n text-overflow: ellipsis;\n white-space: nowrap;\n flex: 0 auto;\n min-width: 0;\n display: block;\n overflow: hidden;\n }\n\n @supports (width: 1cqi) {\n [data-unified] {\n & [data-separator=\"line-info\"] [data-separator-wrapper] {\n padding-inline: var(--diffs-gap-inline, var(--diffs-gap-fallback));\n width: 100cqi;\n\n & [data-separator-content] {\n border-radius: 6px;\n }\n }\n\n & [data-separator=\"line-info\"][data-expand-index] [data-separator-wrapper] [data-separator-content] {\n border-top-left-radius: unset;\n border-bottom-left-radius: unset;\n }\n }\n\n [data-gutter] {\n & [data-separator=\"line-info\"] [data-separator-wrapper] {\n padding-left: var(--diffs-gap-inline, var(--diffs-gap-fallback));\n }\n\n & [data-separator=\"line-info\"] [data-separator-content] {\n border-top-left-radius: 6px;\n border-bottom-left-radius: 6px;\n }\n\n & [data-separator=\"line-info\"][data-expand-index] [data-separator-content] {\n border-top-left-radius: unset;\n border-bottom-left-radius: unset;\n }\n }\n\n [data-additions] {\n & [data-content] [data-separator=\"line-info\"] {\n background-color: var(--diffs-bg);\n\n & [data-separator-wrapper] {\n display: none;\n }\n }\n\n & [data-gutter] [data-separator=\"line-info\"] [data-separator-wrapper] {\n background-color: var(--diffs-bg-separator);\n border-top-right-radius: 6px;\n border-bottom-right-radius: 6px;\n height: 100%;\n display: block;\n\n & [data-separator-content], & [data-expand-button] {\n display: none;\n }\n }\n }\n\n [data-overflow=\"scroll\"] [data-additions] [data-gutter] [data-separator=\"line-info\"] [data-separator-wrapper] {\n width: calc(100cqi - var(--diffs-gap-inline, var(--diffs-gap-fallback)));\n }\n\n [data-overflow=\"wrap\"] [data-additions] [data-content] [data-separator=\"line-info\"] [data-separator-wrapper] {\n background-color: var(--diffs-bg-separator);\n height: 100%;\n margin-right: var(--diffs-gap-inline, var(--diffs-gap-fallback));\n border-top-right-radius: 6px;\n border-bottom-right-radius: 6px;\n display: block;\n\n & [data-separator-content], & [data-expand-button] {\n display: none;\n }\n }\n\n [data-separator=\"line-info\"] [data-separator-wrapper] {\n & [data-expand-both], & [data-expand-down], & [data-expand-up] {\n border-top-left-radius: 6px;\n border-bottom-left-radius: 6px;\n }\n }\n\n @media (pointer: fine) {\n [data-separator=\"line-info\"] [data-separator-wrapper] {\n &[data-separator-multi-button] {\n & [data-expand-up] {\n border-top-left-radius: 6px;\n border-bottom-left-radius: unset;\n }\n\n & [data-expand-down] {\n border-bottom-left-radius: 6px;\n border-top-left-radius: unset;\n }\n }\n }\n }\n }\n\n @media (pointer: coarse) {\n [data-separator=\"line-info-basic\"] [data-separator-wrapper][data-separator-multi-button] {\n grid-template-columns: 34px 34px auto;\n\n & [data-separator-content] {\n grid-column: unset;\n grid-row: unset;\n }\n }\n\n @supports (width: 1cqi) {\n [data-separator=\"line-info\"] [data-separator-wrapper] {\n & [data-expand-both], & [data-expand-down], & [data-expand-up] {\n border-top-left-radius: 6px;\n border-bottom-left-radius: 6px;\n }\n\n &[data-separator-multi-button] {\n & [data-expand-up] {\n border-top-left-radius: 6px;\n border-bottom-left-radius: 6px;\n }\n\n & [data-expand-down] {\n border-bottom-left-radius: unset;\n border-top-left-radius: unset;\n }\n }\n }\n }\n }\n\n @media (pointer: fine) {\n [data-separator-wrapper][data-separator-multi-button] {\n grid-template-rows: 50% 50%;\n display: grid;\n\n & [data-separator-content] {\n grid-area: 1 / 2 / -1;\n min-width: min-content;\n }\n\n & [data-expand-button] {\n grid-column: 1;\n }\n }\n\n [data-separator=\"line-info\"] [data-separator-wrapper], [data-separator=\"line-info\"] [data-separator-wrapper][data-separator-multi-button] {\n grid-template-columns: 34px auto;\n }\n\n [data-separator=\"line-info-basic\"][data-expand-index] [data-separator-wrapper] {\n grid-template-columns: 100% auto;\n }\n\n [data-separator=\"line-info\"], [data-separator=\"line-info-basic\"] {\n & [data-separator-multi-button] {\n & [data-expand-up] {\n border-bottom: 1px solid var(--diffs-bg);\n border-right: 2px solid var(--diffs-bg);\n }\n\n & [data-expand-down] {\n border-top: 1px solid var(--diffs-bg);\n border-right: 2px solid var(--diffs-bg);\n }\n }\n }\n }\n\n [data-additions] [data-gutter] [data-separator-wrapper], [data-additions] [data-separator=\"line-info-basic\"] [data-separator-wrapper], [data-content] [data-separator-wrapper] {\n display: none;\n }\n\n [data-line-annotation] {\n min-height: var(--diffs-annotation-min-height, 0);\n z-index: 2;\n }\n\n [data-merge-conflict-actions] {\n z-index: 2;\n }\n\n [data-separator=\"custom\"] {\n grid-template-columns: subgrid;\n display: grid;\n }\n\n [data-line], [data-column-number], [data-no-newline] {\n padding-inline: 1ch;\n position: relative;\n }\n\n [data-indicators=\"classic\"] [data-line] {\n padding-inline-start: 2ch;\n }\n\n [data-indicators=\"classic\"] {\n & [data-line-type=\"change-addition\"], & [data-line-type=\"change-deletion\"] {\n &[data-no-newline], &[data-line] {\n &:before {\n user-select: none;\n width: 1ch;\n height: 1lh;\n display: inline-block;\n position: absolute;\n top: 0;\n left: 0;\n }\n }\n }\n\n & [data-line-type=\"change-addition\"] {\n &[data-line], &[data-no-newline] {\n &:before {\n content: \"+\";\n color: var(--diffs-addition-base);\n }\n }\n }\n\n & [data-line-type=\"change-deletion\"] {\n &[data-line], &[data-no-newline] {\n &:before {\n content: \"-\";\n color: var(--diffs-deletion-base);\n }\n }\n }\n }\n\n [data-indicators=\"bars\"] {\n & [data-line-type=\"change-deletion\"], & [data-line-type=\"change-addition\"] {\n &[data-column-number] {\n &:before {\n content: \"\";\n user-select: none;\n contain: strict;\n width: 4px;\n height: 100%;\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n }\n }\n }\n\n & [data-line-type=\"change-deletion\"] {\n &[data-column-number] {\n &:before {\n background-image: linear-gradient(0deg,\n var(--diffs-bg-deletion) 50%,\n var(--diffs-deletion-base) 50%);\n background-repeat: repeat;\n background-size: 2px 2px;\n background-size: calc(1lh / round(1lh / 2px))\n calc(1lh / round(1lh / 2px));\n }\n }\n }\n\n & [data-line-type=\"change-addition\"] {\n &[data-column-number] {\n &:before {\n background-color: var(--diffs-addition-base);\n }\n }\n }\n }\n\n [data-overflow=\"wrap\"] {\n & [data-line], & [data-annotation-content] {\n white-space: pre-wrap;\n word-break: break-word;\n }\n }\n\n [data-overflow=\"scroll\"] [data-line] {\n white-space: pre;\n min-height: 1lh;\n }\n\n [data-column-number] {\n box-sizing: content-box;\n text-align: right;\n user-select: none;\n color: var(--diffs-fg-number);\n padding-left: 2ch;\n }\n\n [data-line-number-content] {\n min-width: var(--diffs-min-number-column-width, var(--diffs-min-number-column-width-default, 3ch));\n z-index: 1;\n display: inline-block;\n position: relative;\n }\n\n [data-disable-line-numbers] {\n & [data-gutter-buffer], & [data-column-number] {\n min-width: 4px;\n padding: 0;\n\n &:before {\n min-width: 0;\n }\n }\n\n & [data-line-number-content] {\n display: none;\n }\n\n & [data-gutter-utility-slot] {\n right: unset;\n justify-content: flex-start;\n left: 0;\n }\n\n &[data-indicators=\"bars\"] [data-gutter-utility-slot] {\n left: 6px;\n }\n }\n\n [data-file][data-disable-line-numbers] {\n & [data-gutter-buffer], & [data-column-number] {\n border-right: 0;\n min-width: 0;\n }\n }\n\n [data-diff-span] {\n box-decoration-break: clone;\n border-radius: 3px;\n }\n\n [data-line-type=\"change-addition\"] [data-diff-span] {\n background-color: var(--diffs-bg-addition-emphasis);\n }\n\n [data-line-type=\"change-deletion\"] [data-diff-span] {\n background-color: var(--diffs-bg-deletion-emphasis);\n }\n\n [data-merge-conflict=\"marker-start\"], [data-merge-conflict=\"marker-base\"], [data-merge-conflict=\"marker-separator\"], [data-merge-conflict=\"marker-end\"] {\n color: var(--diffs-fg);\n padding-left: 1ch;\n }\n\n [data-merge-conflict=\"marker-start\"], [data-merge-conflict=\"marker-end\"] {\n align-items: center;\n display: flex;\n\n &:after {\n color: var(--diffs-fg-conflict-marker);\n font-size: .75rem;\n font-style: normal;\n line-height: 1.25rem;\n font-family: var(--diffs-header-font-family, var(--diffs-header-font-fallback));\n padding-left: 1ch;\n }\n }\n\n [data-merge-conflict=\"marker-start\"]:after {\n content: \"(Current Change)\";\n }\n\n [data-merge-conflict=\"marker-end\"]:after {\n content: \"(Incoming Change)\";\n }\n\n [data-merge-conflict-actions-content] {\n min-height: 1.75rem;\n font-family: var(--diffs-header-font-family, var(--diffs-header-font-fallback));\n color: var(--diffs-fg);\n align-items: center;\n gap: .25rem;\n padding-inline: .5rem;\n font-size: .75rem;\n line-height: 1.2;\n display: flex;\n }\n\n [data-merge-conflict-action] {\n appearance: none;\n color: var(--diffs-fg-number);\n font: inherit;\n cursor: pointer;\n background: none;\n border: 0;\n padding: 0;\n font-style: normal;\n }\n\n [data-merge-conflict-action]:hover {\n color: var(--diffs-fg);\n }\n\n [data-merge-conflict-action=\"current\"]:hover {\n color: var(--diffs-addition-base);\n }\n\n [data-merge-conflict-action=\"incoming\"]:hover {\n color: var(--diffs-modified-base);\n }\n\n [data-merge-conflict-action-separator] {\n color: var(--diffs-fg-number);\n opacity: .6;\n user-select: none;\n }\n\n [data-diffs-header=\"default\"] {\n background-color: var(--diffs-bg);\n justify-content: space-between;\n align-items: center;\n gap: var(--diffs-gap-inline, var(--diffs-gap-fallback));\n min-height: calc(1lh + (var(--diffs-gap-block, var(--diffs-gap-fallback)) * 3));\n z-index: 2;\n flex-direction: row;\n padding-inline: 16px;\n display: flex;\n position: relative;\n top: 0;\n }\n\n [data-header-content] {\n align-items: center;\n gap: var(--diffs-gap-inline, var(--diffs-gap-fallback));\n white-space: nowrap;\n flex-direction: row;\n min-width: 0;\n display: flex;\n }\n\n [data-header-content] [data-prev-name], [data-header-content] [data-title] {\n text-overflow: ellipsis;\n white-space: nowrap;\n direction: rtl;\n min-width: 0;\n overflow: hidden;\n }\n\n [data-prev-name] {\n opacity: .7;\n }\n\n [data-rename-icon] {\n fill: currentColor;\n flex-grow: 0;\n flex-shrink: 0;\n }\n\n [data-diffs-header=\"default\"] [data-metadata] {\n white-space: nowrap;\n align-items: center;\n gap: 1ch;\n display: flex;\n }\n\n [data-diffs-header=\"default\"] [data-additions-count] {\n font-family: var(--diffs-font-family, var(--diffs-font-fallback));\n color: var(--diffs-addition-base);\n }\n\n [data-diffs-header=\"default\"] [data-deletions-count] {\n font-family: var(--diffs-font-family, var(--diffs-font-fallback));\n color: var(--diffs-deletion-base);\n }\n\n [data-change-icon] {\n fill: currentColor;\n flex-shrink: 0;\n }\n\n [data-change-icon=\"change\"], [data-change-icon=\"rename-pure\"], [data-change-icon=\"rename-changed\"] {\n color: var(--diffs-modified-base);\n }\n\n [data-change-icon=\"new\"] {\n color: var(--diffs-addition-base);\n }\n\n [data-change-icon=\"deleted\"] {\n color: var(--diffs-deletion-base);\n }\n\n [data-change-icon=\"file\"] {\n opacity: .6;\n }\n\n [data-annotation-content] {\n z-index: 2;\n isolation: isolate;\n align-self: flex-start;\n min-width: 0;\n display: flow-root;\n position: relative;\n }\n\n [data-overflow=\"scroll\"] [data-annotation-content], [data-overflow=\"scroll\"] [data-merge-conflict-actions-content] {\n width: var(--diffs-column-content-width, auto);\n left: var(--diffs-column-number-width, 0);\n position: sticky;\n }\n\n [data-annotation-slot] {\n text-wrap-mode: wrap;\n word-break: normal;\n white-space-collapse: collapse;\n }\n\n [data-gutter-utility-slot] {\n touch-action: none;\n justify-content: flex-end;\n display: flex;\n position: absolute;\n top: 0;\n bottom: 0;\n right: 0;\n }\n\n [data-utility-button] {\n appearance: none;\n cursor: pointer;\n width: 1lh;\n height: 1lh;\n font-size: var(--diffs-font-size, 13px);\n line-height: var(--diffs-line-height, 20px);\n background-color: var(--diffs-modified-base);\n color: var(--diffs-bg);\n fill: currentColor;\n z-index: 4;\n touch-action: none;\n border: none;\n border-radius: 4px;\n justify-content: center;\n align-items: center;\n margin-right: calc(-1lh + 1ch);\n padding: 0;\n display: flex;\n position: relative;\n\n &:before {\n content: \"\";\n display: block;\n position: absolute;\n inset: 0 0 0 -4px;\n }\n }\n\n [data-decoration-bar-stack] {\n pointer-events: none;\n isolation: isolate;\n z-index: 1;\n background-color: var(--diffs-decoration-bar-color, transparent);\n box-sizing: content-box;\n border-left: 2px solid var(--diffs-bg);\n border-right: 2px solid var(--diffs-bg);\n width: 6px;\n position: absolute;\n top: 0;\n bottom: 0;\n right: -2px;\n\n [data-decoration-bar-depth=\"1\"] & {\n background-color: color-mix(in lab,\n var(--diffs-bg) 20%,\n var(--diffs-decoration-bar-color, transparent));\n }\n\n [data-decoration-bar-depth=\"2\"] & {\n background-color: color-mix(in lab,\n var(--diffs-bg) 45%,\n var(--diffs-decoration-bar-color, transparent));\n }\n\n [data-decoration-bar-depth=\"3\"] & {\n background-color: color-mix(in lab,\n var(--diffs-bg) 65%,\n var(--diffs-decoration-bar-color, transparent));\n }\n\n [data-decoration-bar-start] & {\n border-top-left-radius: 5px;\n border-top-right-radius: 5px;\n }\n\n [data-decoration-bar-end] & {\n z-index: 3;\n border-bottom-right-radius: 5px;\n border-bottom-left-radius: 5px;\n }\n }\n\n [data-placeholder] {\n contain: strict;\n }\n\n [data-error-wrapper] {\n padding: var(--diffs-gap-block, var(--diffs-gap-fallback))\n var(--diffs-gap-inline, var(--diffs-gap-fallback));\n scrollbar-width: none;\n max-height: 400px;\n overflow: auto;\n\n & [data-error-message] {\n color: var(--diffs-deletion-base);\n font-size: 18px;\n font-weight: bold;\n }\n\n & [data-error-stack] {\n color: var(--diffs-fg-number);\n }\n }\n}\n\n@layer theme, rendered, unsafe;\n";
|
|
2
|
+
var style_default = "@layer base {\n :host {\n --diffs-font-fallback: \"SF Mono\", Monaco, Consolas, \"Ubuntu Mono\", \"Liberation Mono\",\n \"Courier New\", monospace;\n --diffs-header-font-fallback: system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\",\n \"Noto Sans\", \"Liberation Sans\", Arial, sans-serif;\n --diffs-mixer: light-dark(#000, #fff);\n --diffs-gap-fallback: 8px;\n --diffs-scrollbar-gutter-fallback: 6px;\n --diffs-scrollbar-gutter: var(--diffs-scrollbar-gutter-override, var(--diffs-scrollbar-gutter-measured, var(--diffs-scrollbar-gutter-fallback)));\n --diffs-added-light: #0dbe4e;\n --diffs-added-dark: #5ecc71;\n --diffs-modified-light: #009fff;\n --diffs-modified-dark: #69b1ff;\n --diffs-deleted-light: #ff2e3f;\n --diffs-deleted-dark: #ff6762;\n --diffs-warning-light: #d5a910;\n --diffs-warning-dark: #ffd452;\n color-scheme: light dark;\n font-family: var(--diffs-header-font-family, var(--diffs-header-font-fallback));\n font-size: var(--diffs-font-size, 13px);\n line-height: var(--diffs-line-height, 20px);\n font-feature-settings: var(--diffs-font-features);\n --diffs-bg: light-dark(var(--diffs-light-bg, #fff), var(--diffs-dark-bg, #000));\n --diffs-bg-buffer: var(--diffs-bg-buffer-override, light-dark(color-mix(in lab, var(--diffs-bg) 92%, var(--diffs-mixer)), color-mix(in lab, var(--diffs-bg) 92%, var(--diffs-mixer))));\n --diffs-bg-context: var(--diffs-bg-context-override, light-dark(color-mix(in lab, var(--diffs-bg) 98.5%, var(--diffs-mixer)), color-mix(in lab, var(--diffs-bg) 92.5%, var(--diffs-mixer))));\n --diffs-bg-context-gutter: var(--diffs-bg-context-gutter-override, light-dark(color-mix(in lab, var(--diffs-bg-context) 90%, var(--diffs-bg)), color-mix(in lab, var(--diffs-bg-context) 45%, var(--diffs-bg))));\n --diffs-bg-separator: var(--diffs-bg-separator-override, light-dark(color-mix(in lab, var(--diffs-bg) 96%, var(--diffs-mixer)), color-mix(in lab, var(--diffs-bg) 85%, var(--diffs-mixer))));\n --diffs-fg: light-dark(var(--diffs-light, #000), var(--diffs-dark, #fff));\n --diffs-fg-number: var(--diffs-fg-number-override, light-dark(color-mix(in lab, var(--diffs-fg) 65%, var(--diffs-bg)), color-mix(in lab, var(--diffs-fg) 65%, var(--diffs-bg))));\n --diffs-fg-conflict-marker: var(--diffs-fg-conflict-marker-override, var(--diffs-fg-number));\n --diffs-deletion-base: var(--diffs-deletion-color-override, light-dark(var(--diffs-light-deletion-color, var(--diffs-deletion-color, var(--diffs-deleted-light))), var(--diffs-dark-deletion-color, var(--diffs-deletion-color, var(--diffs-deleted-dark)))));\n --diffs-addition-base: var(--diffs-addition-color-override, light-dark(var(--diffs-light-addition-color, var(--diffs-addition-color, var(--diffs-added-light))), var(--diffs-dark-addition-color, var(--diffs-addition-color, var(--diffs-added-dark)))));\n --diffs-modified-base: var(--diffs-modified-color-override, light-dark(var(--diffs-light-modified-color, var(--diffs-modified-color, var(--diffs-modified-light))), var(--diffs-dark-modified-color, var(--diffs-modified-color, var(--diffs-modified-dark)))));\n --diffs-bg-deletion: var(--diffs-bg-deletion-override, light-dark(color-mix(in lab, var(--diffs-bg) 88%, var(--diffs-deletion-base)), color-mix(in lab, var(--diffs-bg) 80%, var(--diffs-deletion-base))));\n --diffs-bg-deletion-emphasis: var(--diffs-bg-deletion-emphasis-override, light-dark(rgb(from var(--diffs-deletion-base) r g b / .15), rgb(from var(--diffs-deletion-base) r g b / .2)));\n --diffs-bg-addition: var(--diffs-bg-addition-override, light-dark(color-mix(in lab, var(--diffs-bg) 88%, var(--diffs-addition-base)), color-mix(in lab, var(--diffs-bg) 80%, var(--diffs-addition-base))));\n --diffs-bg-addition-emphasis: var(--diffs-bg-addition-emphasis-override, light-dark(rgb(from var(--diffs-addition-base) r g b / .15), rgb(from var(--diffs-addition-base) r g b / .2)));\n --diffs-selection-base: var(--diffs-modified-base);\n --diffs-selection-number-fg: light-dark(color-mix(in lab, var(--diffs-selection-base) 65%, var(--diffs-mixer)), color-mix(in lab, var(--diffs-selection-base) 75%, var(--diffs-mixer)));\n background-color: var(--diffs-bg);\n color: var(--diffs-fg);\n display: block;\n }\n\n pre, code, [data-error-wrapper] {\n isolation: isolate;\n font-family: var(--diffs-font-family, var(--diffs-font-fallback));\n outline: none;\n margin: 0;\n padding: 0;\n display: block;\n }\n\n pre, code {\n background-color: var(--diffs-bg);\n }\n\n code {\n contain: content;\n }\n\n input, button {\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n }\n\n *, :before, :after {\n box-sizing: border-box;\n }\n\n [data-icon-sprite] {\n display: none;\n }\n\n [data-diffs-header], [data-separator] {\n font-family: var(--diffs-header-font-family, var(--diffs-header-font-fallback));\n }\n\n [data-diffs-header][data-sticky] {\n z-index: 1;\n background-color: var(--diffs-bg);\n position: sticky;\n top: 0;\n }\n\n [data-file-info] {\n color: var(--fg);\n background-color: color-mix(in lab, var(--bg) 98%, var(--fg));\n border-block: 1px solid color-mix(in lab, var(--bg) 95%, var(--fg));\n padding: 10px;\n font-weight: 700;\n }\n\n [data-diff], [data-file] {\n --diffs-grid-number-column-width: minmax(min-content, max-content);\n --diffs-code-grid: var(--diffs-grid-number-column-width) 1fr;\n\n &[data-dehydrated] {\n --diffs-code-grid: var(--diffs-grid-number-column-width) minmax(0, 1fr);\n }\n\n &:hover [data-code]::-webkit-scrollbar-thumb {\n background-color: var(--diffs-bg-context);\n }\n }\n\n @supports (-webkit-touch-callout: none) {\n :host {\n --diffs-scrollbar-gutter-fallback: 0px;\n }\n }\n\n [data-line] span {\n color: light-dark(var(--diffs-token-light, var(--diffs-light)), var(--diffs-token-dark, var(--diffs-dark)));\n background-color: light-dark(var(--diffs-token-light-bg, inherit), var(--diffs-token-dark-bg, inherit));\n font-weight: light-dark(var(--diffs-token-light-font-weight, inherit), var(--diffs-token-dark-font-weight, inherit));\n font-style: light-dark(var(--diffs-token-light-font-style, inherit), var(--diffs-token-dark-font-style, inherit));\n text-decoration: light-dark(var(--diffs-token-light-text-decoration, inherit), var(--diffs-token-dark-text-decoration, inherit));\n }\n\n [data-line], [data-gutter-buffer], [data-column-number], [data-line-annotation], [data-no-newline], [data-merge-conflict], [data-merge-conflict-actions], [data-editor-overlay] {\n --diffs-computed-decoration-bg: var(--diffs-bg);\n --diffs-computed-diff-line-bg: var(--diffs-bg);\n --diffs-computed-selected-line-bg: var(--diffs-bg);\n color: var(--diffs-fg);\n background-color: var(--diffs-line-bg, var(--diffs-bg));\n\n @media (pointer: fine) {\n &:where([data-hovered]) {\n --diffs-computed-hovered-line-bg: light-dark(color-mix(in lab,\n var(--diffs-computed-selected-line-bg) 97%,\n var(--diffs-bg-hover-override, var(--diffs-mixer))), color-mix(in lab,\n var(--diffs-computed-selected-line-bg) 91%,\n var(--diffs-bg-hover-override, var(--diffs-mixer))));\n --diffs-line-bg: var(--diffs-computed-hovered-line-bg, inherit);\n }\n }\n }\n\n [data-line], [data-no-newline] {\n &[data-decoration-bg] {\n --mix-deco-light: 92%;\n --mix-deco-dark: 85%;\n\n &[data-decoration-bg-depth=\"2\"] {\n --mix-deco-light: 88%;\n --mix-deco-dark: 80%;\n }\n\n &[data-decoration-bg-depth=\"3\"] {\n --mix-deco-light: 85%;\n --mix-deco-dark: 78%;\n }\n\n @media (pointer: fine) {\n &[data-hovered]:not([data-selected-line]) {\n --mix-deco-light: 85%;\n --mix-deco-dark: 85%;\n }\n\n &[data-hovered]:not([data-selected-line])[data-decoration-bg-depth=\"2\"] {\n --mix-deco-light: 83%;\n --mix-deco-dark: 83%;\n }\n\n &[data-hovered]:not([data-selected-line])[data-decoration-bg-depth=\"3\"] {\n --mix-deco-light: 81%;\n --mix-deco-dark: 81%;\n }\n }\n\n --diffs-computed-decoration-bg: light-dark(color-mix(in lab,\n var(--diffs-bg) var(--mix-deco-light),\n var(--diffs-decoration-bg)), color-mix(in lab,\n var(--diffs-bg) var(--mix-deco-dark),\n var(--diffs-decoration-bg)));\n --diffs-computed-diff-line-bg: var(--diffs-computed-decoration-bg);\n --diffs-computed-selected-line-bg: var(--diffs-computed-decoration-bg);\n --diffs-line-bg: var(--diffs-computed-decoration-bg);\n }\n }\n\n [data-line-annotation], [data-gutter-buffer=\"annotation\"] {\n --diffs-annotation-bg: var(--diffs-bg-context);\n --diffs-computed-decoration-bg: var(--diffs-annotation-bg);\n --diffs-computed-diff-line-bg: var(--diffs-annotation-bg);\n --diffs-computed-selected-line-bg: var(--diffs-annotation-bg);\n --diffs-line-bg: var(--diffs-annotation-bg);\n }\n\n [data-merge-conflict-actions], [data-gutter-buffer=\"merge-conflict-action\"], [data-gutter-buffer=\"merge-conflict-marker-base\"], [data-gutter-buffer=\"merge-conflict-marker-separator\"], [data-merge-conflict=\"marker-base\"], [data-merge-conflict=\"marker-separator\"] {\n --diffs-computed-decoration-bg: var(--diffs-bg-context);\n --diffs-computed-diff-line-bg: var(--diffs-bg-context);\n --diffs-computed-selected-line-bg: var(--diffs-bg-context);\n --diffs-line-bg: var(--diffs-bg-context);\n }\n\n [data-gutter-buffer=\"merge-conflict-marker-start\"], [data-merge-conflict=\"marker-start\"] {\n --diffs-computed-decoration-bg: light-dark(color-mix(in lab,\n var(--diffs-bg) 78%,\n var(--conflict-bg-current-header-override, var(--diffs-addition-base))), color-mix(in lab,\n var(--diffs-bg) 68%,\n var(--conflict-bg-current-header-override, var(--diffs-addition-base))));\n --diffs-computed-diff-line-bg: var(--diffs-computed-decoration-bg);\n --diffs-computed-selected-line-bg: var(--diffs-computed-decoration-bg);\n --diffs-line-bg: var(--diffs-computed-decoration-bg);\n }\n\n [data-gutter-buffer=\"merge-conflict-marker-end\"], [data-merge-conflict=\"marker-end\"] {\n --diffs-computed-decoration-bg: light-dark(color-mix(in lab,\n var(--diffs-bg) 78%,\n var(--conflict-bg-incoming-header-override, var(--diffs-modified-base))), color-mix(in lab,\n var(--diffs-bg) 68%,\n var(--conflict-bg-incoming-header-override, var(--diffs-modified-base))));\n --diffs-computed-diff-line-bg: var(--diffs-computed-decoration-bg);\n --diffs-computed-selected-line-bg: var(--diffs-computed-decoration-bg);\n --diffs-line-bg: var(--diffs-computed-decoration-bg);\n }\n\n [data-has-merge-conflict] [data-line-annotation], [data-has-merge-conflict] [data-gutter-buffer=\"annotation\"] {\n --diffs-computed-decoration-bg: var(--diffs-bg);\n --diffs-computed-diff-line-bg: var(--diffs-bg);\n --diffs-computed-selected-line-bg: var(--diffs-bg);\n --diffs-line-bg: var(--diffs-bg);\n }\n\n :where([data-background]) {\n & [data-gutter-buffer], & [data-column-number] {\n --mix-light: 91%;\n --mix-dark: 85%;\n }\n\n & [data-line], & [data-no-newline] {\n --mix-light: 88%;\n --mix-dark: 80%;\n }\n\n & [data-gutter-buffer], & [data-column-number], & [data-line], & [data-no-newline] {\n --diffs-diff-line-mix-target: var(--diffs-bg);\n\n &[data-line-type=\"change-deletion\"] {\n --diffs-diff-line-mix-target: var(--diffs-bg-deletion-override, var(--diffs-deletion-base));\n\n @media (pointer: fine) {\n &[data-hovered] {\n --mix-light: 80%;\n --mix-dark: 75%;\n }\n }\n\n &:where([data-gutter-buffer], [data-column-number]) {\n color: var(--diffs-fg-number-deletion-override, var(--diffs-deletion-base));\n --diffs-diff-line-mix-target: var(--diffs-bg-deletion-number-override, var(--diffs-deletion-base));\n }\n\n --diffs-computed-diff-line-bg: light-dark(color-mix(in lab,\n var(--diffs-computed-decoration-bg) var(--mix-light),\n var(--diffs-diff-line-mix-target)), color-mix(in lab,\n var(--diffs-computed-decoration-bg) var(--mix-dark),\n var(--diffs-diff-line-mix-target)));\n --diffs-computed-selected-line-bg: var(--diffs-computed-diff-line-bg);\n --diffs-line-bg: var(--diffs-computed-diff-line-bg, inherit);\n }\n\n &[data-line-type=\"change-addition\"] {\n --diffs-diff-line-mix-target: var(--diffs-bg-addition-override, var(--diffs-addition-base));\n\n @media (pointer: fine) {\n &[data-hovered] {\n --mix-light: 80%;\n --mix-dark: 70%;\n }\n }\n\n &:where([data-gutter-buffer], [data-column-number]) {\n color: var(--diffs-fg-number-addition-override, var(--diffs-addition-base));\n --diffs-diff-line-mix-target: var(--diffs-bg-addition-number-override, var(--diffs-addition-base));\n }\n\n --diffs-computed-diff-line-bg: light-dark(color-mix(in lab,\n var(--diffs-computed-decoration-bg) var(--mix-light),\n var(--diffs-diff-line-mix-target)), color-mix(in lab,\n var(--diffs-computed-decoration-bg) var(--mix-dark),\n var(--diffs-diff-line-mix-target)));\n --diffs-computed-selected-line-bg: var(--diffs-computed-diff-line-bg);\n --diffs-line-bg: var(--diffs-computed-diff-line-bg, inherit);\n }\n\n &[data-merge-conflict=\"current\"] {\n --diffs-diff-line-mix-target: var(--conflict-bg-current-override, var(--diffs-addition-base));\n\n &:where([data-gutter-buffer], [data-column-number]) {\n color: var(--diffs-fg-number-addition-override, var(--diffs-addition-base));\n --diffs-diff-line-mix-target: var(--conflict-bg-current-number-override, var(--diffs-addition-base));\n }\n\n @media (pointer: fine) {\n &[data-hovered] {\n --mix-light: 80%;\n --mix-dark: 70%;\n }\n }\n\n --diffs-computed-diff-line-bg: light-dark(color-mix(in lab,\n var(--diffs-computed-decoration-bg) var(--mix-light),\n var(--diffs-diff-line-mix-target)), color-mix(in lab,\n var(--diffs-computed-decoration-bg) var(--mix-dark),\n var(--diffs-diff-line-mix-target)));\n --diffs-computed-selected-line-bg: var(--diffs-computed-diff-line-bg);\n --diffs-line-bg: var(--diffs-computed-diff-line-bg, inherit);\n }\n\n &[data-merge-conflict=\"incoming\"] {\n --diffs-diff-line-mix-target: var(--conflict-bg-incoming-override, var(--diffs-modified-base));\n\n &:where([data-gutter-buffer], [data-column-number]) {\n color: var(--diffs-modified-base);\n --diffs-diff-line-mix-target: var(--conflict-bg-incoming-number-override, var(--diffs-modified-base));\n }\n\n @media (pointer: fine) {\n &[data-hovered] {\n --mix-light: 80%;\n --mix-dark: 70%;\n }\n }\n\n --diffs-computed-diff-line-bg: light-dark(color-mix(in lab,\n var(--diffs-computed-decoration-bg) var(--mix-light),\n var(--diffs-diff-line-mix-target)), color-mix(in lab,\n var(--diffs-computed-decoration-bg) var(--mix-dark),\n var(--diffs-diff-line-mix-target)));\n --diffs-computed-selected-line-bg: var(--diffs-computed-diff-line-bg);\n --diffs-line-bg: var(--diffs-computed-diff-line-bg, inherit);\n }\n }\n }\n\n [data-gutter-buffer], [data-column-number], [data-line], [data-line-annotation], [data-merge-conflict], [data-merge-conflict-actions], [data-no-newline], [data-editor-overlay] {\n --diffs-selection-mix-target: var(--diffs-bg-selection-override, var(--diffs-selection-base));\n\n &:where([data-editor-overlay]), &:where([data-line], [data-line-annotation], [data-merge-conflict], [data-merge-conflict-actions], [data-no-newline])[data-selected-line] {\n --mix-selection-light: 82%;\n --mix-selection-dark: 75%;\n\n @media (pointer: fine) {\n &[data-hovered]:not([data-merge-conflict], [data-line-type=\"change-addition\"], [data-line-type=\"change-deletion\"]) {\n --mix-selection-light: 75%;\n --mix-selection-dark: 70%;\n }\n }\n }\n\n &:where([data-gutter-buffer], [data-column-number])[data-selected-line] {\n --mix-selection-light: 75%;\n --mix-selection-dark: 60%;\n --diffs-selection-mix-target: var(--diffs-bg-selection-number-override, var(--diffs-selection-base));\n\n @media (pointer: fine) {\n &[data-hovered]:not([data-merge-conflict], [data-line-type=\"change-addition\"], [data-line-type=\"change-deletion\"]) {\n --mix-selection-light: 70%;\n --mix-selection-dark: 55%;\n }\n }\n }\n\n &:where([data-editor-overlay]), &[data-selected-line] {\n --diffs-computed-selected-line-bg: light-dark(color-mix(in lab,\n var(--diffs-computed-diff-line-bg) var(--mix-selection-light),\n var(--diffs-selection-mix-target)), color-mix(in lab,\n var(--diffs-computed-diff-line-bg) var(--mix-selection-dark),\n var(--diffs-selection-mix-target)));\n --diffs-line-bg: var(--diffs-computed-selected-line-bg, inherit);\n }\n }\n\n [data-gutter-buffer], [data-column-number] {\n &[data-selected-line] {\n color: var(--diffs-selection-number-fg);\n }\n }\n\n [data-no-newline] {\n user-select: none;\n\n & span {\n opacity: .6;\n }\n }\n\n [data-diff-type=\"split\"][data-overflow=\"scroll\"] {\n grid-template-columns: 1fr 1fr;\n display: grid;\n\n & [data-additions] {\n border-left: 1px solid var(--diffs-bg);\n }\n\n & [data-deletions] {\n border-right: 1px solid var(--diffs-bg);\n }\n }\n\n [data-code] {\n grid-auto-flow: dense;\n grid-template-columns: var(--diffs-code-grid);\n overflow: var(--diffs-overflow-override, scroll) clip;\n overscroll-behavior-x: none;\n tab-size: var(--diffs-tab-size, 2);\n padding-top: var(--diffs-gap-block, var(--diffs-gap-fallback));\n padding-bottom: max(0px,\n calc(var(--diffs-gap-block, var(--diffs-gap-fallback)) -\n var(--diffs-scrollbar-gutter)));\n scrollbar-gutter: stable;\n align-self: flex-start;\n display: grid;\n }\n\n [data-diffs-scrollbar-measure] {\n opacity: 0;\n pointer-events: none;\n scrollbar-gutter: auto;\n grid-template-columns: none;\n width: 100px;\n height: 100px;\n padding: 0;\n position: absolute;\n top: -200px;\n left: -200px;\n }\n\n [data-container-size] {\n container-type: inline-size;\n }\n\n [data-code]::-webkit-scrollbar {\n width: 0;\n height: var(--diffs-scrollbar-gutter);\n }\n\n [data-code]::-webkit-scrollbar-track {\n background: none;\n }\n\n [data-code]::-webkit-scrollbar-thumb {\n background-color: #0000;\n background-clip: content-box;\n border: 1px solid #0000;\n border-radius: 3px;\n }\n\n [data-code]::-webkit-scrollbar-corner {\n background-color: #0000;\n }\n\n @supports ((-moz-appearance: none)) {\n [data-code] {\n scrollbar-width: thin;\n scrollbar-color: var(--diffs-bg-context) transparent;\n padding-bottom: var(--diffs-gap-block, var(--diffs-gap-fallback));\n }\n }\n\n [data-diffs-header] ~ [data-diff], [data-diffs-header] ~ [data-file] {\n & [data-code], &[data-overflow=\"wrap\"] {\n padding-top: 0;\n }\n }\n\n [data-gutter] {\n grid-template-rows: subgrid;\n grid-template-columns: subgrid;\n z-index: 3;\n background-color: var(--diffs-bg);\n grid-column: 1;\n display: grid;\n position: relative;\n\n & [data-gutter-buffer], & [data-column-number] {\n border-right: var(--diffs-gap-style, 2px solid var(--diffs-bg));\n }\n }\n\n [data-content] {\n grid-template-rows: subgrid;\n grid-template-columns: subgrid;\n background-color: var(--diffs-bg);\n grid-column: 2;\n min-width: 0;\n display: grid;\n }\n\n [data-diff-type=\"split\"][data-overflow=\"wrap\"] {\n grid-auto-flow: dense;\n grid-template-columns: repeat(2, var(--diffs-code-grid));\n padding-block: var(--diffs-gap-block, var(--diffs-gap-fallback));\n display: grid;\n\n & [data-deletions] {\n display: contents;\n\n & [data-gutter] {\n grid-column: 1;\n }\n\n & [data-content] {\n border-right: 1px solid var(--diffs-bg);\n grid-column: 2;\n }\n }\n\n & [data-additions] {\n display: contents;\n\n & [data-gutter] {\n border-left: 1px solid var(--diffs-bg);\n grid-column: 3;\n }\n\n & [data-content] {\n grid-column: 4;\n }\n }\n }\n\n [data-overflow=\"scroll\"] [data-gutter] {\n position: sticky;\n left: 0;\n }\n\n [data-interactive-lines] [data-line] {\n cursor: pointer;\n }\n\n [data-interactive-line-numbers] [data-column-number] {\n cursor: pointer;\n touch-action: none;\n }\n\n [data-content-buffer], [data-gutter-buffer] {\n user-select: none;\n min-height: 1lh;\n position: relative;\n }\n\n [data-gutter-buffer] {\n padding-left: 2ch;\n padding-right: 1ch;\n\n &:before {\n content: \"\";\n min-width: var(--diffs-min-number-column-width, var(--diffs-min-number-column-width-default, 3ch));\n display: block;\n }\n }\n\n [data-gutter-buffer=\"annotation\"] {\n --diffs-annotation-bg: var(--diffs-bg-context-gutter);\n min-height: 0;\n }\n\n [data-gutter-buffer=\"buffer\"] {\n --diffs-line-bg: var(--diffs-bg-context-gutter);\n }\n\n [data-content-buffer] {\n background-position: 5px 0;\n background-size: 8px 8px;\n background-origin: border-box;\n background-image: repeating-linear-gradient(-45deg,\n transparent,\n transparent calc(3px * 1.414),\n var(--diffs-bg-buffer) calc(3px * 1.414),\n var(--diffs-bg-buffer) calc(4px * 1.414));\n grid-column: 1;\n }\n\n [data-separator] {\n box-sizing: content-box;\n background-color: var(--diffs-bg);\n }\n\n [data-separator=\"simple\"] {\n min-height: 4px;\n }\n\n [data-separator=\"line-info\"], [data-separator=\"line-info-basic\"], [data-separator=\"metadata\"], [data-separator=\"simple\"] {\n background-color: var(--diffs-bg-separator);\n }\n\n [data-separator=\"line-info\"], [data-separator=\"line-info-basic\"], [data-separator=\"metadata\"] {\n height: 32px;\n position: relative;\n }\n\n [data-separator-wrapper] {\n user-select: none;\n fill: currentColor;\n background-color: var(--diffs-bg);\n align-items: center;\n height: 100%;\n display: flex;\n position: absolute;\n inset-inline: 0;\n }\n\n [data-content] [data-separator-wrapper] {\n display: none;\n }\n\n [data-separator=\"metadata\"] [data-separator-wrapper] {\n background-color: var(--diffs-bg-separator);\n height: 100%;\n color: var(--diffs-fg-number);\n white-space: nowrap;\n text-overflow: ellipsis;\n min-width: min-content;\n padding-inline: 1ch;\n inset-inline: 100% auto;\n overflow: hidden;\n }\n\n [data-separator=\"line-info\"] {\n margin-block: var(--diffs-gap-block, var(--diffs-gap-fallback));\n\n & [data-separator-wrapper] {\n min-width: 16px;\n }\n }\n\n [data-separator=\"line-info-basic\"], [data-separator=\"metadata\"] {\n margin-block: 0;\n }\n\n [data-separator=\"line-info\"][data-separator-first] {\n margin-top: 0;\n }\n\n [data-separator=\"line-info\"][data-separator-last] {\n margin-bottom: 0;\n }\n\n [data-expand-index] [data-separator-wrapper] {\n grid-template-columns: 32px auto;\n display: grid;\n }\n\n [data-expand-index] [data-separator-wrapper][data-separator-multi-button] {\n grid-template-columns: 32px 32px auto;\n }\n\n [data-expand-button], [data-separator-content] {\n background-color: var(--diffs-bg-separator);\n flex: none;\n align-items: center;\n display: flex;\n }\n\n [data-expand-index] [data-separator-content]:hover {\n cursor: pointer;\n text-decoration: underline;\n }\n\n [data-expand-button] {\n cursor: pointer;\n min-width: 32px;\n color: var(--diffs-fg-number);\n border-right: 2px solid var(--diffs-bg);\n flex-shrink: 0;\n justify-content: center;\n align-self: stretch;\n\n &:hover {\n color: var(--diffs-fg);\n }\n\n &[data-expand-all-button] {\n display: none;\n }\n }\n\n [data-expand-down] [data-icon] {\n transform: scaleY(-1);\n }\n\n [data-separator-content] {\n height: 100%;\n color: var(--diffs-fg-number);\n flex: auto;\n justify-content: flex-start;\n padding: 0 1ch;\n overflow: hidden;\n }\n\n [data-separator=\"line-info\"], [data-separator=\"line-info-basic\"] {\n & [data-separator-content] {\n user-select: none;\n height: 100%;\n overflow: clip;\n }\n }\n\n [data-unmodified-lines] {\n text-overflow: ellipsis;\n white-space: nowrap;\n flex: 0 auto;\n min-width: 0;\n display: block;\n overflow: hidden;\n }\n\n @supports (width: 1cqi) {\n [data-unified] {\n & [data-separator=\"line-info\"] [data-separator-wrapper] {\n padding-inline: var(--diffs-gap-inline, var(--diffs-gap-fallback));\n width: 100cqi;\n\n & [data-separator-content] {\n border-radius: 6px;\n }\n }\n\n & [data-separator=\"line-info\"][data-expand-index] [data-separator-wrapper] [data-separator-content] {\n border-top-left-radius: unset;\n border-bottom-left-radius: unset;\n }\n }\n\n [data-gutter] {\n & [data-separator=\"line-info\"] [data-separator-wrapper] {\n padding-left: var(--diffs-gap-inline, var(--diffs-gap-fallback));\n }\n\n & [data-separator=\"line-info\"] [data-separator-content] {\n border-top-left-radius: 6px;\n border-bottom-left-radius: 6px;\n }\n\n & [data-separator=\"line-info\"][data-expand-index] [data-separator-content] {\n border-top-left-radius: unset;\n border-bottom-left-radius: unset;\n }\n }\n\n [data-additions] {\n & [data-content] [data-separator=\"line-info\"] {\n background-color: var(--diffs-bg);\n\n & [data-separator-wrapper] {\n display: none;\n }\n }\n\n & [data-gutter] [data-separator=\"line-info\"] [data-separator-wrapper] {\n background-color: var(--diffs-bg-separator);\n border-top-right-radius: 6px;\n border-bottom-right-radius: 6px;\n height: 100%;\n display: block;\n\n & [data-separator-content], & [data-expand-button] {\n display: none;\n }\n }\n }\n\n [data-overflow=\"scroll\"] [data-additions] [data-gutter] [data-separator=\"line-info\"] [data-separator-wrapper] {\n width: calc(100cqi - var(--diffs-gap-inline, var(--diffs-gap-fallback)));\n }\n\n [data-overflow=\"wrap\"] [data-additions] [data-content] [data-separator=\"line-info\"] [data-separator-wrapper] {\n background-color: var(--diffs-bg-separator);\n height: 100%;\n margin-right: var(--diffs-gap-inline, var(--diffs-gap-fallback));\n border-top-right-radius: 6px;\n border-bottom-right-radius: 6px;\n display: block;\n\n & [data-separator-content], & [data-expand-button] {\n display: none;\n }\n }\n\n [data-separator=\"line-info\"] [data-separator-wrapper] {\n & [data-expand-both], & [data-expand-down], & [data-expand-up] {\n border-top-left-radius: 6px;\n border-bottom-left-radius: 6px;\n }\n }\n\n @media (pointer: fine) {\n [data-separator=\"line-info\"] [data-separator-wrapper] {\n &[data-separator-multi-button] {\n & [data-expand-up] {\n border-top-left-radius: 6px;\n border-bottom-left-radius: unset;\n }\n\n & [data-expand-down] {\n border-bottom-left-radius: 6px;\n border-top-left-radius: unset;\n }\n }\n }\n }\n }\n\n @media (pointer: coarse) {\n [data-separator=\"line-info-basic\"] [data-separator-wrapper][data-separator-multi-button] {\n grid-template-columns: 34px 34px auto;\n\n & [data-separator-content] {\n grid-column: unset;\n grid-row: unset;\n }\n }\n\n @supports (width: 1cqi) {\n [data-separator=\"line-info\"] [data-separator-wrapper] {\n & [data-expand-both], & [data-expand-down], & [data-expand-up] {\n border-top-left-radius: 6px;\n border-bottom-left-radius: 6px;\n }\n\n &[data-separator-multi-button] {\n & [data-expand-up] {\n border-top-left-radius: 6px;\n border-bottom-left-radius: 6px;\n }\n\n & [data-expand-down] {\n border-bottom-left-radius: unset;\n border-top-left-radius: unset;\n }\n }\n }\n }\n }\n\n @media (pointer: fine) {\n [data-separator-wrapper][data-separator-multi-button] {\n grid-template-rows: 50% 50%;\n display: grid;\n\n & [data-separator-content] {\n grid-area: 1 / 2 / -1;\n min-width: min-content;\n }\n\n & [data-expand-button] {\n grid-column: 1;\n }\n }\n\n [data-separator=\"line-info\"] [data-separator-wrapper], [data-separator=\"line-info\"] [data-separator-wrapper][data-separator-multi-button] {\n grid-template-columns: 34px auto;\n }\n\n [data-separator=\"line-info-basic\"][data-expand-index] [data-separator-wrapper] {\n grid-template-columns: 100% auto;\n }\n\n [data-separator=\"line-info\"], [data-separator=\"line-info-basic\"] {\n & [data-separator-multi-button] {\n & [data-expand-up] {\n border-bottom: 1px solid var(--diffs-bg);\n border-right: 2px solid var(--diffs-bg);\n }\n\n & [data-expand-down] {\n border-top: 1px solid var(--diffs-bg);\n border-right: 2px solid var(--diffs-bg);\n }\n }\n }\n }\n\n [data-additions] [data-gutter] [data-separator-wrapper], [data-additions] [data-separator=\"line-info-basic\"] [data-separator-wrapper], [data-content] [data-separator-wrapper] {\n display: none;\n }\n\n [data-line-annotation] {\n min-height: var(--diffs-annotation-min-height, 0);\n z-index: 2;\n }\n\n [data-merge-conflict-actions] {\n z-index: 2;\n }\n\n [data-separator=\"custom\"] {\n grid-template-columns: subgrid;\n display: grid;\n }\n\n [data-line], [data-column-number], [data-no-newline] {\n padding-inline: 1ch;\n position: relative;\n }\n\n [data-indicators=\"classic\"] [data-line] {\n padding-inline-start: 2ch;\n }\n\n [data-indicators=\"classic\"] {\n & [data-line-type=\"change-addition\"], & [data-line-type=\"change-deletion\"] {\n &[data-no-newline], &[data-line] {\n &:before {\n user-select: none;\n width: 1ch;\n height: 1lh;\n display: inline-block;\n position: absolute;\n top: 0;\n left: 0;\n }\n }\n }\n\n & [data-line-type=\"change-addition\"] {\n &[data-line], &[data-no-newline] {\n &:before {\n content: \"+\";\n color: var(--diffs-addition-base);\n }\n }\n }\n\n & [data-line-type=\"change-deletion\"] {\n &[data-line], &[data-no-newline] {\n &:before {\n content: \"-\";\n color: var(--diffs-deletion-base);\n }\n }\n }\n }\n\n [data-indicators=\"bars\"] {\n & [data-line-type=\"change-deletion\"], & [data-line-type=\"change-addition\"] {\n &[data-column-number] {\n &:before {\n content: \"\";\n user-select: none;\n contain: strict;\n width: 4px;\n height: 100%;\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n }\n }\n }\n\n & [data-line-type=\"change-deletion\"] {\n &[data-column-number] {\n &:before {\n background-image: linear-gradient(0deg,\n var(--diffs-bg-deletion) 50%,\n var(--diffs-deletion-base) 50%);\n background-repeat: repeat;\n background-size: 2px 2px;\n background-size: calc(1lh / round(1lh / 2px))\n calc(1lh / round(1lh / 2px));\n }\n }\n }\n\n & [data-line-type=\"change-addition\"] {\n &[data-column-number] {\n &:before {\n background-color: var(--diffs-addition-base);\n }\n }\n }\n }\n\n [data-overflow=\"wrap\"] {\n & [data-line], & [data-annotation-content] {\n white-space: pre-wrap;\n word-break: break-word;\n }\n }\n\n [data-overflow=\"scroll\"] [data-line] {\n white-space: pre;\n min-height: 1lh;\n }\n\n [data-column-number] {\n box-sizing: content-box;\n text-align: right;\n user-select: none;\n color: var(--diffs-fg-number);\n padding-left: 2ch;\n }\n\n [data-line-number-content] {\n min-width: var(--diffs-min-number-column-width, var(--diffs-min-number-column-width-default, 3ch));\n z-index: 1;\n display: inline-block;\n position: relative;\n }\n\n [data-disable-line-numbers] {\n & [data-gutter-buffer], & [data-column-number] {\n min-width: 4px;\n padding: 0;\n\n &:before {\n min-width: 0;\n }\n }\n\n & [data-line-number-content] {\n display: none;\n }\n\n & [data-gutter-utility-slot] {\n right: unset;\n justify-content: flex-start;\n left: 0;\n }\n\n &[data-indicators=\"bars\"] [data-gutter-utility-slot] {\n left: 6px;\n }\n }\n\n [data-file][data-disable-line-numbers] {\n & [data-gutter-buffer], & [data-column-number] {\n border-right: 0;\n min-width: 0;\n }\n }\n\n [data-diff-span] {\n box-decoration-break: clone;\n border-radius: 3px;\n }\n\n [data-line-type=\"change-addition\"] [data-diff-span] {\n background-color: var(--diffs-bg-addition-emphasis);\n }\n\n [data-line-type=\"change-deletion\"] [data-diff-span] {\n background-color: var(--diffs-bg-deletion-emphasis);\n }\n\n [data-merge-conflict=\"marker-start\"], [data-merge-conflict=\"marker-base\"], [data-merge-conflict=\"marker-separator\"], [data-merge-conflict=\"marker-end\"] {\n color: var(--diffs-fg);\n padding-left: 1ch;\n }\n\n [data-merge-conflict=\"marker-start\"], [data-merge-conflict=\"marker-end\"] {\n align-items: center;\n display: flex;\n\n &:after {\n color: var(--diffs-fg-conflict-marker);\n font-size: .75rem;\n font-style: normal;\n line-height: 1.25rem;\n font-family: var(--diffs-header-font-family, var(--diffs-header-font-fallback));\n padding-left: 1ch;\n }\n }\n\n [data-merge-conflict=\"marker-start\"]:after {\n content: \"(Current Change)\";\n }\n\n [data-merge-conflict=\"marker-end\"]:after {\n content: \"(Incoming Change)\";\n }\n\n [data-merge-conflict-actions-content] {\n min-height: 1.75rem;\n font-family: var(--diffs-header-font-family, var(--diffs-header-font-fallback));\n color: var(--diffs-fg);\n align-items: center;\n gap: .25rem;\n padding-inline: .5rem;\n font-size: .75rem;\n line-height: 1.2;\n display: flex;\n }\n\n [data-merge-conflict-action] {\n appearance: none;\n color: var(--diffs-fg-number);\n font: inherit;\n cursor: pointer;\n background: none;\n border: 0;\n padding: 0;\n font-style: normal;\n }\n\n [data-merge-conflict-action]:hover {\n color: var(--diffs-fg);\n }\n\n [data-merge-conflict-action=\"current\"]:hover {\n color: var(--diffs-addition-base);\n }\n\n [data-merge-conflict-action=\"incoming\"]:hover {\n color: var(--diffs-modified-base);\n }\n\n [data-merge-conflict-action-separator] {\n color: var(--diffs-fg-number);\n opacity: .6;\n user-select: none;\n }\n\n [data-diffs-header=\"default\"] {\n background-color: var(--diffs-bg);\n justify-content: space-between;\n align-items: center;\n gap: var(--diffs-gap-inline, var(--diffs-gap-fallback));\n min-height: calc(1lh + (var(--diffs-gap-block, var(--diffs-gap-fallback)) * 3));\n z-index: 2;\n flex-direction: row;\n padding-inline: 16px;\n display: flex;\n position: relative;\n top: 0;\n }\n\n [data-header-content] {\n align-items: center;\n gap: var(--diffs-gap-inline, var(--diffs-gap-fallback));\n white-space: nowrap;\n flex-direction: row;\n min-width: 0;\n display: flex;\n }\n\n [data-header-content] [data-prev-name], [data-header-content] [data-title] {\n text-overflow: ellipsis;\n white-space: nowrap;\n direction: rtl;\n min-width: 0;\n overflow: hidden;\n }\n\n [data-prev-name] {\n opacity: .7;\n }\n\n [data-rename-icon] {\n fill: currentColor;\n flex-grow: 0;\n flex-shrink: 0;\n }\n\n [data-diffs-header=\"default\"] [data-metadata] {\n white-space: nowrap;\n align-items: center;\n gap: 1ch;\n display: flex;\n }\n\n [data-diffs-header=\"default\"] [data-additions-count] {\n font-family: var(--diffs-font-family, var(--diffs-font-fallback));\n color: var(--diffs-addition-base);\n }\n\n [data-diffs-header=\"default\"] [data-deletions-count] {\n font-family: var(--diffs-font-family, var(--diffs-font-fallback));\n color: var(--diffs-deletion-base);\n }\n\n [data-change-icon] {\n fill: currentColor;\n flex-shrink: 0;\n }\n\n [data-change-icon=\"change\"], [data-change-icon=\"rename-pure\"], [data-change-icon=\"rename-changed\"] {\n color: var(--diffs-modified-base);\n }\n\n [data-change-icon=\"new\"] {\n color: var(--diffs-addition-base);\n }\n\n [data-change-icon=\"deleted\"] {\n color: var(--diffs-deletion-base);\n }\n\n [data-change-icon=\"file\"] {\n opacity: .6;\n }\n\n [data-annotation-content] {\n z-index: 2;\n isolation: isolate;\n align-self: flex-start;\n min-width: 0;\n display: flow-root;\n position: relative;\n }\n\n [data-overflow=\"scroll\"] [data-annotation-content], [data-overflow=\"scroll\"] [data-merge-conflict-actions-content] {\n width: var(--diffs-column-content-width, auto);\n left: var(--diffs-column-number-width, 0);\n position: sticky;\n }\n\n [data-annotation-slot] {\n text-wrap-mode: wrap;\n word-break: normal;\n white-space-collapse: collapse;\n }\n\n [data-gutter-utility-slot] {\n touch-action: none;\n justify-content: flex-end;\n display: flex;\n position: absolute;\n top: 0;\n bottom: 0;\n right: 0;\n }\n\n [data-utility-button] {\n appearance: none;\n cursor: pointer;\n width: 1lh;\n height: 1lh;\n font-size: var(--diffs-font-size, 13px);\n line-height: var(--diffs-line-height, 20px);\n background-color: var(--diffs-modified-base);\n color: var(--diffs-bg);\n fill: currentColor;\n z-index: 4;\n touch-action: none;\n border: none;\n border-radius: 4px;\n justify-content: center;\n align-items: center;\n margin-right: calc(-1lh + 1ch);\n padding: 0;\n display: flex;\n position: relative;\n\n &:before {\n content: \"\";\n display: block;\n position: absolute;\n inset: 0 0 0 -4px;\n }\n }\n\n [data-decoration-bar-stack] {\n pointer-events: none;\n isolation: isolate;\n z-index: 1;\n background-color: var(--diffs-decoration-bar-color, transparent);\n box-sizing: content-box;\n border-left: 2px solid var(--diffs-bg);\n border-right: 2px solid var(--diffs-bg);\n width: 6px;\n position: absolute;\n top: 0;\n bottom: 0;\n right: -2px;\n\n [data-decoration-bar-depth=\"1\"] & {\n background-color: color-mix(in lab,\n var(--diffs-bg) 20%,\n var(--diffs-decoration-bar-color, transparent));\n }\n\n [data-decoration-bar-depth=\"2\"] & {\n background-color: color-mix(in lab,\n var(--diffs-bg) 45%,\n var(--diffs-decoration-bar-color, transparent));\n }\n\n [data-decoration-bar-depth=\"3\"] & {\n background-color: color-mix(in lab,\n var(--diffs-bg) 65%,\n var(--diffs-decoration-bar-color, transparent));\n }\n\n [data-decoration-bar-start] & {\n border-top-left-radius: 5px;\n border-top-right-radius: 5px;\n }\n\n [data-decoration-bar-end] & {\n z-index: 3;\n border-bottom-right-radius: 5px;\n border-bottom-left-radius: 5px;\n }\n }\n\n [data-placeholder] {\n contain: strict;\n }\n\n [data-error-wrapper] {\n padding: var(--diffs-gap-block, var(--diffs-gap-fallback))\n var(--diffs-gap-inline, var(--diffs-gap-fallback));\n scrollbar-width: none;\n max-height: 400px;\n overflow: auto;\n\n & [data-error-message] {\n color: var(--diffs-deletion-base);\n font-size: 18px;\n font-weight: bold;\n }\n\n & [data-error-stack] {\n color: var(--diffs-fg-number);\n }\n }\n}\n\n@layer theme, rendered, unsafe;\n";
|
|
3
3
|
//#endregion
|
|
4
4
|
export { style_default as default };
|
|
5
5
|
|
package/dist/types.d.ts
CHANGED
|
@@ -19,12 +19,39 @@ interface FileContents {
|
|
|
19
19
|
lang?: SupportedLanguages;
|
|
20
20
|
/** Optional header passed to the jsdiff library's `createTwoFilesPatch`. */
|
|
21
21
|
header?: string;
|
|
22
|
-
/**
|
|
23
|
-
*
|
|
24
|
-
*
|
|
22
|
+
/**
|
|
23
|
+
* Identifies a file for caching. Optional for read-only rendering, but
|
|
24
|
+
* required and expected to be unique and stable when Editor `persistState`
|
|
25
|
+
* is enabled.
|
|
26
|
+
*/
|
|
25
27
|
cacheKey?: string;
|
|
26
28
|
}
|
|
29
|
+
interface FileDiffLoadedChangedFiles {
|
|
30
|
+
oldFile: FileContents;
|
|
31
|
+
newFile: FileContents;
|
|
32
|
+
}
|
|
33
|
+
interface FileDiffLoadedPureRenamedFile {
|
|
34
|
+
oldFile: null;
|
|
35
|
+
newFile: FileContents;
|
|
36
|
+
}
|
|
37
|
+
type FileDiffLoadedFiles = FileDiffLoadedChangedFiles | FileDiffLoadedPureRenamedFile;
|
|
38
|
+
type DiffFileInput = {
|
|
39
|
+
oldFile: FileContents;
|
|
40
|
+
newFile: FileContents;
|
|
41
|
+
} | {
|
|
42
|
+
oldFile: null;
|
|
43
|
+
newFile: FileContents;
|
|
44
|
+
} | {
|
|
45
|
+
oldFile: FileContents;
|
|
46
|
+
newFile: null;
|
|
47
|
+
};
|
|
48
|
+
type MaybeDiffFileInput = DiffFileInput | {
|
|
49
|
+
oldFile?: undefined;
|
|
50
|
+
newFile?: undefined;
|
|
51
|
+
};
|
|
52
|
+
type FileDiffContentsLoader = (fileDiff: FileDiffMetadata) => Promise<FileDiffLoadedFiles>;
|
|
27
53
|
type HighlighterTypes = 'shiki-js' | 'shiki-wasm';
|
|
54
|
+
type HighlightedToken = [char: number, fg: string, text: string];
|
|
28
55
|
type DiffsThemeNames = BundledTheme | (string & {});
|
|
29
56
|
type ThemesType = Record<'dark' | 'light', DiffsThemeNames>;
|
|
30
57
|
/**
|
|
@@ -190,6 +217,10 @@ interface Hunk {
|
|
|
190
217
|
/**
|
|
191
218
|
* Metadata and content for a single file's diff. Think of this as a JSON
|
|
192
219
|
* compatible representation of a diff for a single file.
|
|
220
|
+
*
|
|
221
|
+
* When a renderer uses `loadDiffFiles` to hydrate a partial diff, it upgrades
|
|
222
|
+
* this metadata object in place. Keep the same object identity stable when
|
|
223
|
+
* callers want that hydrated state to persist across later renders.
|
|
193
224
|
*/
|
|
194
225
|
interface FileDiffMetadata {
|
|
195
226
|
/** The file's name and path. */
|
|
@@ -237,6 +268,10 @@ interface FileDiffMetadata {
|
|
|
237
268
|
* in the patch and hunk expansion is unavailable.
|
|
238
269
|
*
|
|
239
270
|
* When false, they contain the complete file contents.
|
|
271
|
+
*
|
|
272
|
+
* A hydrating renderer mutates a partial metadata object to flip this to
|
|
273
|
+
* false after `loadDiffFiles` resolves. Passing a freshly parsed partial
|
|
274
|
+
* object later is treated as a new partial render model.
|
|
240
275
|
*/
|
|
241
276
|
isPartial: boolean;
|
|
242
277
|
/**
|
|
@@ -255,11 +290,26 @@ interface FileDiffMetadata {
|
|
|
255
290
|
* the patch.
|
|
256
291
|
*/
|
|
257
292
|
additionLines: string[];
|
|
293
|
+
/**
|
|
294
|
+
* Set while an attached editor's session-scoped hunk updates have reshaped
|
|
295
|
+
* `hunks` away from a plain recompute (regions stay frozen during an edit
|
|
296
|
+
* session). Consumed by the session-exit recompute, which restores
|
|
297
|
+
* recompute-shaped hunks and clears the flag. It lives on the metadata so
|
|
298
|
+
* it survives instance recycling and pooling.
|
|
299
|
+
*
|
|
300
|
+
* @internal
|
|
301
|
+
*/
|
|
302
|
+
editSessionDirty?: boolean;
|
|
258
303
|
/**
|
|
259
304
|
* This unique key is only used for Worker Pools to avoid subsequent requests
|
|
260
305
|
* to highlight if we've already highlighted the diff. Please note that if
|
|
261
306
|
* you modify the contents of the diff in any way, you will need to update
|
|
262
307
|
* the `cacheKey`.
|
|
308
|
+
*
|
|
309
|
+
* When `loadDiffFiles` hydrates a partial diff, Diffs uses loaded file cache
|
|
310
|
+
* keys when they are available so full-file highlights can be reused. If the
|
|
311
|
+
* loaded files are unkeyed and this partial key exists, Diffs appends a
|
|
312
|
+
* hydration segment as a fallback.
|
|
263
313
|
*/
|
|
264
314
|
cacheKey?: string;
|
|
265
315
|
}
|
|
@@ -306,6 +356,13 @@ interface BaseDiffOptions extends BaseCodeOptions {
|
|
|
306
356
|
disableBackground?: boolean;
|
|
307
357
|
hunkSeparators?: HunkSeparators;
|
|
308
358
|
expandUnchanged?: boolean;
|
|
359
|
+
/**
|
|
360
|
+
* Fetches full file contents for partial changed/renamed diffs parsed from
|
|
361
|
+
* patches. Return both sides for changed diffs and `oldFile: null` for pure
|
|
362
|
+
* renames. Added/deleted diffs already include their available side and thus
|
|
363
|
+
* this function serves no purpose in those contexts
|
|
364
|
+
*/
|
|
365
|
+
loadDiffFiles?: FileDiffContentsLoader;
|
|
309
366
|
collapsedContextThreshold?: number;
|
|
310
367
|
lineDiffType?: LineDiffTypes;
|
|
311
368
|
maxLineDiffLength?: number;
|
|
@@ -316,7 +373,7 @@ interface BaseDiffOptions extends BaseCodeOptions {
|
|
|
316
373
|
*/
|
|
317
374
|
parseDiffOptions?: CreatePatchOptionsNonabortable;
|
|
318
375
|
}
|
|
319
|
-
type BaseDiffOptionsWithDefaults = Required<Omit<BaseDiffOptions, 'unsafeCSS' | 'preferredHighlighter' | 'parseDiffOptions'>>;
|
|
376
|
+
type BaseDiffOptionsWithDefaults = Required<Omit<BaseDiffOptions, 'unsafeCSS' | 'preferredHighlighter' | 'parseDiffOptions' | 'loadDiffFiles'>>;
|
|
320
377
|
type CustomPreProperties = Record<string, string | number | undefined>;
|
|
321
378
|
interface PrePropertiesConfig extends Required<Pick<BaseDiffOptions, 'diffIndicators' | 'disableBackground' | 'disableLineNumbers' | 'overflow'>> {
|
|
322
379
|
type: 'diff' | 'file';
|
|
@@ -327,6 +384,7 @@ interface PrePropertiesConfig extends Required<Pick<BaseDiffOptions, 'diffIndica
|
|
|
327
384
|
type FileHeaderRenderMode = 'default' | 'custom';
|
|
328
385
|
type RenderHeaderMetadataCallback = (fileDiff: FileDiffMetadata) => Element | string | number | null | undefined;
|
|
329
386
|
type RenderHeaderPrefixCallback = (fileDiff: FileDiffMetadata) => Element | string | number | null | undefined;
|
|
387
|
+
type RenderHeaderFilenameSuffixCallback = (fileDiff: FileDiffMetadata) => Element | string | number | null | undefined;
|
|
330
388
|
type RenderFileMetadata = (file: FileContents) => Element | string | number | null | undefined;
|
|
331
389
|
type ExtensionFormatMap = Record<string, SupportedLanguages | undefined>;
|
|
332
390
|
type AnnotationSide = 'deletions' | 'additions';
|
|
@@ -364,6 +422,12 @@ type CodeViewFileItem<T = undefined> = {
|
|
|
364
422
|
annotations?: LineAnnotation<T>[];
|
|
365
423
|
version?: number;
|
|
366
424
|
collapsed?: boolean;
|
|
425
|
+
/**
|
|
426
|
+
* Put this item into edit mode. Requires the CodeView `createEditor` option;
|
|
427
|
+
* ignored while `collapsed` is true. Make sure you bump the version when
|
|
428
|
+
* also changing the value.
|
|
429
|
+
*/
|
|
430
|
+
edit?: boolean;
|
|
367
431
|
};
|
|
368
432
|
type CodeViewDiffItem<T = undefined> = {
|
|
369
433
|
id: string;
|
|
@@ -372,6 +436,12 @@ type CodeViewDiffItem<T = undefined> = {
|
|
|
372
436
|
annotations?: DiffLineAnnotation<T>[];
|
|
373
437
|
version?: number;
|
|
374
438
|
collapsed?: boolean;
|
|
439
|
+
/**
|
|
440
|
+
* Put this item into edit mode. Requires the CodeView `createEditor` option;
|
|
441
|
+
* ignored while `collapsed` is true. Make sure you bump the version when
|
|
442
|
+
* also changing the value.
|
|
443
|
+
*/
|
|
444
|
+
edit?: boolean;
|
|
375
445
|
};
|
|
376
446
|
type CodeViewItem<T = undefined> = CodeViewFileItem<T> | CodeViewDiffItem<T>;
|
|
377
447
|
interface CodeViewPositionScrollTarget {
|
|
@@ -489,12 +559,14 @@ interface ObservedGridNodes {
|
|
|
489
559
|
numberElement: HTMLElement | null;
|
|
490
560
|
codeWidth: number | 'auto';
|
|
491
561
|
numberWidth: number;
|
|
562
|
+
applyColumnVariables: boolean;
|
|
492
563
|
}
|
|
493
564
|
type CodeColumnType = 'unified' | 'additions' | 'deletions';
|
|
494
565
|
interface HunkData {
|
|
495
566
|
slotName: string;
|
|
496
567
|
hunkIndex: number;
|
|
497
568
|
lines: number;
|
|
569
|
+
lineCountKnown: boolean;
|
|
498
570
|
type: CodeColumnType;
|
|
499
571
|
expandable?: {
|
|
500
572
|
chunked: boolean;
|
|
@@ -561,6 +633,7 @@ interface RenderedFileASTCache {
|
|
|
561
633
|
options: RenderFileOptions;
|
|
562
634
|
result: ThemedFileResult | undefined;
|
|
563
635
|
renderRange: RenderRange | undefined;
|
|
636
|
+
isDirty?: boolean;
|
|
564
637
|
}
|
|
565
638
|
interface RenderedDiffASTCache {
|
|
566
639
|
diff: FileDiffMetadata;
|
|
@@ -568,7 +641,19 @@ interface RenderedDiffASTCache {
|
|
|
568
641
|
options: RenderDiffOptions;
|
|
569
642
|
result: ThemedDiffResult | undefined;
|
|
570
643
|
renderRange: RenderRange | undefined;
|
|
644
|
+
isDirty?: boolean;
|
|
571
645
|
}
|
|
646
|
+
/**
|
|
647
|
+
* A window of rendered content. Two unit interpretations exist:
|
|
648
|
+
*
|
|
649
|
+
* - Renderer consumers (`iterateOverDiff` window predicates, windowed AST
|
|
650
|
+
* requests, buffers, sticky specs) read `startingLine`/`totalLines` as
|
|
651
|
+
* dense rendered-row indexes for the active diff style.
|
|
652
|
+
* - The editor reads them as zero-based document-line indexes of the new
|
|
653
|
+
* file. `FileDiff.computeEditorRenderRange` converts the renderer range on
|
|
654
|
+
* the editor-bound copy; the two coincide only while every line renders
|
|
655
|
+
* (`expandUnchanged`).
|
|
656
|
+
*/
|
|
572
657
|
interface RenderRange {
|
|
573
658
|
startingLine: number;
|
|
574
659
|
totalLines: number;
|
|
@@ -684,6 +769,198 @@ interface StickySpecs {
|
|
|
684
769
|
topOffset: number;
|
|
685
770
|
height: number;
|
|
686
771
|
}
|
|
772
|
+
interface DiffsComponentOptions extends BaseCodeOptions {
|
|
773
|
+
enableGutterUtility?: boolean;
|
|
774
|
+
enableLineSelection?: boolean;
|
|
775
|
+
expandUnchanged?: boolean;
|
|
776
|
+
diffStyle?: 'unified' | 'split';
|
|
777
|
+
lineHoverHighlight?: 'disabled' | 'both' | 'number' | 'line';
|
|
778
|
+
}
|
|
779
|
+
interface DiffsBaseComponent {
|
|
780
|
+
readonly type: 'file' | 'file-diff' | 'unresolved-file';
|
|
781
|
+
readonly top?: number;
|
|
782
|
+
readonly options: DiffsComponentOptions;
|
|
783
|
+
setOptions: (options: Partial<DiffsComponentOptions>) => void;
|
|
784
|
+
setSelectedLines: (range: {
|
|
785
|
+
start: number;
|
|
786
|
+
end: number;
|
|
787
|
+
} | null, options?: {
|
|
788
|
+
notify?: boolean;
|
|
789
|
+
activeLineSide?: SelectionSide;
|
|
790
|
+
lineNumberOnly?: boolean;
|
|
791
|
+
}) => void;
|
|
792
|
+
render(options: {
|
|
793
|
+
file?: FileContents;
|
|
794
|
+
fileDiff?: FileDiffMetadata;
|
|
795
|
+
lineAnnotations?: any[];
|
|
796
|
+
renderRange?: RenderRange;
|
|
797
|
+
}): void;
|
|
798
|
+
rerender(): void;
|
|
799
|
+
cleanUp(): void;
|
|
800
|
+
}
|
|
801
|
+
interface DiffsEditableComponent<LAnnotation> extends DiffsBaseComponent {
|
|
802
|
+
/** @internal Return the current file when this component renders one. */
|
|
803
|
+
__getCurrentFile?: () => FileContents | undefined;
|
|
804
|
+
/**
|
|
805
|
+
* Return the position and height of a one-based line relative to this component.
|
|
806
|
+
* The host uses it to scroll to virtualized lines before their DOM nodes exist.
|
|
807
|
+
* A zero height means the line is not currently renderable.
|
|
808
|
+
* In a file diff, `lineNumber` is the line number in the new file.
|
|
809
|
+
*/
|
|
810
|
+
getLinePosition?: (lineNumber: number) => {
|
|
811
|
+
top: number;
|
|
812
|
+
height: number;
|
|
813
|
+
} | undefined;
|
|
814
|
+
/**
|
|
815
|
+
* Return the scroll container element.
|
|
816
|
+
*/
|
|
817
|
+
getScrollContainer?: () => HTMLElement | undefined;
|
|
818
|
+
/**
|
|
819
|
+
* Whether the given one-based new-file line currently has (or will have on
|
|
820
|
+
* scroll) a rendered row. False only for lines hidden inside a collapsed
|
|
821
|
+
* unchanged region. Components without collapsible regions leave this
|
|
822
|
+
* unimplemented and the editor treats every line as renderable.
|
|
823
|
+
*/
|
|
824
|
+
isLineRenderable?: (lineNumber: number) => boolean;
|
|
825
|
+
/**
|
|
826
|
+
* The nearest renderable one-based new-file line at or beyond `lineNumber`
|
|
827
|
+
* in the given direction, or undefined when every line that way is hidden
|
|
828
|
+
* inside collapsed regions. Sequential caret motion uses this to skip
|
|
829
|
+
* collapsed regions like code folds.
|
|
830
|
+
*/
|
|
831
|
+
getNearestRenderableLine?: (lineNumber: number, direction: 'up' | 'down') => number | undefined;
|
|
832
|
+
/**
|
|
833
|
+
* Expand collapsed context so the given one-based new-file line can
|
|
834
|
+
* render. Returns true when an expansion was performed (a re-render will
|
|
835
|
+
* follow, possibly deferred).
|
|
836
|
+
*/
|
|
837
|
+
revealLine?: (lineNumber: number) => boolean;
|
|
838
|
+
/**
|
|
839
|
+
* Attach an editor to this component. The returned detach closure receives
|
|
840
|
+
* `recycle: true` when the editor is only being released by a virtualized
|
|
841
|
+
* unmount (the session continues on remount) and no argument/false on a
|
|
842
|
+
* genuine session end.
|
|
843
|
+
*/
|
|
844
|
+
attachEditor: (editor: DiffsEditor<LAnnotation>) => (recycle?: boolean) => void;
|
|
845
|
+
applyDocumentChange: (textDocument: DiffsTextDocument, newLineAnnotations?: DiffLineAnnotation<LAnnotation>[], shouldUpdateBuffer?: boolean) => void;
|
|
846
|
+
/**
|
|
847
|
+
* `lineCountChangeInFlight` is true only during an edit pass whose line
|
|
848
|
+
* count changed, where an authoritative `applyDocumentChange` follows in
|
|
849
|
+
* the same pass; deferred background-tokenize passes always pass false.
|
|
850
|
+
*/
|
|
851
|
+
updateRenderCache: (lines: Map<number, Array<HighlightedToken>>, themeType: 'dark' | 'light', shouldRefreshView: boolean, lineCountChangeInFlight?: boolean) => void;
|
|
852
|
+
}
|
|
853
|
+
interface DiffsEditor<LAnnotation> {
|
|
854
|
+
/** @internal */
|
|
855
|
+
__prepareFile?(file: FileContents): FileContents;
|
|
856
|
+
__postponeBgTokenizeToNextFrame(): void;
|
|
857
|
+
__syncRenderView(highlighter: DiffsHighlighter, fileContainer: HTMLElement, fileOrDiff: FileContents | FileDiffMetadata, lineAnnotations: LineAnnotation<LAnnotation>[] | DiffLineAnnotation<LAnnotation>[] | undefined, renderRange: RenderRange | undefined): void;
|
|
858
|
+
edit(fileInstance: DiffsEditableComponent<LAnnotation>): () => void;
|
|
859
|
+
cleanUp(recycle?: boolean): void;
|
|
860
|
+
}
|
|
861
|
+
/**
|
|
862
|
+
* Position in a text document expressed as zero-based line and character offset.
|
|
863
|
+
* The offsets are based on a UTF-16 string representation. So a string of the form
|
|
864
|
+
* `a𐐀b` the character offset of the character `a` is 0, the character offset of `𐐀`
|
|
865
|
+
* is 1 and the character offset of b is 3 since `𐐀` is represented using two code
|
|
866
|
+
* units in UTF-16.
|
|
867
|
+
*
|
|
868
|
+
* Positions are line end character agnostic. So you can not specify a position that
|
|
869
|
+
* denotes `\r|\n` or `\n|` where `|` represents the character offset.
|
|
870
|
+
*/
|
|
871
|
+
interface Position {
|
|
872
|
+
/**
|
|
873
|
+
* Line position in a document (zero-based).
|
|
874
|
+
*
|
|
875
|
+
* If a line number is greater than the number of lines in a document, it
|
|
876
|
+
* defaults back to the number of lines in the document.
|
|
877
|
+
* If a line number is negative, it defaults to 0.
|
|
878
|
+
*
|
|
879
|
+
* The above two properties are implementation specific.
|
|
880
|
+
*/
|
|
881
|
+
readonly line: number;
|
|
882
|
+
/**
|
|
883
|
+
* Character offset on a line in a document (zero-based).
|
|
884
|
+
*
|
|
885
|
+
* The meaning of this offset is determined by the negotiated
|
|
886
|
+
* `PositionEncodingKind`.
|
|
887
|
+
*
|
|
888
|
+
* If the character value is greater than the line length it defaults back
|
|
889
|
+
* to the line length. This property is implementation specific.
|
|
890
|
+
*/
|
|
891
|
+
readonly character: number;
|
|
892
|
+
}
|
|
893
|
+
/**
|
|
894
|
+
* A range in a text document expressed as (zero-based) start and end positions.
|
|
895
|
+
*
|
|
896
|
+
* If you want to specify a range that contains a line including the line ending
|
|
897
|
+
* character(s) then use an end position denoting the start of the next line.
|
|
898
|
+
* For example:
|
|
899
|
+
* ```ts
|
|
900
|
+
* {
|
|
901
|
+
* start: { line: 5, character: 23 }
|
|
902
|
+
* end : { line 6, character : 0 }
|
|
903
|
+
* }
|
|
904
|
+
* ```
|
|
905
|
+
*/
|
|
906
|
+
interface Range {
|
|
907
|
+
/**
|
|
908
|
+
* The range's start position.
|
|
909
|
+
*/
|
|
910
|
+
readonly start: Position;
|
|
911
|
+
/**
|
|
912
|
+
* The range's end position.
|
|
913
|
+
*/
|
|
914
|
+
readonly end: Position;
|
|
915
|
+
}
|
|
916
|
+
/**
|
|
917
|
+
* A text edit applicable to a text document.
|
|
918
|
+
*/
|
|
919
|
+
interface TextEdit {
|
|
920
|
+
/**
|
|
921
|
+
* The range of the text document to be manipulated. To insert
|
|
922
|
+
* text into a document create a range where start === end.
|
|
923
|
+
*/
|
|
924
|
+
readonly range: Range;
|
|
925
|
+
/**
|
|
926
|
+
* The string to be inserted. For delete operations use an
|
|
927
|
+
* empty string.
|
|
928
|
+
*/
|
|
929
|
+
readonly newText: string;
|
|
930
|
+
}
|
|
931
|
+
/**
|
|
932
|
+
* The direction of a selection.
|
|
933
|
+
* -1: backward
|
|
934
|
+
* 0: none
|
|
935
|
+
* 1: forward
|
|
936
|
+
*/
|
|
937
|
+
type SelectionDirection = -1 | 0 | 1;
|
|
938
|
+
interface EditorSelection extends Range {
|
|
939
|
+
direction: SelectionDirection;
|
|
940
|
+
}
|
|
941
|
+
interface EditorState {
|
|
942
|
+
selections?: EditorSelection[];
|
|
943
|
+
view?: {
|
|
944
|
+
scrollLeft: number;
|
|
945
|
+
scrollTop: number;
|
|
946
|
+
};
|
|
947
|
+
}
|
|
948
|
+
interface DiffsTextDocument {
|
|
949
|
+
readonly lineCount: number;
|
|
950
|
+
getLineText: (lineNumber: number, includeLineBreak?: boolean) => string;
|
|
951
|
+
getText: () => string;
|
|
952
|
+
}
|
|
953
|
+
/**
|
|
954
|
+
* Options CodeView passes to its `createEditor` factory. A structural subset
|
|
955
|
+
* of `EditorOptions` from `@pierre/diffs/editor`, so factories can spread
|
|
956
|
+
* them straight into the constructor — `new Editor({ ...options })` — and
|
|
957
|
+
* layer any editor configuration of their own on top. Forwarding `onChange`
|
|
958
|
+
* is what lets CodeView resolve document changes back to the owning item and
|
|
959
|
+
* emit them through its own `onItemEditChange` option.
|
|
960
|
+
*/
|
|
961
|
+
interface CodeViewCreateEditorOptions<LAnnotation> {
|
|
962
|
+
onChange: (file: FileContents, lineAnnotations?: DiffLineAnnotation<LAnnotation>[]) => void;
|
|
963
|
+
}
|
|
687
964
|
//#endregion
|
|
688
|
-
export { AnnotationLineMap, AnnotationSide, AnnotationSpan, AppliedThemeStyleCache, BaseCodeOptions, BaseDiffOptions, BaseDiffOptionsWithDefaults, type BundledLanguage, ChangeContent, ChangeTypes, CodeColumnType, type CodeToHastOptions, CodeViewDiffItem, CodeViewFileItem, CodeViewItem, CodeViewItemScrollTarget, CodeViewLayout, CodeViewLineScrollTarget, CodeViewPositionScrollTarget, CodeViewRangeScrollTarget, CodeViewScrollBehavior, CodeViewScrollTarget, ConflictResolverTypes, ContextContent, type CreatePatchOptionsNonabortable, CustomPreProperties, type DecorationItem, DiffAcceptRejectHunkConfig, DiffAcceptRejectHunkType, DiffIndicators, DiffLineAnnotation, DiffLineEventBaseProps, DiffTokenEventBaseProps, DiffsHighlighter, DiffsThemeNames, ExpansionDirections, ExtensionFormatMap, FileContents, FileDiffMetadata, FileHeaderRenderMode, ForceDiffPlainTextOptions, ForceFilePlainTextOptions, GapSpan, HighlighterTypes, Hunk, HunkData, HunkExpansionRegion, HunkLineType, HunkSeparators, type LanguageRegistration, LineAnnotation, LineDiffTypes, LineEventBaseProps, LineInfo, LineSpans, LineTypes, MergeConflictActionPayload, MergeConflictMarkerRow, MergeConflictMarkerRowType, MergeConflictRegion, MergeConflictResolution, NumericScrollLineAnchor, ObservedAnnotationNodes, ObservedGridNodes, ParsedPatch, PendingCodeViewLayoutReset, PostRenderPhase, PrePropertiesConfig, ProcessFileConflictData, RenderDiffFilesResult, RenderDiffOptions, RenderDiffResult, RenderFileMetadata, RenderFileOptions, RenderFileResult, RenderHeaderMetadataCallback, RenderHeaderPrefixCallback, RenderRange, RenderWindow, RenderedDiffASTCache, RenderedFileASTCache, SelectedLineRange, SelectionPoint, SelectionSide, SharedRenderState, type ShikiTransformer, SmoothScrollSettings, StickySpecs, SupportedLanguages, type ThemeRegistration, type ThemeRegistrationResolved, ThemeTypes, ThemedDiffResult, ThemedFileResult, type ThemedToken, ThemesType, TokenEventBase, VirtualFileMetrics, VirtualWindowSpecs };
|
|
965
|
+
export { AnnotationLineMap, AnnotationSide, AnnotationSpan, AppliedThemeStyleCache, BaseCodeOptions, BaseDiffOptions, BaseDiffOptionsWithDefaults, type BundledLanguage, ChangeContent, ChangeTypes, CodeColumnType, type CodeToHastOptions, CodeViewCreateEditorOptions, CodeViewDiffItem, CodeViewFileItem, CodeViewItem, CodeViewItemScrollTarget, CodeViewLayout, CodeViewLineScrollTarget, CodeViewPositionScrollTarget, CodeViewRangeScrollTarget, CodeViewScrollBehavior, CodeViewScrollTarget, ConflictResolverTypes, ContextContent, type CreatePatchOptionsNonabortable, CustomPreProperties, type DecorationItem, DiffAcceptRejectHunkConfig, DiffAcceptRejectHunkType, DiffFileInput, DiffIndicators, DiffLineAnnotation, DiffLineEventBaseProps, DiffTokenEventBaseProps, DiffsBaseComponent, DiffsComponentOptions, DiffsEditableComponent, DiffsEditor, DiffsHighlighter, DiffsTextDocument, DiffsThemeNames, EditorSelection, EditorState, ExpansionDirections, ExtensionFormatMap, FileContents, FileDiffContentsLoader, FileDiffLoadedChangedFiles, FileDiffLoadedFiles, FileDiffLoadedPureRenamedFile, FileDiffMetadata, FileHeaderRenderMode, ForceDiffPlainTextOptions, ForceFilePlainTextOptions, GapSpan, HighlightedToken, HighlighterTypes, Hunk, HunkData, HunkExpansionRegion, HunkLineType, HunkSeparators, type LanguageRegistration, LineAnnotation, LineDiffTypes, LineEventBaseProps, LineInfo, LineSpans, LineTypes, MaybeDiffFileInput, MergeConflictActionPayload, MergeConflictMarkerRow, MergeConflictMarkerRowType, MergeConflictRegion, MergeConflictResolution, NumericScrollLineAnchor, ObservedAnnotationNodes, ObservedGridNodes, ParsedPatch, PendingCodeViewLayoutReset, Position, PostRenderPhase, PrePropertiesConfig, ProcessFileConflictData, Range, RenderDiffFilesResult, RenderDiffOptions, RenderDiffResult, RenderFileMetadata, RenderFileOptions, RenderFileResult, RenderHeaderFilenameSuffixCallback, RenderHeaderMetadataCallback, RenderHeaderPrefixCallback, RenderRange, RenderWindow, RenderedDiffASTCache, RenderedFileASTCache, SelectedLineRange, SelectionDirection, SelectionPoint, SelectionSide, SharedRenderState, type ShikiTransformer, SmoothScrollSettings, StickySpecs, SupportedLanguages, TextEdit, type ThemeRegistration, type ThemeRegistrationResolved, ThemeTypes, ThemedDiffResult, ThemedFileResult, type ThemedToken, ThemesType, TokenEventBase, VirtualFileMetrics, VirtualWindowSpecs };
|
|
689
966
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","names":[],"sources":["../src/types.ts"],"mappings":";;;;;KAiBY,sBAAA;AAAZ;;;;AAAA,UAMiB,YAAA;EAAA;;EAGf,IAAA;EAKyB;EAHzB,QAAA;EAAA;;EAGA,IAAA,GAAO,kBAAkB;EAEzB;EAAA,MAAA;
|
|
1
|
+
{"version":3,"file":"types.d.ts","names":[],"sources":["../src/types.ts"],"mappings":"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"}
|