@pierre/diffs 1.3.0-beta.10 → 1.3.0-beta.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. package/dist/components/CodeView.d.ts.map +1 -1
  2. package/dist/components/CodeView.js +1 -16
  3. package/dist/components/CodeView.js.map +1 -1
  4. package/dist/components/File.d.ts +2 -1
  5. package/dist/components/File.d.ts.map +1 -1
  6. package/dist/components/File.js +6 -2
  7. package/dist/components/File.js.map +1 -1
  8. package/dist/components/FileDiff.d.ts +8 -2
  9. package/dist/components/FileDiff.d.ts.map +1 -1
  10. package/dist/components/FileDiff.js +26 -8
  11. package/dist/components/FileDiff.js.map +1 -1
  12. package/dist/components/VirtualizedFileDiff.d.ts +1 -0
  13. package/dist/components/VirtualizedFileDiff.d.ts.map +1 -1
  14. package/dist/components/VirtualizedFileDiff.js +4 -0
  15. package/dist/components/VirtualizedFileDiff.js.map +1 -1
  16. package/dist/editor/editStack.d.ts +5 -0
  17. package/dist/editor/editStack.d.ts.map +1 -1
  18. package/dist/editor/editStack.js +53 -12
  19. package/dist/editor/editStack.js.map +1 -1
  20. package/dist/editor/editor.d.ts.map +1 -1
  21. package/dist/editor/editor.js +52 -32
  22. package/dist/editor/editor.js.map +1 -1
  23. package/dist/editor/editor2.js +1 -1
  24. package/dist/editor/marker.d.ts +3 -3
  25. package/dist/editor/marker.d.ts.map +1 -1
  26. package/dist/editor/marker.js +89 -89
  27. package/dist/editor/marker.js.map +1 -1
  28. package/dist/editor/pieceTable.d.ts.map +1 -1
  29. package/dist/editor/pieceTable.js +55 -20
  30. package/dist/editor/pieceTable.js.map +1 -1
  31. package/dist/editor/popover.js +4 -0
  32. package/dist/editor/popover.js.map +1 -1
  33. package/dist/editor/selection.d.ts +2 -2
  34. package/dist/editor/selection.d.ts.map +1 -1
  35. package/dist/editor/selection.js +2 -2
  36. package/dist/editor/selection.js.map +1 -1
  37. package/dist/editor/textDocument.js +1 -1
  38. package/dist/editor/textDocument.js.map +1 -1
  39. package/dist/editor/tokenizer.d.ts.map +1 -1
  40. package/dist/editor/tokenizer.js +7 -2
  41. package/dist/editor/tokenizer.js.map +1 -1
  42. package/dist/index.d.ts +2 -2
  43. package/dist/managers/InteractionManager.d.ts +18 -7
  44. package/dist/managers/InteractionManager.d.ts.map +1 -1
  45. package/dist/managers/InteractionManager.js +154 -99
  46. package/dist/managers/InteractionManager.js.map +1 -1
  47. package/dist/react/index.d.ts +2 -2
  48. package/dist/react/utils/useFileDiffInstance.js +1 -6
  49. package/dist/react/utils/useFileDiffInstance.js.map +1 -1
  50. package/dist/react/utils/useFileInstance.js +1 -4
  51. package/dist/react/utils/useFileInstance.js.map +1 -1
  52. package/dist/ssr/index.d.ts +2 -2
  53. package/dist/style.js +1 -1
  54. package/dist/types.d.ts +7 -1
  55. package/dist/types.d.ts.map +1 -1
  56. package/dist/utils/computeFileOffsets.d.ts.map +1 -1
  57. package/dist/utils/computeFileOffsets.js +34 -5
  58. package/dist/utils/computeFileOffsets.js.map +1 -1
  59. package/dist/utils/isGutterUtilityPath.d.ts +5 -0
  60. package/dist/utils/isGutterUtilityPath.d.ts.map +1 -0
  61. package/dist/utils/isGutterUtilityPath.js +12 -0
  62. package/dist/utils/isGutterUtilityPath.js.map +1 -0
  63. package/dist/worker/worker-portable.js +34 -5
  64. package/dist/worker/worker-portable.js.map +1 -1
  65. package/dist/worker/worker.js +34 -5
  66. package/dist/worker/worker.js.map +1 -1
  67. package/package.json +1 -1
@@ -91,10 +91,7 @@ function mergeFileOptions({ options, controlledSelection, contentEditable, hasCu
91
91
  };
92
92
  if (needsEditorOptions) merged = {
93
93
  ...merged,
94
- useTokenTransformer: true,
95
- enableGutterUtility: false,
96
- enableLineSelection: false,
97
- lineHoverHighlight: "disabled"
94
+ useTokenTransformer: true
98
95
  };
99
96
  return merged;
100
97
  }
@@ -1 +1 @@
1
- {"version":3,"file":"useFileInstance.js","names":[],"sources":["../../../src/react/utils/useFileInstance.ts"],"sourcesContent":["import {\n useCallback,\n useContext,\n useEffect,\n useLayoutEffect,\n useRef,\n} from 'react';\n\nimport { File, type FileOptions } from '../../components/File';\nimport { VirtualizedFile } from '../../components/VirtualizedFile';\nimport type { GetHoveredLineResult } from '../../managers/InteractionManager';\nimport type {\n FileContents,\n LineAnnotation,\n SelectedLineRange,\n VirtualFileMetrics,\n} from '../../types';\nimport { areOptionsEqual } from '../../utils/areOptionsEqual';\nimport { noopRender } from '../constants';\nimport { useEditor } from '../EditContext';\nimport { useVirtualizer } from '../Virtualizer';\nimport { WorkerPoolContext } from '../WorkerPoolContext';\nimport { useStableCallback } from './useStableCallback';\n\nconst useIsometricEffect =\n typeof window === 'undefined' ? useEffect : useLayoutEffect;\n\ninterface UseFileInstanceProps<LAnnotation> {\n file: FileContents;\n options: FileOptions<LAnnotation> | undefined;\n lineAnnotations: LineAnnotation<LAnnotation>[] | undefined;\n selectedLines: SelectedLineRange | null | undefined;\n prerenderedHTML: string | undefined;\n metrics?: VirtualFileMetrics;\n hasGutterRenderUtility: boolean;\n hasCustomHeader: boolean;\n disableWorkerPool: boolean;\n contentEditable: boolean;\n onChange?: (\n file: FileContents,\n lineAnnotations?: LineAnnotation<LAnnotation>[]\n ) => void;\n}\n\ninterface UseFileInstanceReturn {\n ref(node: HTMLElement | null): void;\n getHoveredLine(): GetHoveredLineResult<'file'> | undefined;\n}\n\nexport function useFileInstance<LAnnotation>({\n file,\n options,\n lineAnnotations,\n selectedLines,\n prerenderedHTML,\n metrics,\n hasGutterRenderUtility,\n hasCustomHeader,\n disableWorkerPool,\n contentEditable,\n}: UseFileInstanceProps<LAnnotation>): UseFileInstanceReturn {\n const simpleVirtualizer = useVirtualizer();\n const controlledSelection = selectedLines !== undefined;\n const poolManager = useContext(WorkerPoolContext);\n const editor = useEditor<LAnnotation>();\n const instanceRef = useRef<\n File<LAnnotation> | VirtualizedFile<LAnnotation> | null\n >(null);\n const ref = useStableCallback((node: HTMLElement | null) => {\n if (node != null) {\n if (instanceRef.current != null) {\n throw new Error(\n 'File: An instance should not already exist when a node is created'\n );\n }\n if (simpleVirtualizer != null) {\n instanceRef.current = new VirtualizedFile(\n mergeFileOptions({\n controlledSelection,\n contentEditable,\n hasCustomHeader,\n hasEditor: editor !== undefined,\n hasGutterRenderUtility,\n options,\n }),\n simpleVirtualizer,\n metrics,\n !disableWorkerPool ? poolManager : undefined,\n true\n );\n } else {\n instanceRef.current = new File(\n mergeFileOptions({\n controlledSelection,\n contentEditable,\n hasCustomHeader,\n hasEditor: editor !== undefined,\n hasGutterRenderUtility,\n options,\n }),\n !disableWorkerPool ? poolManager : undefined,\n true\n );\n }\n void instanceRef.current.hydrate({\n file,\n fileContainer: node,\n lineAnnotations,\n prerenderedHTML,\n });\n } else {\n if (instanceRef.current == null) {\n throw new Error('File: A File instance should exist when unmounting');\n }\n instanceRef.current.cleanUp();\n instanceRef.current = null;\n }\n });\n\n useIsometricEffect(() => {\n if (instanceRef.current == null) return;\n const newOptions = mergeFileOptions({\n controlledSelection,\n contentEditable,\n hasCustomHeader,\n hasEditor: editor !== undefined,\n hasGutterRenderUtility,\n options,\n });\n const forceRender = !areOptionsEqual(\n instanceRef.current.options,\n newOptions\n );\n instanceRef.current.setOptions(newOptions);\n void instanceRef.current.render({ file, lineAnnotations, forceRender });\n if (selectedLines !== undefined) {\n instanceRef.current.setSelectedLines(selectedLines);\n }\n });\n\n useIsometricEffect(() => {\n if (contentEditable && instanceRef.current != null) {\n if (editor === undefined) {\n throw new Error('File: Editor is not attached');\n }\n return editor.edit(instanceRef.current);\n }\n return undefined;\n }, [contentEditable, editor]);\n\n const getHoveredLine = useCallback(():\n | GetHoveredLineResult<'file'>\n | undefined => {\n return instanceRef.current?.getHoveredLine();\n }, []);\n return { ref, getHoveredLine };\n}\n\ninterface MergeFileOptionsProps<LAnnotation> {\n options: FileOptions<LAnnotation> | undefined;\n controlledSelection: boolean;\n contentEditable: boolean;\n hasEditor: boolean;\n hasGutterRenderUtility: boolean;\n hasCustomHeader: boolean;\n}\n\nfunction mergeFileOptions<LAnnotation>({\n options,\n controlledSelection,\n contentEditable,\n hasCustomHeader,\n hasEditor,\n hasGutterRenderUtility,\n}: MergeFileOptionsProps<LAnnotation>): FileOptions<LAnnotation> | undefined {\n const needsEditorOptions = contentEditable && hasEditor;\n const needsReactOverrides =\n controlledSelection || hasGutterRenderUtility || hasCustomHeader;\n\n if (!needsReactOverrides && !needsEditorOptions) {\n return options;\n }\n\n let merged: FileOptions<LAnnotation> = { ...options };\n\n if (needsReactOverrides) {\n merged = {\n ...merged,\n controlledSelection,\n renderCustomHeader: hasCustomHeader\n ? noopRender\n : options?.renderCustomHeader,\n renderGutterUtility: hasGutterRenderUtility\n ? noopRender\n : options?.renderGutterUtility,\n };\n }\n\n if (needsEditorOptions) {\n merged = {\n ...merged,\n useTokenTransformer: true,\n enableGutterUtility: false,\n enableLineSelection: false,\n lineHoverHighlight: 'disabled',\n };\n }\n\n return merged;\n}\n"],"mappings":";;;;;;;;;;AAwBA,MAAM,qBACJ,OAAO,WAAW,cAAc,YAAY;AAwB9C,SAAgB,gBAA6B,EAC3C,MACA,SACA,iBACA,eACA,iBACA,SACA,wBACA,iBACA,mBACA,mBAC2D;CAC3D,MAAM,oBAAoB,eAAe;CACzC,MAAM,sBAAsB,kBAAkB,KAAA;CAC9C,MAAM,cAAc,WAAW,iBAAiB;CAChD,MAAM,SAAS,UAAuB;CACtC,MAAM,cAAc,OAElB,IAAI;CACN,MAAM,MAAM,mBAAmB,SAA6B;EAC1D,IAAI,QAAQ,MAAM;GAChB,IAAI,YAAY,WAAW,MACzB,MAAM,IAAI,MACR,mEACF;GAEF,IAAI,qBAAqB,MACvB,YAAY,UAAU,IAAI,gBACxB,iBAAiB;IACf;IACA;IACA;IACA,WAAW,WAAW,KAAA;IACtB;IACA;GACF,CAAC,GACD,mBACA,SACA,CAAC,oBAAoB,cAAc,KAAA,GACnC,IACF;QAEA,YAAY,UAAU,IAAI,KACxB,iBAAiB;IACf;IACA;IACA;IACA,WAAW,WAAW,KAAA;IACtB;IACA;GACF,CAAC,GACD,CAAC,oBAAoB,cAAc,KAAA,GACnC,IACF;GAEF,YAAiB,QAAQ,QAAQ;IAC/B;IACA,eAAe;IACf;IACA;GACF,CAAC;EACH,OAAO;GACL,IAAI,YAAY,WAAW,MACzB,MAAM,IAAI,MAAM,oDAAoD;GAEtE,YAAY,QAAQ,QAAQ;GAC5B,YAAY,UAAU;EACxB;CACF,CAAC;CAED,yBAAyB;EACvB,IAAI,YAAY,WAAW,MAAM;EACjC,MAAM,aAAa,iBAAiB;GAClC;GACA;GACA;GACA,WAAW,WAAW,KAAA;GACtB;GACA;EACF,CAAC;EACD,MAAM,cAAc,CAAC,gBACnB,YAAY,QAAQ,SACpB,UACF;EACA,YAAY,QAAQ,WAAW,UAAU;EACzC,YAAiB,QAAQ,OAAO;GAAE;GAAM;GAAiB;EAAY,CAAC;EACtE,IAAI,kBAAkB,KAAA,GACpB,YAAY,QAAQ,iBAAiB,aAAa;CAEtD,CAAC;CAED,yBAAyB;EACvB,IAAI,mBAAmB,YAAY,WAAW,MAAM;GAClD,IAAI,WAAW,KAAA,GACb,MAAM,IAAI,MAAM,8BAA8B;GAEhD,OAAO,OAAO,KAAK,YAAY,OAAO;EACxC;CAEF,GAAG,CAAC,iBAAiB,MAAM,CAAC;CAO5B,OAAO;EAAE;EAAK,gBALS,kBAEN;GACf,OAAO,YAAY,SAAS,eAAe;EAC7C,GAAG,CAAC,CACuB;CAAE;AAC/B;AAWA,SAAS,iBAA8B,EACrC,SACA,qBACA,iBACA,iBACA,WACA,0BAC2E;CAC3E,MAAM,qBAAqB,mBAAmB;CAC9C,MAAM,sBACJ,uBAAuB,0BAA0B;CAEnD,IAAI,CAAC,uBAAuB,CAAC,oBAC3B,OAAO;CAGT,IAAI,SAAmC,EAAE,GAAG,QAAQ;CAEpD,IAAI,qBACF,SAAS;EACP,GAAG;EACH;EACA,oBAAoB,kBAChB,aACA,SAAS;EACb,qBAAqB,yBACjB,aACA,SAAS;CACf;CAGF,IAAI,oBACF,SAAS;EACP,GAAG;EACH,qBAAqB;EACrB,qBAAqB;EACrB,qBAAqB;EACrB,oBAAoB;CACtB;CAGF,OAAO;AACT"}
1
+ {"version":3,"file":"useFileInstance.js","names":[],"sources":["../../../src/react/utils/useFileInstance.ts"],"sourcesContent":["import {\n useCallback,\n useContext,\n useEffect,\n useLayoutEffect,\n useRef,\n} from 'react';\n\nimport { File, type FileOptions } from '../../components/File';\nimport { VirtualizedFile } from '../../components/VirtualizedFile';\nimport type { GetHoveredLineResult } from '../../managers/InteractionManager';\nimport type {\n FileContents,\n LineAnnotation,\n SelectedLineRange,\n VirtualFileMetrics,\n} from '../../types';\nimport { areOptionsEqual } from '../../utils/areOptionsEqual';\nimport { noopRender } from '../constants';\nimport { useEditor } from '../EditContext';\nimport { useVirtualizer } from '../Virtualizer';\nimport { WorkerPoolContext } from '../WorkerPoolContext';\nimport { useStableCallback } from './useStableCallback';\n\nconst useIsometricEffect =\n typeof window === 'undefined' ? useEffect : useLayoutEffect;\n\ninterface UseFileInstanceProps<LAnnotation> {\n file: FileContents;\n options: FileOptions<LAnnotation> | undefined;\n lineAnnotations: LineAnnotation<LAnnotation>[] | undefined;\n selectedLines: SelectedLineRange | null | undefined;\n prerenderedHTML: string | undefined;\n metrics?: VirtualFileMetrics;\n hasGutterRenderUtility: boolean;\n hasCustomHeader: boolean;\n disableWorkerPool: boolean;\n contentEditable: boolean;\n onChange?: (\n file: FileContents,\n lineAnnotations?: LineAnnotation<LAnnotation>[]\n ) => void;\n}\n\ninterface UseFileInstanceReturn {\n ref(node: HTMLElement | null): void;\n getHoveredLine(): GetHoveredLineResult<'file'> | undefined;\n}\n\nexport function useFileInstance<LAnnotation>({\n file,\n options,\n lineAnnotations,\n selectedLines,\n prerenderedHTML,\n metrics,\n hasGutterRenderUtility,\n hasCustomHeader,\n disableWorkerPool,\n contentEditable,\n}: UseFileInstanceProps<LAnnotation>): UseFileInstanceReturn {\n const simpleVirtualizer = useVirtualizer();\n const controlledSelection = selectedLines !== undefined;\n const poolManager = useContext(WorkerPoolContext);\n const editor = useEditor<LAnnotation>();\n const instanceRef = useRef<\n File<LAnnotation> | VirtualizedFile<LAnnotation> | null\n >(null);\n const ref = useStableCallback((node: HTMLElement | null) => {\n if (node != null) {\n if (instanceRef.current != null) {\n throw new Error(\n 'File: An instance should not already exist when a node is created'\n );\n }\n if (simpleVirtualizer != null) {\n instanceRef.current = new VirtualizedFile(\n mergeFileOptions({\n controlledSelection,\n contentEditable,\n hasCustomHeader,\n hasEditor: editor !== undefined,\n hasGutterRenderUtility,\n options,\n }),\n simpleVirtualizer,\n metrics,\n !disableWorkerPool ? poolManager : undefined,\n true\n );\n } else {\n instanceRef.current = new File(\n mergeFileOptions({\n controlledSelection,\n contentEditable,\n hasCustomHeader,\n hasEditor: editor !== undefined,\n hasGutterRenderUtility,\n options,\n }),\n !disableWorkerPool ? poolManager : undefined,\n true\n );\n }\n void instanceRef.current.hydrate({\n file,\n fileContainer: node,\n lineAnnotations,\n prerenderedHTML,\n });\n } else {\n if (instanceRef.current == null) {\n throw new Error('File: A File instance should exist when unmounting');\n }\n instanceRef.current.cleanUp();\n instanceRef.current = null;\n }\n });\n\n useIsometricEffect(() => {\n if (instanceRef.current == null) return;\n const newOptions = mergeFileOptions({\n controlledSelection,\n contentEditable,\n hasCustomHeader,\n hasEditor: editor !== undefined,\n hasGutterRenderUtility,\n options,\n });\n const forceRender = !areOptionsEqual(\n instanceRef.current.options,\n newOptions\n );\n instanceRef.current.setOptions(newOptions);\n void instanceRef.current.render({ file, lineAnnotations, forceRender });\n if (selectedLines !== undefined) {\n instanceRef.current.setSelectedLines(selectedLines);\n }\n });\n\n useIsometricEffect(() => {\n if (contentEditable && instanceRef.current != null) {\n if (editor === undefined) {\n throw new Error('File: Editor is not attached');\n }\n return editor.edit(instanceRef.current);\n }\n return undefined;\n }, [contentEditable, editor]);\n\n const getHoveredLine = useCallback(():\n | GetHoveredLineResult<'file'>\n | undefined => {\n return instanceRef.current?.getHoveredLine();\n }, []);\n return { ref, getHoveredLine };\n}\n\ninterface MergeFileOptionsProps<LAnnotation> {\n options: FileOptions<LAnnotation> | undefined;\n controlledSelection: boolean;\n contentEditable: boolean;\n hasEditor: boolean;\n hasGutterRenderUtility: boolean;\n hasCustomHeader: boolean;\n}\n\nfunction mergeFileOptions<LAnnotation>({\n options,\n controlledSelection,\n contentEditable,\n hasCustomHeader,\n hasEditor,\n hasGutterRenderUtility,\n}: MergeFileOptionsProps<LAnnotation>): FileOptions<LAnnotation> | undefined {\n const needsEditorOptions = contentEditable && hasEditor;\n const needsReactOverrides =\n controlledSelection || hasGutterRenderUtility || hasCustomHeader;\n\n if (!needsReactOverrides && !needsEditorOptions) {\n return options;\n }\n\n let merged: FileOptions<LAnnotation> = { ...options };\n\n if (needsReactOverrides) {\n merged = {\n ...merged,\n controlledSelection,\n renderCustomHeader: hasCustomHeader\n ? noopRender\n : options?.renderCustomHeader,\n renderGutterUtility: hasGutterRenderUtility\n ? noopRender\n : options?.renderGutterUtility,\n };\n }\n\n if (needsEditorOptions) {\n merged = { ...merged, useTokenTransformer: true };\n }\n\n return merged;\n}\n"],"mappings":";;;;;;;;;;AAwBA,MAAM,qBACJ,OAAO,WAAW,cAAc,YAAY;AAwB9C,SAAgB,gBAA6B,EAC3C,MACA,SACA,iBACA,eACA,iBACA,SACA,wBACA,iBACA,mBACA,mBAC2D;CAC3D,MAAM,oBAAoB,eAAe;CACzC,MAAM,sBAAsB,kBAAkB,KAAA;CAC9C,MAAM,cAAc,WAAW,iBAAiB;CAChD,MAAM,SAAS,UAAuB;CACtC,MAAM,cAAc,OAElB,IAAI;CACN,MAAM,MAAM,mBAAmB,SAA6B;EAC1D,IAAI,QAAQ,MAAM;GAChB,IAAI,YAAY,WAAW,MACzB,MAAM,IAAI,MACR,mEACF;GAEF,IAAI,qBAAqB,MACvB,YAAY,UAAU,IAAI,gBACxB,iBAAiB;IACf;IACA;IACA;IACA,WAAW,WAAW,KAAA;IACtB;IACA;GACF,CAAC,GACD,mBACA,SACA,CAAC,oBAAoB,cAAc,KAAA,GACnC,IACF;QAEA,YAAY,UAAU,IAAI,KACxB,iBAAiB;IACf;IACA;IACA;IACA,WAAW,WAAW,KAAA;IACtB;IACA;GACF,CAAC,GACD,CAAC,oBAAoB,cAAc,KAAA,GACnC,IACF;GAEF,YAAiB,QAAQ,QAAQ;IAC/B;IACA,eAAe;IACf;IACA;GACF,CAAC;EACH,OAAO;GACL,IAAI,YAAY,WAAW,MACzB,MAAM,IAAI,MAAM,oDAAoD;GAEtE,YAAY,QAAQ,QAAQ;GAC5B,YAAY,UAAU;EACxB;CACF,CAAC;CAED,yBAAyB;EACvB,IAAI,YAAY,WAAW,MAAM;EACjC,MAAM,aAAa,iBAAiB;GAClC;GACA;GACA;GACA,WAAW,WAAW,KAAA;GACtB;GACA;EACF,CAAC;EACD,MAAM,cAAc,CAAC,gBACnB,YAAY,QAAQ,SACpB,UACF;EACA,YAAY,QAAQ,WAAW,UAAU;EACzC,YAAiB,QAAQ,OAAO;GAAE;GAAM;GAAiB;EAAY,CAAC;EACtE,IAAI,kBAAkB,KAAA,GACpB,YAAY,QAAQ,iBAAiB,aAAa;CAEtD,CAAC;CAED,yBAAyB;EACvB,IAAI,mBAAmB,YAAY,WAAW,MAAM;GAClD,IAAI,WAAW,KAAA,GACb,MAAM,IAAI,MAAM,8BAA8B;GAEhD,OAAO,OAAO,KAAK,YAAY,OAAO;EACxC;CAEF,GAAG,CAAC,iBAAiB,MAAM,CAAC;CAO5B,OAAO;EAAE;EAAK,gBALS,kBAEN;GACf,OAAO,YAAY,SAAS,eAAe;EAC7C,GAAG,CAAC,CACuB;CAAE;AAC/B;AAWA,SAAS,iBAA8B,EACrC,SACA,qBACA,iBACA,iBACA,WACA,0BAC2E;CAC3E,MAAM,qBAAqB,mBAAmB;CAC9C,MAAM,sBACJ,uBAAuB,0BAA0B;CAEnD,IAAI,CAAC,uBAAuB,CAAC,oBAC3B,OAAO;CAGT,IAAI,SAAmC,EAAE,GAAG,QAAQ;CAEpD,IAAI,qBACF,SAAS;EACP,GAAG;EACH;EACA,oBAAoB,kBAChB,aACA,SAAS;EACb,qBAAqB,yBACjB,aACA,SAAS;CACf;CAGF,IAAI,oBACF,SAAS;EAAE,GAAG;EAAQ,qBAAqB;CAAK;CAGlD,OAAO;AACT"}
@@ -1,6 +1,6 @@
1
- import { AnnotationLineMap, AnnotationSide, AnnotationSpan, AppliedThemeStyleCache, BaseCodeOptions, BaseDiffOptions, BaseDiffOptionsWithDefaults, BundledLanguage, ChangeContent, ChangeTypes, CodeColumnType, CodeToHastOptions, CodeViewCreateEditorOptions, CodeViewDiffItem, CodeViewFileItem, CodeViewItem, CodeViewItemScrollTarget, CodeViewLayout, CodeViewLineScrollTarget, CodeViewPositionScrollTarget, CodeViewRangeScrollTarget, CodeViewScrollBehavior, CodeViewScrollTarget, ConflictResolverTypes, ContextContent, CreatePatchOptionsNonabortable, CustomPreProperties, 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, 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, ShikiTransformer, SmoothScrollSettings, StickySpecs, SupportedLanguages, TextEdit, ThemeRegistration, ThemeRegistrationResolved, ThemeTypes, ThemedDiffResult, ThemedFileResult, ThemedToken, ThemesType, TokenEventBase, VirtualFileMetrics, VirtualWindowSpecs } from "../types.js";
1
+ import { AnnotationLineMap, AnnotationSide, AnnotationSpan, AppliedThemeStyleCache, BaseCodeOptions, BaseDiffOptions, BaseDiffOptionsWithDefaults, BundledLanguage, ChangeContent, ChangeTypes, CodeColumnType, CodeToHastOptions, CodeViewCreateEditorOptions, CodeViewDiffItem, CodeViewFileItem, CodeViewItem, CodeViewItemScrollTarget, CodeViewLayout, CodeViewLineScrollTarget, CodeViewPositionScrollTarget, CodeViewRangeScrollTarget, CodeViewScrollBehavior, CodeViewScrollTarget, ConflictResolverTypes, ContextContent, CreatePatchOptionsNonabortable, CustomPreProperties, DecorationItem, DiffAcceptRejectHunkConfig, DiffAcceptRejectHunkType, DiffFileInput, DiffIndicators, DiffLineAnnotation, DiffLineEventBaseProps, DiffTokenEventBaseProps, DiffsBaseComponent, DiffsComponentOptions, DiffsEditableComponent, DiffsEditor, DiffsHighlighter, DiffsTextDocument, DiffsThemeNames, EditorActiveLineOptions, EditorSelection, EditorState, ExpansionDirections, ExtensionFormatMap, FileContents, FileDiffContentsLoader, FileDiffLoadedChangedFiles, FileDiffLoadedFiles, FileDiffLoadedPureRenamedFile, FileDiffMetadata, FileHeaderRenderMode, ForceDiffPlainTextOptions, ForceFilePlainTextOptions, GapSpan, HighlightedToken, HighlighterTypes, Hunk, HunkData, HunkExpansionRegion, HunkLineType, HunkSeparators, 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, ShikiTransformer, SmoothScrollSettings, StickySpecs, SupportedLanguages, TextEdit, ThemeRegistration, ThemeRegistrationResolved, ThemeTypes, ThemedDiffResult, ThemedFileResult, ThemedToken, ThemesType, TokenEventBase, VirtualFileMetrics, VirtualWindowSpecs } from "../types.js";
2
2
  import { PreloadDiffOptions, PreloadFileDiffOptions, PreloadFileDiffResult, PreloadMultiFileDiffOptions, PreloadMultiFileDiffResult, PreloadPatchDiffOptions, PreloadPatchDiffResult, PreloadUnresolvedFileOptions, PreloadUnresolvedFileResult, preloadDiffHTML, preloadFileDiff, preloadMultiFileDiff, preloadPatchDiff, preloadUnresolvedFile, preloadUnresolvedFileHTML } from "./preloadDiffs.js";
3
3
  import { PreloadFileOptions, PreloadedFileResult, preloadFile } from "./preloadFile.js";
4
4
  import { PreloadPatchFileOptions, preloadPatchFile } from "./preloadPatchFile.js";
5
5
  import { renderHTML } from "./renderHTML.js";
6
- 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, PreloadDiffOptions, PreloadFileDiffOptions, PreloadFileDiffResult, PreloadFileOptions, PreloadMultiFileDiffOptions, PreloadMultiFileDiffResult, PreloadPatchDiffOptions, PreloadPatchDiffResult, PreloadPatchFileOptions, PreloadUnresolvedFileOptions, PreloadUnresolvedFileResult, PreloadedFileResult, 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, preloadDiffHTML, preloadFile, preloadFileDiff, preloadMultiFileDiff, preloadPatchDiff, preloadPatchFile, preloadUnresolvedFile, preloadUnresolvedFileHTML, renderHTML };
6
+ 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, EditorActiveLineOptions, 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, PreloadDiffOptions, PreloadFileDiffOptions, PreloadFileDiffResult, PreloadFileOptions, PreloadMultiFileDiffOptions, PreloadMultiFileDiffResult, PreloadPatchDiffOptions, PreloadPatchDiffResult, PreloadPatchFileOptions, PreloadUnresolvedFileOptions, PreloadUnresolvedFileResult, PreloadedFileResult, 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, preloadDiffHTML, preloadFile, preloadFileDiff, preloadMultiFileDiff, preloadPatchDiff, preloadPatchFile, preloadUnresolvedFile, preloadUnresolvedFileHTML, renderHTML };
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 --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";
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-computed-decoration-bg);\n --diffs-computed-selected-line-bg: var(--diffs-computed-diff-line-bg);\n --diffs-computed-editor-active-line-bg: var(--diffs-computed-selected-line-bg);\n --diffs-computed-hovered-line-bg: var(--diffs-computed-editor-active-line-bg);\n --diffs-hover-mix-target: var(--diffs-bg-hover-override, var(--diffs-mixer));\n --diffs-line-bg: var(--diffs-computed-hovered-line-bg);\n color: var(--diffs-fg);\n background-color: var(--diffs-line-bg, var(--diffs-bg));\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 --diffs-hover-mix-target: var(--diffs-decoration-bg);\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 }\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-hover-mix-target: var(--diffs-computed-editor-active-line-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-hover-mix-target: var(--diffs-computed-editor-active-line-bg);\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-hover-mix-target: var(--diffs-computed-editor-active-line-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-hover-mix-target: var(--diffs-computed-editor-active-line-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-hover-mix-target: var(--diffs-computed-editor-active-line-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 --diffs-hover-mix-target: var(--diffs-diff-line-mix-target);\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 }\n\n &[data-line-type=\"change-addition\"] {\n --diffs-diff-line-mix-target: var(--diffs-bg-addition-override, var(--diffs-addition-base));\n --diffs-hover-mix-target: var(--diffs-diff-line-mix-target);\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 }\n\n &[data-merge-conflict=\"current\"] {\n --diffs-diff-line-mix-target: var(--conflict-bg-current-override, var(--diffs-addition-base));\n --diffs-hover-mix-target: var(--diffs-diff-line-mix-target);\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 --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 }\n\n &[data-merge-conflict=\"incoming\"] {\n --diffs-diff-line-mix-target: var(--conflict-bg-incoming-override, var(--diffs-modified-base));\n --diffs-hover-mix-target: var(--diffs-diff-line-mix-target);\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 --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 }\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 --diffs-selection-emphasis-mix-target: var(--diffs-selection-mix-target);\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 --diffs-hover-mix-target: var(--diffs-selection-mix-target);\n }\n\n &:where([data-gutter-buffer][data-selected-line], [data-column-number]:is([data-selected-line], [data-editor-active-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 --diffs-hover-mix-target: var(--diffs-selection-mix-target);\n }\n\n &:where([data-line][data-selected-line]):is([data-line-type=\"change-addition\"], [data-line-type=\"change-deletion\"]) {\n --diffs-selection-emphasis-mix-target: light-dark(color-mix(in lab,\n var(--diffs-diff-line-mix-target, var(--diffs-selection-mix-target))\n var(--mix-selection-light),\n var(--diffs-selection-mix-target)), var(--diffs-selection-mix-target));\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 }\n }\n\n [data-line][data-editor-active-line], [data-column-number][data-editor-active-line] {\n --diffs-computed-editor-active-line-bg: color-mix(in lab,\n var(--diffs-computed-selected-line-bg)\n var(--diffs-editor-active-line-source-mix, 100%),\n var(--diffs-selection-emphasis-mix-target));\n }\n\n @media (pointer: fine) {\n [data-line][data-hovered], [data-gutter-buffer][data-hovered], [data-column-number][data-hovered], [data-line-annotation][data-hovered], [data-no-newline][data-hovered], [data-merge-conflict][data-hovered], [data-merge-conflict-actions][data-hovered], [data-editor-overlay][data-hovered] {\n --diffs-computed-hovered-line-bg: light-dark(color-mix(in lab,\n var(--diffs-computed-editor-active-line-bg) 97%,\n var(--diffs-hover-mix-target)), color-mix(in lab,\n var(--diffs-computed-editor-active-line-bg) 91%,\n var(--diffs-hover-mix-target)));\n }\n }\n\n [data-gutter-buffer][data-selected-line], [data-column-number]:is([data-selected-line], [data-editor-active-line]) {\n color: var(--diffs-selection-number-fg);\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
@@ -776,6 +776,10 @@ interface DiffsComponentOptions extends BaseCodeOptions {
776
776
  diffStyle?: 'unified' | 'split';
777
777
  lineHoverHighlight?: 'disabled' | 'both' | 'number' | 'line';
778
778
  }
779
+ interface EditorActiveLineOptions {
780
+ lineNumberOnly?: boolean;
781
+ side?: SelectionSide;
782
+ }
779
783
  interface DiffsBaseComponent {
780
784
  readonly type: 'file' | 'file-diff' | 'unresolved-file';
781
785
  readonly top?: number;
@@ -801,6 +805,8 @@ interface DiffsBaseComponent {
801
805
  interface DiffsEditableComponent<LAnnotation> extends DiffsBaseComponent {
802
806
  /** @internal Return the current file when this component renders one. */
803
807
  __getCurrentFile?: () => FileContents | undefined;
808
+ /** @internal Keep the editor caret decoration separate from line selection. */
809
+ setEditorActiveLine: (lineNumber: number | null, options?: EditorActiveLineOptions) => void;
804
810
  /**
805
811
  * Return the position and height of a one-based line relative to this component.
806
812
  * The host uses it to scroll to virtualized lines before their DOM nodes exist.
@@ -962,5 +968,5 @@ interface CodeViewCreateEditorOptions<LAnnotation> {
962
968
  onChange: (file: FileContents, lineAnnotations?: DiffLineAnnotation<LAnnotation>[]) => void;
963
969
  }
964
970
  //#endregion
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 };
971
+ 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, EditorActiveLineOptions, 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 };
966
972
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","names":[],"sources":["../src/types.ts"],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","names":[],"sources":["../src/types.ts"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"computeFileOffsets.d.ts","names":[],"sources":["../../src/utils/computeFileOffsets.ts"],"mappings":";;AAMA;;iBAAgB,kBAAA,CAAmB,QAAgB;;AAAA;AAyBnD;;;;AAAgD;iBAAhC,eAAA,CAAgB,QAAgB;;;;AAuBM;iBAAtC,qBAAA,CAAsB,QAAgB"}
1
+ {"version":3,"file":"computeFileOffsets.d.ts","names":[],"sources":["../../src/utils/computeFileOffsets.ts"],"mappings":";;AAQA;;iBAAgB,kBAAA,CAAmB,QAAgB;;AAAA;AA2DnD;;;;AAAgD;iBAAhC,eAAA,CAAgB,QAAgB;;;;AAuBM;iBAAtC,qBAAA,CAAsB,QAAgB"}
@@ -1,16 +1,45 @@
1
1
  //#region src/utils/computeFileOffsets.ts
2
2
  const LINE_FEED = 10;
3
3
  const CARRIAGE_RETURN = 13;
4
+ const DENSE_LINE_BREAK_BLOCK_SIZE = 4;
5
+ const DENSE_LINE_BREAK_BLOCK_SPAN = 40;
4
6
  /**
5
7
  * Computes line start offsets for a string.
6
8
  */
7
9
  function computeLineOffsets(contents) {
8
10
  const offsets = [0];
9
- for (let i = 0; i < contents.length; i++) {
10
- const char = contents.charCodeAt(i);
11
- if (char === LINE_FEED || char === CARRIAGE_RETURN) {
12
- if (char === CARRIAGE_RETURN && i + 1 < contents.length && contents.charCodeAt(i + 1) === LINE_FEED) i++;
13
- offsets.push(i + 1);
11
+ let carriageReturn = contents.indexOf("\r");
12
+ let lineFeed = contents.indexOf("\n");
13
+ let blockStart = 0;
14
+ let blockBreaks = 0;
15
+ while (carriageReturn !== -1 || lineFeed !== -1) {
16
+ let nextOffset;
17
+ if (carriageReturn !== -1 && (lineFeed === -1 || carriageReturn < lineFeed)) if (lineFeed === carriageReturn + 1) {
18
+ nextOffset = lineFeed + 1;
19
+ carriageReturn = contents.indexOf("\r", nextOffset);
20
+ lineFeed = contents.indexOf("\n", nextOffset);
21
+ } else {
22
+ nextOffset = carriageReturn + 1;
23
+ carriageReturn = contents.indexOf("\r", nextOffset);
24
+ }
25
+ else {
26
+ nextOffset = lineFeed + 1;
27
+ lineFeed = contents.indexOf("\n", nextOffset);
28
+ }
29
+ offsets.push(nextOffset);
30
+ if (++blockBreaks === DENSE_LINE_BREAK_BLOCK_SIZE) {
31
+ if (nextOffset - blockStart <= DENSE_LINE_BREAK_BLOCK_SPAN) {
32
+ for (let i = nextOffset; i < contents.length; i++) {
33
+ const char = contents.charCodeAt(i);
34
+ if (char === LINE_FEED || char === CARRIAGE_RETURN) {
35
+ if (char === CARRIAGE_RETURN && i + 1 < contents.length && contents.charCodeAt(i + 1) === LINE_FEED) i++;
36
+ offsets.push(i + 1);
37
+ }
38
+ }
39
+ return offsets;
40
+ }
41
+ blockStart = nextOffset;
42
+ blockBreaks = 0;
14
43
  }
15
44
  }
16
45
  return offsets;
@@ -1 +1 @@
1
- {"version":3,"file":"computeFileOffsets.js","names":[],"sources":["../../src/utils/computeFileOffsets.ts"],"sourcesContent":["const LINE_FEED = 10; // \\n\nconst CARRIAGE_RETURN = 13; // \\r\n\n/**\n * Computes line start offsets for a string.\n */\nexport function computeLineOffsets(contents: string): number[] {\n const offsets: number[] = [0];\n for (let i = 0; i < contents.length; i++) {\n const char = contents.charCodeAt(i);\n if (char === LINE_FEED || char === CARRIAGE_RETURN) {\n if (\n char === CARRIAGE_RETURN &&\n i + 1 < contents.length &&\n contents.charCodeAt(i + 1) === LINE_FEED\n ) {\n i++;\n }\n offsets.push(i + 1);\n }\n }\n return offsets;\n}\n\n/**\n * Counts line breaks in a string, treating `\\n`, `\\r`, and `\\r\\n` the same way\n * {@link computeLineOffsets} does (a `\\r\\n` pair is one break). Mirrors that\n * scan but counts in a single pass instead of building and discarding an\n * offsets array, so sizing the changed-line range for large edits stays cheap.\n * A unit test asserts it stays in lockstep with `computeLineOffsets`.\n */\nexport function countLineBreaks(contents: string): number {\n let count = 0;\n for (let i = 0; i < contents.length; i++) {\n const char = contents.charCodeAt(i);\n if (char === LINE_FEED || char === CARRIAGE_RETURN) {\n // Skip the `\\n` of a `\\r\\n` pair so it counts as one break, not two.\n if (\n char === CARRIAGE_RETURN &&\n i + 1 < contents.length &&\n contents.charCodeAt(i + 1) === LINE_FEED\n ) {\n i++;\n }\n count++;\n }\n }\n return count;\n}\n\n/**\n * Splits file contents into lines aligned with {@link computeLineOffsets}.\n * Unlike splitFileContents, a trailing newline produces a final empty line.\n */\nexport function linesFromFileContents(contents: string): string[] {\n const offsets = computeLineOffsets(contents);\n const lines = Array.from({ length: offsets.length }, (_, i) => {\n const start = offsets[i];\n const end = offsets[i + 1] ?? contents.length;\n return contents.slice(start, end);\n });\n return lines;\n}\n"],"mappings":";AAAA,MAAM,YAAY;AAClB,MAAM,kBAAkB;;;;AAKxB,SAAgB,mBAAmB,UAA4B;CAC7D,MAAM,UAAoB,CAAC,CAAC;CAC5B,KAAK,IAAI,IAAI,GAAG,IAAI,SAAS,QAAQ,KAAK;EACxC,MAAM,OAAO,SAAS,WAAW,CAAC;EAClC,IAAI,SAAS,aAAa,SAAS,iBAAiB;GAClD,IACE,SAAS,mBACT,IAAI,IAAI,SAAS,UACjB,SAAS,WAAW,IAAI,CAAC,MAAM,WAE/B;GAEF,QAAQ,KAAK,IAAI,CAAC;EACpB;CACF;CACA,OAAO;AACT;;;;;;;;AASA,SAAgB,gBAAgB,UAA0B;CACxD,IAAI,QAAQ;CACZ,KAAK,IAAI,IAAI,GAAG,IAAI,SAAS,QAAQ,KAAK;EACxC,MAAM,OAAO,SAAS,WAAW,CAAC;EAClC,IAAI,SAAS,aAAa,SAAS,iBAAiB;GAElD,IACE,SAAS,mBACT,IAAI,IAAI,SAAS,UACjB,SAAS,WAAW,IAAI,CAAC,MAAM,WAE/B;GAEF;EACF;CACF;CACA,OAAO;AACT;;;;;AAMA,SAAgB,sBAAsB,UAA4B;CAChE,MAAM,UAAU,mBAAmB,QAAQ;CAM3C,OALc,MAAM,KAAK,EAAE,QAAQ,QAAQ,OAAO,IAAI,GAAG,MAAM;EAC7D,MAAM,QAAQ,QAAQ;EACtB,MAAM,MAAM,QAAQ,IAAI,MAAM,SAAS;EACvC,OAAO,SAAS,MAAM,OAAO,GAAG;CAClC,CACW;AACb"}
1
+ {"version":3,"file":"computeFileOffsets.js","names":[],"sources":["../../src/utils/computeFileOffsets.ts"],"sourcesContent":["const LINE_FEED = 10; // \\n\nconst CARRIAGE_RETURN = 13; // \\r\nconst DENSE_LINE_BREAK_BLOCK_SIZE = 4;\nconst DENSE_LINE_BREAK_BLOCK_SPAN = 40;\n\n/**\n * Computes line start offsets for a string.\n */\nexport function computeLineOffsets(contents: string): number[] {\n const offsets: number[] = [0];\n let carriageReturn = contents.indexOf('\\r');\n let lineFeed = contents.indexOf('\\n');\n let blockStart = 0;\n let blockBreaks = 0;\n while (carriageReturn !== -1 || lineFeed !== -1) {\n let nextOffset: number;\n if (\n carriageReturn !== -1 &&\n (lineFeed === -1 || carriageReturn < lineFeed)\n ) {\n if (lineFeed === carriageReturn + 1) {\n nextOffset = lineFeed + 1;\n carriageReturn = contents.indexOf('\\r', nextOffset);\n lineFeed = contents.indexOf('\\n', nextOffset);\n } else {\n nextOffset = carriageReturn + 1;\n carriageReturn = contents.indexOf('\\r', nextOffset);\n }\n } else {\n nextOffset = lineFeed + 1;\n lineFeed = contents.indexOf('\\n', nextOffset);\n }\n offsets.push(nextOffset);\n\n if (++blockBreaks === DENSE_LINE_BREAK_BLOCK_SIZE) {\n if (nextOffset - blockStart <= DENSE_LINE_BREAK_BLOCK_SPAN) {\n // Native searches win on source-like lines; a character scan is faster\n // once line breaks become unusually dense.\n for (let i = nextOffset; i < contents.length; i++) {\n const char = contents.charCodeAt(i);\n if (char === LINE_FEED || char === CARRIAGE_RETURN) {\n if (\n char === CARRIAGE_RETURN &&\n i + 1 < contents.length &&\n contents.charCodeAt(i + 1) === LINE_FEED\n ) {\n i++;\n }\n offsets.push(i + 1);\n }\n }\n return offsets;\n }\n blockStart = nextOffset;\n blockBreaks = 0;\n }\n }\n return offsets;\n}\n\n/**\n * Counts line breaks in a string, treating `\\n`, `\\r`, and `\\r\\n` the same way\n * {@link computeLineOffsets} does (a `\\r\\n` pair is one break). Mirrors that\n * scan but counts in a single pass instead of building and discarding an\n * offsets array, so sizing the changed-line range for large edits stays cheap.\n * A unit test asserts it stays in lockstep with `computeLineOffsets`.\n */\nexport function countLineBreaks(contents: string): number {\n let count = 0;\n for (let i = 0; i < contents.length; i++) {\n const char = contents.charCodeAt(i);\n if (char === LINE_FEED || char === CARRIAGE_RETURN) {\n // Skip the `\\n` of a `\\r\\n` pair so it counts as one break, not two.\n if (\n char === CARRIAGE_RETURN &&\n i + 1 < contents.length &&\n contents.charCodeAt(i + 1) === LINE_FEED\n ) {\n i++;\n }\n count++;\n }\n }\n return count;\n}\n\n/**\n * Splits file contents into lines aligned with {@link computeLineOffsets}.\n * Unlike splitFileContents, a trailing newline produces a final empty line.\n */\nexport function linesFromFileContents(contents: string): string[] {\n const offsets = computeLineOffsets(contents);\n const lines = Array.from({ length: offsets.length }, (_, i) => {\n const start = offsets[i];\n const end = offsets[i + 1] ?? contents.length;\n return contents.slice(start, end);\n });\n return lines;\n}\n"],"mappings":";AAAA,MAAM,YAAY;AAClB,MAAM,kBAAkB;AACxB,MAAM,8BAA8B;AACpC,MAAM,8BAA8B;;;;AAKpC,SAAgB,mBAAmB,UAA4B;CAC7D,MAAM,UAAoB,CAAC,CAAC;CAC5B,IAAI,iBAAiB,SAAS,QAAQ,IAAI;CAC1C,IAAI,WAAW,SAAS,QAAQ,IAAI;CACpC,IAAI,aAAa;CACjB,IAAI,cAAc;CAClB,OAAO,mBAAmB,MAAM,aAAa,IAAI;EAC/C,IAAI;EACJ,IACE,mBAAmB,OAClB,aAAa,MAAM,iBAAiB,WAErC,IAAI,aAAa,iBAAiB,GAAG;GACnC,aAAa,WAAW;GACxB,iBAAiB,SAAS,QAAQ,MAAM,UAAU;GAClD,WAAW,SAAS,QAAQ,MAAM,UAAU;EAC9C,OAAO;GACL,aAAa,iBAAiB;GAC9B,iBAAiB,SAAS,QAAQ,MAAM,UAAU;EACpD;OACK;GACL,aAAa,WAAW;GACxB,WAAW,SAAS,QAAQ,MAAM,UAAU;EAC9C;EACA,QAAQ,KAAK,UAAU;EAEvB,IAAI,EAAE,gBAAgB,6BAA6B;GACjD,IAAI,aAAa,cAAc,6BAA6B;IAG1D,KAAK,IAAI,IAAI,YAAY,IAAI,SAAS,QAAQ,KAAK;KACjD,MAAM,OAAO,SAAS,WAAW,CAAC;KAClC,IAAI,SAAS,aAAa,SAAS,iBAAiB;MAClD,IACE,SAAS,mBACT,IAAI,IAAI,SAAS,UACjB,SAAS,WAAW,IAAI,CAAC,MAAM,WAE/B;MAEF,QAAQ,KAAK,IAAI,CAAC;KACpB;IACF;IACA,OAAO;GACT;GACA,aAAa;GACb,cAAc;EAChB;CACF;CACA,OAAO;AACT;;;;;;;;AASA,SAAgB,gBAAgB,UAA0B;CACxD,IAAI,QAAQ;CACZ,KAAK,IAAI,IAAI,GAAG,IAAI,SAAS,QAAQ,KAAK;EACxC,MAAM,OAAO,SAAS,WAAW,CAAC;EAClC,IAAI,SAAS,aAAa,SAAS,iBAAiB;GAElD,IACE,SAAS,mBACT,IAAI,IAAI,SAAS,UACjB,SAAS,WAAW,IAAI,CAAC,MAAM,WAE/B;GAEF;EACF;CACF;CACA,OAAO;AACT;;;;;AAMA,SAAgB,sBAAsB,UAA4B;CAChE,MAAM,UAAU,mBAAmB,QAAQ;CAM3C,OALc,MAAM,KAAK,EAAE,QAAQ,QAAQ,OAAO,IAAI,GAAG,MAAM;EAC7D,MAAM,QAAQ,QAAQ;EACtB,MAAM,MAAM,QAAQ,IAAI,MAAM,SAAS;EACvC,OAAO,SAAS,MAAM,OAAO,GAAG;CAClC,CACW;AACb"}
@@ -0,0 +1,5 @@
1
+ //#region src/utils/isGutterUtilityPath.d.ts
2
+ declare function isGutterUtilityPath(path: readonly (EventTarget | undefined)[]): boolean;
3
+ //#endregion
4
+ export { isGutterUtilityPath };
5
+ //# sourceMappingURL=isGutterUtilityPath.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isGutterUtilityPath.d.ts","names":[],"sources":["../../src/utils/isGutterUtilityPath.ts"],"mappings":";iBAEgB,mBAAA,CACd,IAA0C,YAA1B,WAAW"}
@@ -0,0 +1,12 @@
1
+ //#region src/utils/isGutterUtilityPath.ts
2
+ function isGutterUtilityPath(path) {
3
+ for (const element of path) {
4
+ if (!(element instanceof HTMLElement)) continue;
5
+ if (element.hasAttribute("data-utility-button") || element.hasAttribute("data-gutter-utility-slot") || element.getAttribute("slot") === "gutter-utility-slot" || element.getAttribute("name") === "gutter-utility-slot") return true;
6
+ }
7
+ return false;
8
+ }
9
+ //#endregion
10
+ export { isGutterUtilityPath };
11
+
12
+ //# sourceMappingURL=isGutterUtilityPath.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isGutterUtilityPath.js","names":[],"sources":["../../src/utils/isGutterUtilityPath.ts"],"sourcesContent":["// Recognize both the built-in utility button and custom content assigned to the\n// gutter utility slot so other pointer handlers leave the gesture untouched.\nexport function isGutterUtilityPath(\n path: readonly (EventTarget | undefined)[]\n): boolean {\n for (const element of path) {\n if (!(element instanceof HTMLElement)) {\n continue;\n }\n if (\n element.hasAttribute('data-utility-button') ||\n element.hasAttribute('data-gutter-utility-slot') ||\n element.getAttribute('slot') === 'gutter-utility-slot' ||\n element.getAttribute('name') === 'gutter-utility-slot'\n ) {\n return true;\n }\n }\n return false;\n}\n"],"mappings":";AAEA,SAAgB,oBACd,MACS;CACT,KAAK,MAAM,WAAW,MAAM;EAC1B,IAAI,EAAE,mBAAmB,cACvB;EAEF,IACE,QAAQ,aAAa,qBAAqB,KAC1C,QAAQ,aAAa,0BAA0B,KAC/C,QAAQ,aAAa,MAAM,MAAM,yBACjC,QAAQ,aAAa,MAAM,MAAM,uBAEjC,OAAO;CAEX;CACA,OAAO;AACT"}
@@ -13366,16 +13366,45 @@ function renderTwoFiles({ deletionFile, additionFile, deletionInfo, additionInfo
13366
13366
  //#region src/utils/computeFileOffsets.ts
13367
13367
  const LINE_FEED = 10;
13368
13368
  const CARRIAGE_RETURN = 13;
13369
+ const DENSE_LINE_BREAK_BLOCK_SIZE = 4;
13370
+ const DENSE_LINE_BREAK_BLOCK_SPAN = 40;
13369
13371
  /**
13370
13372
  * Computes line start offsets for a string.
13371
13373
  */
13372
13374
  function computeLineOffsets(contents) {
13373
13375
  const offsets = [0];
13374
- for (let i = 0; i < contents.length; i++) {
13375
- const char = contents.charCodeAt(i);
13376
- if (char === LINE_FEED || char === CARRIAGE_RETURN) {
13377
- if (char === CARRIAGE_RETURN && i + 1 < contents.length && contents.charCodeAt(i + 1) === LINE_FEED) i++;
13378
- offsets.push(i + 1);
13376
+ let carriageReturn = contents.indexOf("\r");
13377
+ let lineFeed = contents.indexOf("\n");
13378
+ let blockStart = 0;
13379
+ let blockBreaks = 0;
13380
+ while (carriageReturn !== -1 || lineFeed !== -1) {
13381
+ let nextOffset;
13382
+ if (carriageReturn !== -1 && (lineFeed === -1 || carriageReturn < lineFeed)) if (lineFeed === carriageReturn + 1) {
13383
+ nextOffset = lineFeed + 1;
13384
+ carriageReturn = contents.indexOf("\r", nextOffset);
13385
+ lineFeed = contents.indexOf("\n", nextOffset);
13386
+ } else {
13387
+ nextOffset = carriageReturn + 1;
13388
+ carriageReturn = contents.indexOf("\r", nextOffset);
13389
+ }
13390
+ else {
13391
+ nextOffset = lineFeed + 1;
13392
+ lineFeed = contents.indexOf("\n", nextOffset);
13393
+ }
13394
+ offsets.push(nextOffset);
13395
+ if (++blockBreaks === DENSE_LINE_BREAK_BLOCK_SIZE) {
13396
+ if (nextOffset - blockStart <= DENSE_LINE_BREAK_BLOCK_SPAN) {
13397
+ for (let i = nextOffset; i < contents.length; i++) {
13398
+ const char = contents.charCodeAt(i);
13399
+ if (char === LINE_FEED || char === CARRIAGE_RETURN) {
13400
+ if (char === CARRIAGE_RETURN && i + 1 < contents.length && contents.charCodeAt(i + 1) === LINE_FEED) i++;
13401
+ offsets.push(i + 1);
13402
+ }
13403
+ }
13404
+ return offsets;
13405
+ }
13406
+ blockStart = nextOffset;
13407
+ blockBreaks = 0;
13379
13408
  }
13380
13409
  }
13381
13410
  return offsets;