@qredence/fleet 0.7.0 → 0.7.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +12 -0
- package/dist/web/client/assets/{action-swap-roll-BfVrBOVd.js → action-swap-roll-Bek47h-E.js} +1 -1
- package/dist/web/client/assets/{alert-dialog-FCppNafx.js → alert-dialog-OoasP5iO.js} +1 -1
- package/dist/web/client/assets/{artifacts-panel-Qd6JlHzz.js → artifacts-panel-DVY0-7X0.js} +1 -1
- package/dist/web/client/assets/{badge-BjFxrtmB.js → badge-9wr3qUp1.js} +7 -7
- package/dist/web/client/assets/{button-BJyg7l5W.js → button-Bqms7ZKX.js} +1 -1
- package/dist/web/client/assets/{card-BScRdZNS.js → card-DPCbcrMK.js} +1 -1
- package/dist/web/client/assets/{chat-command-palette-CPlJp2cO.js → chat-command-palette-CXS5eTiy.js} +1 -1
- package/dist/web/client/assets/{chunk-YOKDWASO-C8deEx7Z.js → chunk-YOKDWASO-Dego39cu.js} +4 -4
- package/dist/web/client/assets/{citations-BhyqbxcZ.js → citations-C7USoVdz.js} +1 -1
- package/dist/web/client/assets/{command-Bo31U-UD.js → command-s2yLD3tA.js} +1 -1
- package/dist/web/client/assets/{create-project-dialog-SDyXTpl-.js → create-project-dialog-C99_Lyjg.js} +1 -1
- package/dist/web/client/assets/{dialog-DLIPvl1s.js → dialog-DuCD5hRq.js} +1 -1
- package/dist/web/client/assets/{dist-CZDnnosQ.js → dist-QgsZ1U9l.js} +1 -1
- package/dist/web/client/assets/{ease-DKi-MOH5.js → ease-2gsl7ABx.js} +1 -1
- package/dist/web/client/assets/{fork-picker-dialog-BDleMADF.js → fork-picker-dialog--dV6TE-9.js} +1 -1
- package/dist/web/client/assets/globals-BXtzVIWE.css +2 -0
- package/dist/web/client/assets/{highlighted-body-KPVGNVTW-CZcNaoxi.js → highlighted-body-KPVGNVTW-CSgDVUQp.js} +1 -1
- package/dist/web/client/assets/index-C2EkVtv5.js +13 -0
- package/dist/web/client/assets/{input-Ce8yLnXY.js → input-DECT4vz2.js} +1 -1
- package/dist/web/client/assets/{input-group-BZLQiZOA.js → input-group-CZlz1ygA.js} +1 -1
- package/dist/web/client/assets/{ipython-tool-CuSGRhXl.js → ipython-tool-Bs6ESZe1.js} +1 -1
- package/dist/web/client/assets/{layout-constants-Bl6XCvhY.js → layout-constants-C4hoW3YP.js} +1 -1
- package/dist/web/client/assets/{markdown-C-Y9gskI.js → markdown-B2tpfUKu.js} +2 -2
- package/dist/web/client/assets/{markdown-code-BqFVdovL.js → markdown-code-B5YUmtLX.js} +1 -1
- package/dist/web/client/assets/mermaid-HWGCJPDP-BpEVCu9T.js +1 -0
- package/dist/web/client/assets/{message-queue-CiptKSb6.js → message-queue-BD2sIUTH.js} +1 -1
- package/dist/web/client/assets/{model-selector-list-BHQ-Q8b9.js → model-selector-list-zPZRE3JY.js} +1 -1
- package/dist/web/client/assets/{notify-BC0a76VJ.js → notify-mVA6z9Ly.js} +1 -1
- package/dist/web/client/assets/{openui-renderer-CH9K7_8t.js → openui-renderer-ByP8yQph.js} +1 -1
- package/dist/web/client/assets/{preload-helper-Czpn1I53.js → preload-helper-BZ1Pz5am.js} +1 -1
- package/dist/web/client/assets/{prompt-input-IwZOepG7.js → prompt-input-Bnl0HyL6.js} +1 -1
- package/dist/web/client/assets/{prompt-suggestions-BRFWFm5y.js → prompt-suggestions-DcgETXtw.js} +1 -1
- package/dist/web/client/assets/{provider-label-DNZOLldn.js → provider-label-COVNyoZo.js} +1 -1
- package/dist/web/client/assets/{repl-panel-UQN9UFG7.js → repl-panel-BoDNpJOe.js} +1 -1
- package/dist/web/client/assets/{resources-panel-kp_UjnpX.js → resources-panel-DD6iWOF3.js} +1 -1
- package/dist/web/client/assets/{right-panel-registry-BJG8ubHt.js → right-panel-registry-CIfLdAfS.js} +2 -2
- package/dist/web/client/assets/{routes-BXFQmjL9.js → routes-DO93P3Xm.js} +5 -5
- package/dist/web/client/assets/{select-COK0Kaq2.js → select-Dp15z1lf.js} +1 -1
- package/dist/web/client/assets/{session-reasoning-panel-DrTWp8d4.js → session-reasoning-panel-WMedZp__.js} +1 -1
- package/dist/web/client/assets/session-tool-renderer-BFC3-Md4.js +170 -0
- package/dist/web/client/assets/{session-tree-panel-deGRKAhX.js → session-tree-panel-CnHOsPzz.js} +1 -1
- package/dist/web/client/assets/{settings-dialog-BU1Tw0CQ.js → settings-dialog-BN138nzK.js} +1 -1
- package/dist/web/client/assets/{skeleton-D5Y9nBfp.js → skeleton-DNAr5ULI.js} +1 -1
- package/dist/web/client/assets/{skeleton-loaders-DOKGa7CW.js → skeleton-loaders-B28mF4tJ.js} +1 -1
- package/dist/web/client/assets/{spinner-C3sPnLdu.js → spinner-CSBXk3Lo.js} +1 -1
- package/dist/web/client/assets/{subagent-chat-panel-DQEnhU2t.js → subagent-chat-panel-DYKOKRPp.js} +1 -1
- package/dist/web/client/assets/subagent-transcript-BCUhqVvi.js +1 -0
- package/dist/web/client/assets/{subagent-utils-DTV2RcFl.js → subagent-utils-CM2qX9BG.js} +2 -2
- package/dist/web/client/assets/{subagents-panel-B-X7WPUU.js → subagents-panel-CTvtU0Sh.js} +1 -1
- package/dist/web/client/assets/{surface-context-DWplCCcO.js → surface-context-VvasJf_6.js} +1 -1
- package/dist/web/client/assets/{surfaces-BULKVm-B.js → surfaces-m1vs5aMP.js} +1 -1
- package/dist/web/client/assets/{switch-DQETDDJT.js → switch-eqXIzePo.js} +1 -1
- package/dist/web/client/assets/{toast-BFeqSeaR.js → toast-DRDVljMF.js} +1 -1
- package/dist/web/client/assets/{tool-result-C5Ixe-AJ.js → tool-result-DWUV8hEz.js} +2 -2
- package/dist/web/client/assets/{tool-timeline-B4ci1oJg.js → tool-timeline-4k2iSEky.js} +1 -1
- package/dist/web/client/assets/{use-reduced-motion-BgG7f9xw.js → use-reduced-motion-BzGFRmoG.js} +1 -1
- package/dist/web/client/assets/utils-CFDGLzf6.js +1 -0
- package/dist/web/client/assets/{workspace-panel-DDjQuELx.js → workspace-panel-BNeGABPi.js} +1 -1
- package/dist/web/client/assets/{workspace-path-nav-DmxBrMV6.js → workspace-path-nav-umvkE4ut.js} +2 -2
- package/dist/web/client/bundle-budget.json +5 -5
- package/dist/web/server/{_tanstack-start-manifest_v-vL58CVrY-7SDCWIHD.js → _tanstack-start-manifest_v-DTCFS0PG-ARV2V4FW.js} +27 -27
- package/dist/web/server/{artifacts-panel-CozDO7ak-5T4W7RME.js → artifacts-panel-Ct2R_4wM-DAPQMI57.js} +14 -14
- package/dist/web/server/{chat-command-palette-CLE-L0qp-ZZNKVTSS.js → chat-command-palette-ETZzg35Q-TAV74IAW.js} +9 -9
- package/dist/web/server/{chunk-5AYK2KDO.js → chunk-777VIBCH.js} +176 -176
- package/dist/web/server/{chunk-7VFULIHV.js → chunk-AAPVQJAD.js} +2 -2
- package/dist/web/server/{chunk-D7GSWBRI.js → chunk-BNB7T7P6.js} +2 -2
- package/dist/web/server/{chunk-E4YWFQX5.js → chunk-FFGFTGLQ.js} +415 -383
- package/dist/web/server/{chunk-EUWNVEIC.js → chunk-FL3FOWSC.js} +118 -108
- package/dist/web/server/{chunk-QCDSLD3L.js → chunk-GS5F6X7H.js} +628 -327
- package/dist/web/server/{chunk-B7YWDA2F.js → chunk-INRE3X52.js} +2 -2
- package/dist/web/server/{chunk-GRGV5FVO.js → chunk-JOCVZVZ3.js} +5 -5
- package/dist/web/server/{chunk-NHV77NOI.js → chunk-JU7PCOE7.js} +4 -4
- package/dist/web/server/{chunk-RVDWGK6U.js → chunk-KVW6XTN3.js} +14 -9
- package/dist/web/server/{chunk-NB3TVOGB.js → chunk-LECHJX4M.js} +483 -481
- package/dist/web/server/{chunk-RYU7I34A.js → chunk-M6K66QBV.js} +6 -6
- package/dist/web/server/{chunk-SLRV7YNY.js → chunk-R7KUUFDW.js} +4 -4
- package/dist/web/server/chunk-SHNODG3C.js +18343 -0
- package/dist/web/server/{chunk-PXSOI3XF.js → chunk-SQXJ5TUB.js} +2 -2
- package/dist/web/server/{chunk-B5Y7XOIJ.js → chunk-TMQ3MT3D.js} +78 -17
- package/dist/web/server/{chunk-B4EBMF5J.js → chunk-UWZYLMEH.js} +2 -2
- package/dist/web/server/{chunk-YIJ7D7G5.js → chunk-VTEYQNJE.js} +7 -7
- package/dist/web/server/{chunk-F5DJQ3PQ.js → chunk-WPSI5TBE.js} +1528 -2185
- package/dist/web/server/{chunk-ABYOWAMD.js → chunk-X76RBZ37.js} +2 -2
- package/dist/web/server/{chunk-54UEKLGD.js → chunk-XMAAYUOT.js} +14 -14
- package/dist/web/server/{create-project-dialog-CReZdM5g-2V7C5J67.js → create-project-dialog-CqBmLTlA-X6HI6AYR.js} +10 -10
- package/dist/web/server/{dist-DVCLWOYT.js → dist-3UIQ7SZN.js} +2 -2
- package/dist/web/server/{dist-4A22NBTB.js → dist-ZPEDRNZ4.js} +2 -2
- package/dist/web/server/{empty-plugin-adapters-Cqtvkauv-ILKI7W7V.js → empty-plugin-adapters-DOl-E2pL-RKRSN75W.js} +1 -1
- package/dist/web/server/{fork-picker-dialog-CXcLEaor-6SVM5RJO.js → fork-picker-dialog-PYNd9ozc-EA7BRLRR.js} +7 -7
- package/dist/web/server/{markdown-CShfYRVO-OKGCYPQK.js → markdown-CShfYRVO-22N5LNAN.js} +2 -2
- package/dist/web/server/{markdown-code-BDV_2b2T-VZGAECQB.js → markdown-code-BDV_2b2T-KUPHX52W.js} +2 -2
- package/dist/web/server/{message-queue-Q_Q6hbqc-AOV2PSCX.js → message-queue-DmSFAI5Y-XDZHJ2Z6.js} +7 -7
- package/dist/web/server/{model-selector-list-BOKU5_Z3-III72ZT2.js → model-selector-list-C-Y3p5UM-HTSWVVHP.js} +9 -9
- package/dist/web/server/{openui-renderer-VuQOQeAP-XBOR3XGN.js → openui-renderer-C4B1EJxC-QDYQF5LD.js} +11 -11
- package/dist/web/server/{prompt-suggestions-EqAaAx6L-723M64XJ.js → prompt-suggestions-EqAaAx6L-B4KCWNZX.js} +1 -1
- package/dist/web/server/{repl-panel-DOyUyuQR-IMYO4FKX.js → repl-panel-DOyUyuQR-LRBDRMHW.js} +3 -3
- package/dist/web/server/{resources-panel-Cnz-X1bx-TT5KVROR.js → resources-panel-Bo-TmRON-O47AKGEQ.js} +8 -8
- package/dist/web/server/{router-C437aaqv-72HBLLJI.js → router-DtS2wXhd-I2SZV7YF.js} +6 -6
- package/dist/web/server/{routes-BkVN3m9i-PYNMNLQ5.js → routes-DuSYlASY-U7C32ONE.js} +6 -6
- package/dist/web/server/server.js +2410 -1672
- package/dist/web/server/{session-reasoning-panel-2_TR5nKM-KA5OY7ZV.js → session-reasoning-panel-BFcZs1pZ-KNHSU5GX.js} +8 -8
- package/dist/web/server/{session-tool-renderer-BFEWy2Pk-JTSYUPO5.js → session-tool-renderer-TiFeeJEc-YUZPEEZ4.js} +10 -10
- package/dist/web/server/{session-tree-panel-3y9LVA0A-4V4TJX62.js → session-tree-panel-CjsqVYLY-DGZBGY2E.js} +7 -7
- package/dist/web/server/{settings-dialog-DgZ8Z5e4-6T5AS2EB.js → settings-dialog-Bj5LrAE8-6BQRLUJT.js} +11 -11
- package/dist/web/server/{start-QK6aG02q-EMREW2SB.js → start-cCC--AXu-BBMIT6OU.js} +1 -1
- package/dist/web/server/{subagent-chat-panel-B0pmAxCp-DKXNAOUU.js → subagent-chat-panel-DAS4Ne-1-TWIUXSQC.js} +13 -13
- package/dist/web/server/{subagents-panel-FUUT0t1i-5ZKJ2QAJ.js → subagents-panel-C3CdUcqw-DFTJTPHA.js} +13 -13
- package/dist/web/server/{tool-timeline-C4dgQITK-CFWANSDL.js → tool-timeline-C4dgQITK-IWCLQLWG.js} +3 -3
- package/dist/web/server/{workspace-panel-BbI1N4f8-WYOEVH4G.js → workspace-panel-DNs0Ye2U-VFB6X5PK.js} +8 -8
- package/package.json +5 -5
- package/dist/web/client/assets/globals-DZbMyHfg.css +0 -2
- package/dist/web/client/assets/index-D3HpiAnD.js +0 -12
- package/dist/web/client/assets/mermaid-HWGCJPDP-CVNXPao6.js +0 -1
- package/dist/web/client/assets/session-tool-renderer-mOZdkbiU.js +0 -1389
- package/dist/web/client/assets/subagent-transcript-CCpg3uL6.js +0 -1
- package/dist/web/client/assets/utils-Dpy9ZFOr.js +0 -1
- package/dist/web/server/chunk-XJHYJLGU.js +0 -38412
|
@@ -7,12 +7,12 @@ import {
|
|
|
7
7
|
FileDiff,
|
|
8
8
|
ToolResult,
|
|
9
9
|
ToolResultOutput
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-JU7PCOE7.js";
|
|
11
11
|
import {
|
|
12
12
|
Collapsible$1,
|
|
13
13
|
CollapsibleContent,
|
|
14
14
|
CollapsibleTrigger
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-BNB7T7P6.js";
|
|
16
16
|
import {
|
|
17
17
|
ActionSwapRollText,
|
|
18
18
|
AgentDisclosure,
|
|
@@ -27,19 +27,19 @@ import {
|
|
|
27
27
|
mono,
|
|
28
28
|
stripSandboxPrefixes,
|
|
29
29
|
useHoverCapable
|
|
30
|
-
} from "./chunk-
|
|
30
|
+
} from "./chunk-FL3FOWSC.js";
|
|
31
31
|
import {
|
|
32
32
|
AnimatePresence,
|
|
33
33
|
m,
|
|
34
34
|
useReducedMotion
|
|
35
|
-
} from "./chunk-
|
|
35
|
+
} from "./chunk-FFGFTGLQ.js";
|
|
36
36
|
import {
|
|
37
37
|
IpythonTool,
|
|
38
38
|
ToolApprovalFooter,
|
|
39
39
|
ToolTextShimmer,
|
|
40
40
|
adaptToolPart,
|
|
41
41
|
useToolComplete
|
|
42
|
-
} from "./chunk-
|
|
42
|
+
} from "./chunk-INRE3X52.js";
|
|
43
43
|
import {
|
|
44
44
|
Check,
|
|
45
45
|
ChevronDown,
|
|
@@ -68,7 +68,7 @@ import {
|
|
|
68
68
|
Terminal,
|
|
69
69
|
Wrench,
|
|
70
70
|
X
|
|
71
|
-
} from "./chunk-
|
|
71
|
+
} from "./chunk-777VIBCH.js";
|
|
72
72
|
import {
|
|
73
73
|
bundledLanguages,
|
|
74
74
|
createHighlighter,
|
|
@@ -82,13 +82,13 @@ import {
|
|
|
82
82
|
} from "./chunk-OO7NBFQQ.js";
|
|
83
83
|
import {
|
|
84
84
|
cn
|
|
85
|
-
} from "./chunk-
|
|
85
|
+
} from "./chunk-TMQ3MT3D.js";
|
|
86
86
|
|
|
87
|
-
// web/app/dist/server/assets/session-tool-renderer-
|
|
88
|
-
import React, { memo, useCallback as useCallback4, useEffect as useEffect3, useId, useLayoutEffect as useLayoutEffect2, useMemo as useMemo2, useRef as useRef3, useState as
|
|
87
|
+
// web/app/dist/server/assets/session-tool-renderer-TiFeeJEc.js
|
|
88
|
+
import React, { memo, useCallback as useCallback4, useEffect as useEffect3, useId, useLayoutEffect as useLayoutEffect2, useMemo as useMemo2, useRef as useRef3, useState as useState4 } from "react";
|
|
89
89
|
import { Fragment as Fragment$1, jsx as jsx7, jsxs as jsxs3 } from "react/jsx-runtime";
|
|
90
90
|
|
|
91
|
-
// node_modules/.pnpm/@pierre+diffs@1.
|
|
91
|
+
// node_modules/.pnpm/@pierre+diffs@1.5.1_@shikijs+themes@4.4.3_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@pierre/diffs/dist/react/utils/useStableCallback.js
|
|
92
92
|
import { useCallback, useInsertionEffect, useRef } from "react";
|
|
93
93
|
function useStableCallback(callback) {
|
|
94
94
|
const callbackRef = useRef(callback);
|
|
@@ -98,7 +98,7 @@ function useStableCallback(callback) {
|
|
|
98
98
|
}, []);
|
|
99
99
|
}
|
|
100
100
|
|
|
101
|
-
// node_modules/.pnpm/@pierre+diffs@1.
|
|
101
|
+
// node_modules/.pnpm/@pierre+diffs@1.5.1_@shikijs+themes@4.4.3_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@pierre/diffs/dist/react/EditContext.js
|
|
102
102
|
import { createContext, useContext } from "react";
|
|
103
103
|
import { jsx } from "react/jsx-runtime";
|
|
104
104
|
var EditContext = createContext(void 0);
|
|
@@ -106,7 +106,7 @@ function useCreateEditor() {
|
|
|
106
106
|
return useContext(EditContext);
|
|
107
107
|
}
|
|
108
108
|
|
|
109
|
-
// node_modules/.pnpm/@pierre+diffs@1.
|
|
109
|
+
// node_modules/.pnpm/@pierre+diffs@1.5.1_@shikijs+themes@4.4.3_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@pierre/diffs/dist/react/constants.js
|
|
110
110
|
var GutterUtilitySlotStyles = {
|
|
111
111
|
position: "absolute",
|
|
112
112
|
top: 0,
|
|
@@ -120,7 +120,7 @@ function noopRender() {
|
|
|
120
120
|
return null;
|
|
121
121
|
}
|
|
122
122
|
|
|
123
|
-
// node_modules/.pnpm/@pierre+diffs@1.
|
|
123
|
+
// node_modules/.pnpm/@pierre+diffs@1.5.1_@shikijs+themes@4.4.3_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@pierre/diffs/dist/constants.js
|
|
124
124
|
var DIFFS_TAG_NAME = "diffs-container";
|
|
125
125
|
var DIFFS_DEVELOPMENT_BUILD = (() => {
|
|
126
126
|
try {
|
|
@@ -132,8 +132,6 @@ var DIFFS_DEVELOPMENT_BUILD = (() => {
|
|
|
132
132
|
var GIT_DIFF_FILE_BREAK_REGEX = /(?=^diff --git)/gm;
|
|
133
133
|
var SPLIT_WITH_NEWLINES = /(?<=\n)/;
|
|
134
134
|
var FILENAME_HEADER_REGEX = /^(---|\+\+\+)\s+([^\t\r\n]+)/;
|
|
135
|
-
var FILENAME_HEADER_REGEX_GIT = /^(---|\+\+\+)\s+[ab]\/([^\t\r\n]+)/;
|
|
136
|
-
var ALTERNATE_FILE_NAMES_GIT = /^diff --git (?:"a\/(.+?)"|a\/(.+?)) (?:"b\/(.+?)"|b\/(.+?))$/;
|
|
137
135
|
var INDEX_LINE_METADATA = /^index ([0-9a-f]+)\.\.([0-9a-f]+)(?: (\d+))?$/i;
|
|
138
136
|
var HEADER_PREFIX_SLOT_ID = "header-prefix";
|
|
139
137
|
var HEADER_FILENAME_SUFFIX_SLOT_ID = "header-filename-suffix";
|
|
@@ -175,17 +173,17 @@ var EMPTY_RENDER_RANGE = {
|
|
|
175
173
|
bufferAfter: 0
|
|
176
174
|
};
|
|
177
175
|
|
|
178
|
-
// node_modules/.pnpm/@pierre+diffs@1.
|
|
176
|
+
// node_modules/.pnpm/@pierre+diffs@1.5.1_@shikijs+themes@4.4.3_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@pierre/diffs/dist/utils/getLineAnnotationName.js
|
|
179
177
|
function getLineAnnotationName(annotation) {
|
|
180
178
|
return `annotation-${"side" in annotation ? `${annotation.side}-` : ""}${annotation.lineNumber}`;
|
|
181
179
|
}
|
|
182
180
|
|
|
183
|
-
// node_modules/.pnpm/@pierre+diffs@1.
|
|
181
|
+
// node_modules/.pnpm/@pierre+diffs@1.5.1_@shikijs+themes@4.4.3_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@pierre/diffs/dist/utils/getMergeConflictActionSlotName.js
|
|
184
182
|
function getMergeConflictActionSlotName({ hunkIndex, lineIndex, conflictIndex }) {
|
|
185
183
|
return `merge-conflict-action-${hunkIndex}-${lineIndex}-${conflictIndex}`;
|
|
186
184
|
}
|
|
187
185
|
|
|
188
|
-
// node_modules/.pnpm/@pierre+diffs@1.
|
|
186
|
+
// node_modules/.pnpm/@pierre+diffs@1.5.1_@shikijs+themes@4.4.3_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@pierre/diffs/dist/utils/getHunkSideBoundaries.js
|
|
189
187
|
function getHunkSideStartBoundary(start, count) {
|
|
190
188
|
return start - (count === 0 ? 0 : 1);
|
|
191
189
|
}
|
|
@@ -193,7 +191,7 @@ function getHunkSideEndBoundary(start, count) {
|
|
|
193
191
|
return getHunkSideStartBoundary(start, count) + count;
|
|
194
192
|
}
|
|
195
193
|
|
|
196
|
-
// node_modules/.pnpm/@pierre+diffs@1.
|
|
194
|
+
// node_modules/.pnpm/@pierre+diffs@1.5.1_@shikijs+themes@4.4.3_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@pierre/diffs/dist/utils/parseMergeConflictDiffFromFile.js
|
|
197
195
|
function getMergeConflictActionAnchor(action, fileDiff) {
|
|
198
196
|
const hunk = fileDiff.hunks[action.hunkIndex];
|
|
199
197
|
if (hunk == null) return;
|
|
@@ -211,7 +209,7 @@ function getUnifiedLineStartForContent(hunk, contentIndex) {
|
|
|
211
209
|
return lineIndex;
|
|
212
210
|
}
|
|
213
211
|
|
|
214
|
-
// node_modules/.pnpm/@pierre+diffs@1.
|
|
212
|
+
// node_modules/.pnpm/@pierre+diffs@1.5.1_@shikijs+themes@4.4.3_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@pierre/diffs/dist/react/utils/renderDiffChildren.js
|
|
215
213
|
import { Fragment, jsx as jsx2, jsxs } from "react/jsx-runtime";
|
|
216
214
|
function renderDiffChildren({ fileDiff, actions, renderCustomHeader, renderHeaderPrefix, renderHeaderFilenameSuffix, renderHeaderMetadata, renderAnnotation, renderGutterUtility, renderMergeConflictUtility, lineAnnotations, getHoveredLine, getInstance, getAnnotationSlotName: getAnnotationSlotName2 = getLineAnnotationName }) {
|
|
217
215
|
const customHeader = renderCustomHeader?.(fileDiff);
|
|
@@ -265,13 +263,13 @@ function getSlotName(action, fileDiff) {
|
|
|
265
263
|
}) : void 0;
|
|
266
264
|
}
|
|
267
265
|
|
|
268
|
-
// node_modules/.pnpm/@pierre+diffs@1.
|
|
266
|
+
// node_modules/.pnpm/@pierre+diffs@1.5.1_@shikijs+themes@4.4.3_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@pierre/diffs/dist/highlighter/languages/constants.js
|
|
269
267
|
var ResolvedLanguages = /* @__PURE__ */ new Map();
|
|
270
268
|
var ResolvingLanguages = /* @__PURE__ */ new Map();
|
|
271
269
|
var RegisteredCustomLanguages = /* @__PURE__ */ new Map();
|
|
272
270
|
var AttachedLanguages = /* @__PURE__ */ new Set();
|
|
273
271
|
|
|
274
|
-
// node_modules/.pnpm/@pierre+diffs@1.
|
|
272
|
+
// node_modules/.pnpm/@pierre+diffs@1.5.1_@shikijs+themes@4.4.3_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@pierre/diffs/dist/highlighter/languages/areLanguagesAttached.js
|
|
275
273
|
function areLanguagesAttached(languages) {
|
|
276
274
|
for (const language of Array.isArray(languages) ? languages : [languages]) {
|
|
277
275
|
if (language === "text" || language === "ansi") continue;
|
|
@@ -280,7 +278,7 @@ function areLanguagesAttached(languages) {
|
|
|
280
278
|
return true;
|
|
281
279
|
}
|
|
282
280
|
|
|
283
|
-
// node_modules/.pnpm/@pierre+diffs@1.
|
|
281
|
+
// node_modules/.pnpm/@pierre+diffs@1.5.1_@shikijs+themes@4.4.3_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@pierre/diffs/dist/utils/getThemes.js
|
|
284
282
|
function getThemes(theme = DEFAULT_THEMES) {
|
|
285
283
|
const themesArr = [];
|
|
286
284
|
if (typeof theme === "string") themesArr.push(theme);
|
|
@@ -291,7 +289,7 @@ function getThemes(theme = DEFAULT_THEMES) {
|
|
|
291
289
|
return themesArr;
|
|
292
290
|
}
|
|
293
291
|
|
|
294
|
-
// node_modules/.pnpm/@pierre+diffs@1.
|
|
292
|
+
// node_modules/.pnpm/@pierre+diffs@1.5.1_@shikijs+themes@4.4.3_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@pierre/diffs/dist/highlighter/themes/constants.js
|
|
295
293
|
var AttachedThemes = /* @__PURE__ */ new Set();
|
|
296
294
|
|
|
297
295
|
// node_modules/.pnpm/@pierre+theming@1.0.1_@pierre+theme@2.0.0_@shikijs+themes@4.4.3_react-dom@19.3.0_react@19.3.0__react@19.3.0_shiki@4.4.3/node_modules/@pierre/theming/dist/modules/createThemeCollection.js
|
|
@@ -501,10 +499,10 @@ function createThemeResolver() {
|
|
|
501
499
|
};
|
|
502
500
|
}
|
|
503
501
|
|
|
504
|
-
// node_modules/.pnpm/@pierre+diffs@1.
|
|
502
|
+
// node_modules/.pnpm/@pierre+diffs@1.5.1_@shikijs+themes@4.4.3_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@pierre/diffs/dist/highlighter/themes/themeResolver.js
|
|
505
503
|
var themeResolver = createThemeResolver();
|
|
506
504
|
|
|
507
|
-
// node_modules/.pnpm/@pierre+diffs@1.
|
|
505
|
+
// node_modules/.pnpm/@pierre+diffs@1.5.1_@shikijs+themes@4.4.3_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@pierre/diffs/dist/highlighter/themes/attachResolvedThemes.js
|
|
508
506
|
function attachResolvedThemes(themes2, highlighter2) {
|
|
509
507
|
themes2 = Array.isArray(themes2) ? themes2 : [themes2];
|
|
510
508
|
for (let themeRef of themes2) {
|
|
@@ -523,7 +521,7 @@ function attachResolvedThemes(themes2, highlighter2) {
|
|
|
523
521
|
}
|
|
524
522
|
}
|
|
525
523
|
|
|
526
|
-
// node_modules/.pnpm/@pierre+diffs@1.
|
|
524
|
+
// node_modules/.pnpm/@pierre+diffs@1.5.1_@shikijs+themes@4.4.3_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@pierre/diffs/dist/highlighter/languages/attachResolvedLanguages.js
|
|
527
525
|
function attachResolvedLanguages(resolvedLanguages, highlighter2) {
|
|
528
526
|
resolvedLanguages = Array.isArray(resolvedLanguages) ? resolvedLanguages : [resolvedLanguages];
|
|
529
527
|
for (const resolvedLang of resolvedLanguages) {
|
|
@@ -533,17 +531,24 @@ function attachResolvedLanguages(resolvedLanguages, highlighter2) {
|
|
|
533
531
|
lang = resolvedLang;
|
|
534
532
|
ResolvedLanguages.set(resolvedLang.name, lang);
|
|
535
533
|
}
|
|
536
|
-
|
|
534
|
+
const grammar = lang.data.find((grammar2) => grammar2.name === lang.name || grammar2.aliases?.includes(lang.name) === true);
|
|
535
|
+
if (grammar == null) throw new Error(`attachResolvedLanguages: No returned grammar declares "${lang.name}" as its name or an alias.`);
|
|
537
536
|
highlighter2.loadLanguageSync(lang.data);
|
|
537
|
+
try {
|
|
538
|
+
highlighter2.getLanguage(lang.name);
|
|
539
|
+
} catch {
|
|
540
|
+
throw new Error(`attachResolvedLanguages: "${grammar.name}" is already loaded without alias "${lang.name}". Load the alias first or give the grammar a unique name.`);
|
|
541
|
+
}
|
|
542
|
+
AttachedLanguages.add(lang.name);
|
|
538
543
|
}
|
|
539
544
|
}
|
|
540
545
|
|
|
541
|
-
// node_modules/.pnpm/@pierre+diffs@1.
|
|
546
|
+
// node_modules/.pnpm/@pierre+diffs@1.5.1_@shikijs+themes@4.4.3_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@pierre/diffs/dist/utils/isWorkerContext.js
|
|
542
547
|
function isWorkerContext() {
|
|
543
548
|
return typeof WorkerGlobalScope !== "undefined" && typeof self !== "undefined" && self instanceof WorkerGlobalScope;
|
|
544
549
|
}
|
|
545
550
|
|
|
546
|
-
// node_modules/.pnpm/@pierre+diffs@1.
|
|
551
|
+
// node_modules/.pnpm/@pierre+diffs@1.5.1_@shikijs+themes@4.4.3_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@pierre/diffs/dist/highlighter/languages/resolveLanguage.js
|
|
547
552
|
async function resolveLanguage(lang) {
|
|
548
553
|
if (isWorkerContext()) throw new Error(`resolveLanguage("${lang}") cannot be called from a worker context. Languages must be pre-resolved on the main thread and passed to the worker via the resolvedLanguages parameter.`);
|
|
549
554
|
const resolver = ResolvingLanguages.get(lang);
|
|
@@ -567,12 +572,12 @@ async function resolveLanguage(lang) {
|
|
|
567
572
|
}
|
|
568
573
|
}
|
|
569
574
|
|
|
570
|
-
// node_modules/.pnpm/@pierre+diffs@1.
|
|
575
|
+
// node_modules/.pnpm/@pierre+diffs@1.5.1_@shikijs+themes@4.4.3_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@pierre/diffs/dist/highlighter/languages/getResolvedOrResolveLanguage.js
|
|
571
576
|
function getResolvedOrResolveLanguage(language) {
|
|
572
577
|
return ResolvedLanguages.get(language) ?? resolveLanguage(language);
|
|
573
578
|
}
|
|
574
579
|
|
|
575
|
-
// node_modules/.pnpm/@pierre+diffs@1.
|
|
580
|
+
// node_modules/.pnpm/@pierre+diffs@1.5.1_@shikijs+themes@4.4.3_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@pierre/diffs/dist/highlighter/themes/areThemesAttached.js
|
|
576
581
|
function areThemesAttached(themes2) {
|
|
577
582
|
for (const theme of getThemes(themes2)) if (!AttachedThemes.has(theme)) return false;
|
|
578
583
|
return true;
|
|
@@ -807,7 +812,7 @@ var shikiThemes = createThemeCollection({ themes: Object.freeze([...LIGHT_SHIKI_
|
|
|
807
812
|
// node_modules/.pnpm/@pierre+theming@1.0.1_@pierre+theme@2.0.0_@shikijs+themes@4.4.3_react-dom@19.3.0_react@19.3.0__react@19.3.0_shiki@4.4.3/node_modules/@pierre/theming/dist/themes.js
|
|
808
813
|
var themes = createThemeCollection({ themes: [pierreThemes, shikiThemes] });
|
|
809
814
|
|
|
810
|
-
// node_modules/.pnpm/@pierre+diffs@1.
|
|
815
|
+
// node_modules/.pnpm/@pierre+diffs@1.5.1_@shikijs+themes@4.4.3_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@pierre/diffs/dist/highlighter/themes/themeResolution.js
|
|
811
816
|
function prepareThemeResolution(themeName) {
|
|
812
817
|
if (isWorkerContext()) throw new Error(`Theme "${themeName}" cannot be resolved from a worker context. Themes must be pre-resolved on the main thread and passed to the worker via the resolvedLanguages parameter.`);
|
|
813
818
|
if (themeResolver.hasRegisteredTheme(themeName)) return;
|
|
@@ -822,7 +827,7 @@ function validateResolvedThemeName(themeName, theme) {
|
|
|
822
827
|
if (theme.name !== themeName) throw new Error(`resolvedTheme: themeName: ${themeName} does not match theme.name: ${theme.name}`);
|
|
823
828
|
}
|
|
824
829
|
|
|
825
|
-
// node_modules/.pnpm/@pierre+diffs@1.
|
|
830
|
+
// node_modules/.pnpm/@pierre+diffs@1.5.1_@shikijs+themes@4.4.3_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@pierre/diffs/dist/highlighter/themes/resolveTheme.js
|
|
826
831
|
async function resolveTheme(themeName) {
|
|
827
832
|
prepareThemeResolution(themeName);
|
|
828
833
|
const theme = await themeResolver.resolveTheme(themeName);
|
|
@@ -830,12 +835,12 @@ async function resolveTheme(themeName) {
|
|
|
830
835
|
return theme;
|
|
831
836
|
}
|
|
832
837
|
|
|
833
|
-
// node_modules/.pnpm/@pierre+diffs@1.
|
|
838
|
+
// node_modules/.pnpm/@pierre+diffs@1.5.1_@shikijs+themes@4.4.3_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@pierre/diffs/dist/highlighter/themes/getResolvedOrResolveTheme.js
|
|
834
839
|
function getResolvedOrResolveTheme(themeName) {
|
|
835
840
|
return themeResolver.getResolvedTheme(themeName) ?? resolveTheme(themeName);
|
|
836
841
|
}
|
|
837
842
|
|
|
838
|
-
// node_modules/.pnpm/@pierre+diffs@1.
|
|
843
|
+
// node_modules/.pnpm/@pierre+diffs@1.5.1_@shikijs+themes@4.4.3_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@pierre/diffs/dist/highlighter/shared_highlighter.js
|
|
839
844
|
var highlighter;
|
|
840
845
|
async function getSharedHighlighter({ themes: themes2, langs, preferredHighlighter = "shiki-js" }) {
|
|
841
846
|
highlighter ??= createHighlighter({
|
|
@@ -875,13 +880,13 @@ function isHighlighterLoading(h = highlighter) {
|
|
|
875
880
|
}
|
|
876
881
|
for (const descriptor of pierreThemes.getThemes()) themeResolver.registerThemeIfAbsent(descriptor.name, descriptor.load);
|
|
877
882
|
|
|
878
|
-
// node_modules/.pnpm/@pierre+diffs@1.
|
|
883
|
+
// node_modules/.pnpm/@pierre+diffs@1.5.1_@shikijs+themes@4.4.3_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@pierre/diffs/dist/utils/areThemesEqual.js
|
|
879
884
|
function areThemesEqual(themeA, themeB) {
|
|
880
885
|
if (themeA == null || themeB == null || typeof themeA === "string" || typeof themeB === "string") return themeA === themeB;
|
|
881
886
|
return themeA.dark === themeB.dark && themeA.light === themeB.light;
|
|
882
887
|
}
|
|
883
888
|
|
|
884
|
-
// node_modules/.pnpm/@pierre+diffs@1.
|
|
889
|
+
// node_modules/.pnpm/@pierre+diffs@1.5.1_@shikijs+themes@4.4.3_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@pierre/diffs/dist/utils/getFiletypeFromFileName.js
|
|
885
890
|
var CUSTOM_EXTENSION_TO_FILE_FORMAT = /* @__PURE__ */ new Map();
|
|
886
891
|
var EXTENSION_TO_FILE_FORMAT = {
|
|
887
892
|
"1c": "1c",
|
|
@@ -1243,12 +1248,12 @@ function getFiletypeFromFileName(fileName) {
|
|
|
1243
1248
|
return EXTENSION_TO_FILE_FORMAT[simpleMatch] ?? "text";
|
|
1244
1249
|
}
|
|
1245
1250
|
|
|
1246
|
-
// node_modules/.pnpm/@pierre+diffs@1.
|
|
1251
|
+
// node_modules/.pnpm/@pierre+diffs@1.5.1_@shikijs+themes@4.4.3_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@pierre/diffs/dist/utils/appendItems.js
|
|
1247
1252
|
function appendItems(target, items) {
|
|
1248
1253
|
for (const item of items) target.push(item);
|
|
1249
1254
|
}
|
|
1250
1255
|
|
|
1251
|
-
// node_modules/.pnpm/@pierre+diffs@1.
|
|
1256
|
+
// node_modules/.pnpm/@pierre+diffs@1.5.1_@shikijs+themes@4.4.3_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@pierre/diffs/dist/utils/hast_utils.js
|
|
1252
1257
|
function createTextNodeElement(value) {
|
|
1253
1258
|
return {
|
|
1254
1259
|
type: "text",
|
|
@@ -1321,7 +1326,7 @@ function createGutterGap(type, bufferType, size) {
|
|
|
1321
1326
|
});
|
|
1322
1327
|
}
|
|
1323
1328
|
|
|
1324
|
-
// node_modules/.pnpm/@pierre+diffs@1.
|
|
1329
|
+
// node_modules/.pnpm/@pierre+diffs@1.5.1_@shikijs+themes@4.4.3_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@pierre/diffs/dist/utils/processLine.js
|
|
1325
1330
|
function processLine(node, line, state) {
|
|
1326
1331
|
const lineInfo = typeof state.lineInfo === "function" ? state.lineInfo(line) : state.lineInfo[line - 1];
|
|
1327
1332
|
if (lineInfo == null) {
|
|
@@ -1342,7 +1347,7 @@ function processLine(node, line, state) {
|
|
|
1342
1347
|
return node;
|
|
1343
1348
|
}
|
|
1344
1349
|
|
|
1345
|
-
// node_modules/.pnpm/@pierre+diffs@1.
|
|
1350
|
+
// node_modules/.pnpm/@pierre+diffs@1.5.1_@shikijs+themes@4.4.3_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@pierre/diffs/dist/utils/wrapTokenFragments.js
|
|
1346
1351
|
var NO_TOKEN = /* @__PURE__ */ Symbol("no-token");
|
|
1347
1352
|
var MULTIPLE_TOKENS = /* @__PURE__ */ Symbol("multiple-tokens");
|
|
1348
1353
|
function wrapTokenFragments(container) {
|
|
@@ -1479,7 +1484,7 @@ function cyrb53(str, seed = 0) {
|
|
|
1479
1484
|
return (4294967296 * (2097151 & h2) + (h1 >>> 0)).toString(36).slice(0, 6);
|
|
1480
1485
|
}
|
|
1481
1486
|
|
|
1482
|
-
// node_modules/.pnpm/@pierre+diffs@1.
|
|
1487
|
+
// node_modules/.pnpm/@pierre+diffs@1.5.1_@shikijs+themes@4.4.3_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@pierre/diffs/dist/utils/createTransformerWithState.js
|
|
1483
1488
|
function createTransformerWithState(useTokenTransformer = false, useCSSClasses = false) {
|
|
1484
1489
|
const state = { lineInfo: [] };
|
|
1485
1490
|
const transformers = [{
|
|
@@ -1561,7 +1566,7 @@ var tokenStyleNormalizer = {
|
|
|
1561
1566
|
}
|
|
1562
1567
|
};
|
|
1563
1568
|
|
|
1564
|
-
// node_modules/.pnpm/@pierre+diffs@1.
|
|
1569
|
+
// node_modules/.pnpm/@pierre+diffs@1.5.1_@shikijs+themes@4.4.3_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@pierre/diffs/dist/utils/formatCSSVariablePrefix.js
|
|
1565
1570
|
function formatCSSVariablePrefix(type) {
|
|
1566
1571
|
return `--${type === "token" ? "diffs-token" : "diffs"}-`;
|
|
1567
1572
|
}
|
|
@@ -1672,7 +1677,7 @@ function matchesSurface(color, surface) {
|
|
|
1672
1677
|
return surface != null && color.toLowerCase() === surface.toLowerCase();
|
|
1673
1678
|
}
|
|
1674
1679
|
|
|
1675
|
-
// node_modules/.pnpm/@pierre+diffs@1.
|
|
1680
|
+
// node_modules/.pnpm/@pierre+diffs@1.5.1_@shikijs+themes@4.4.3_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@pierre/diffs/dist/utils/getHighlighterThemeStyles.js
|
|
1676
1681
|
function getHighlighterThemeStyles({ theme = DEFAULT_THEMES, highlighter: highlighter2, prefix }) {
|
|
1677
1682
|
let styles = "";
|
|
1678
1683
|
if (typeof theme === "string") {
|
|
@@ -1709,7 +1714,7 @@ function getGitVariables(themeData, modePrefix) {
|
|
|
1709
1714
|
return styles;
|
|
1710
1715
|
}
|
|
1711
1716
|
|
|
1712
|
-
// node_modules/.pnpm/@pierre+diffs@1.
|
|
1717
|
+
// node_modules/.pnpm/@pierre+diffs@1.5.1_@shikijs+themes@4.4.3_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@pierre/diffs/dist/utils/getLineNodes.js
|
|
1713
1718
|
function getLineNodes(nodes) {
|
|
1714
1719
|
let firstChild = nodes.children[0];
|
|
1715
1720
|
while (firstChild != null) {
|
|
@@ -1721,29 +1726,29 @@ function getLineNodes(nodes) {
|
|
|
1721
1726
|
throw new Error("getLineNodes: Unable to find children");
|
|
1722
1727
|
}
|
|
1723
1728
|
|
|
1724
|
-
// node_modules/.pnpm/@pierre+diffs@1.
|
|
1729
|
+
// node_modules/.pnpm/@pierre+diffs@1.5.1_@shikijs+themes@4.4.3_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@pierre/diffs/dist/utils/areDiffTargetsEqual.js
|
|
1725
1730
|
function areDiffTargetsEqual(diffA, diffB) {
|
|
1726
1731
|
return diffA?.cacheKey != null || diffB?.cacheKey != null ? diffA?.cacheKey === diffB?.cacheKey : diffA === diffB;
|
|
1727
1732
|
}
|
|
1728
1733
|
|
|
1729
|
-
// node_modules/.pnpm/@pierre+diffs@1.
|
|
1734
|
+
// node_modules/.pnpm/@pierre+diffs@1.5.1_@shikijs+themes@4.4.3_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@pierre/diffs/dist/utils/areFilesEqual.js
|
|
1730
1735
|
function areFilesEqual(fileA, fileB) {
|
|
1731
1736
|
return fileA?.cacheKey === fileB?.cacheKey && fileA?.contents === fileB?.contents && fileA?.name === fileB?.name && fileA?.lang === fileB?.lang;
|
|
1732
1737
|
}
|
|
1733
1738
|
|
|
1734
|
-
// node_modules/.pnpm/@pierre+diffs@1.
|
|
1739
|
+
// node_modules/.pnpm/@pierre+diffs@1.5.1_@shikijs+themes@4.4.3_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@pierre/diffs/dist/utils/areDiffRenderOptionsEqual.js
|
|
1735
1740
|
function areDiffRenderOptionsEqual(optionsA, optionsB) {
|
|
1736
1741
|
return areThemesEqual(optionsA.theme, optionsB.theme) && optionsA.useTokenTransformer === optionsB.useTokenTransformer && optionsA.tokenizeMaxLineLength === optionsB.tokenizeMaxLineLength && optionsA.lineDiffType === optionsB.lineDiffType && optionsA.maxLineDiffLength === optionsB.maxLineDiffLength;
|
|
1737
1742
|
}
|
|
1738
1743
|
|
|
1739
|
-
// node_modules/.pnpm/@pierre+diffs@1.
|
|
1744
|
+
// node_modules/.pnpm/@pierre+diffs@1.5.1_@shikijs+themes@4.4.3_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@pierre/diffs/dist/utils/isDiffPlainText.js
|
|
1740
1745
|
function isDiffPlainText(diff) {
|
|
1741
1746
|
const computedLang = diff.lang ?? getFiletypeFromFileName(diff.name);
|
|
1742
1747
|
const computedPreviousLang = diff.lang ?? (diff.prevName != null ? getFiletypeFromFileName(diff.prevName) : "text");
|
|
1743
1748
|
return computedLang === "text" && computedPreviousLang === "text";
|
|
1744
1749
|
}
|
|
1745
1750
|
|
|
1746
|
-
// node_modules/.pnpm/@pierre+diffs@1.
|
|
1751
|
+
// node_modules/.pnpm/@pierre+diffs@1.5.1_@shikijs+themes@4.4.3_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@pierre/diffs/dist/utils/computeVirtualFileMetrics.js
|
|
1747
1752
|
function computeVirtualFileMetrics(metrics) {
|
|
1748
1753
|
return {
|
|
1749
1754
|
...DEFAULT_VIRTUAL_FILE_METRICS,
|
|
@@ -1772,7 +1777,7 @@ function getDefaultHunkSeparatorHeight(type) {
|
|
|
1772
1777
|
}
|
|
1773
1778
|
}
|
|
1774
1779
|
|
|
1775
|
-
// node_modules/.pnpm/@pierre+diffs@1.
|
|
1780
|
+
// node_modules/.pnpm/@pierre+diffs@1.5.1_@shikijs+themes@4.4.3_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@pierre/diffs/dist/utils/virtualDiffLayout.js
|
|
1776
1781
|
function getHunkAdditionLineRange(hunk) {
|
|
1777
1782
|
return [getHunkSideStartBoundary(hunk.additionStart, hunk.additionCount) + 1, getHunkSideEndBoundary(hunk.additionStart, hunk.additionCount) + 1];
|
|
1778
1783
|
}
|
|
@@ -1982,7 +1987,7 @@ function getTrailingHunkSeparatorLayout({ type, metrics }) {
|
|
|
1982
1987
|
};
|
|
1983
1988
|
}
|
|
1984
1989
|
|
|
1985
|
-
// node_modules/.pnpm/@pierre+diffs@1.
|
|
1990
|
+
// node_modules/.pnpm/@pierre+diffs@1.5.1_@shikijs+themes@4.4.3_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@pierre/diffs/dist/utils/iterateOverDiff.js
|
|
1986
1991
|
function iterateOverDiff({ diff, diffStyle, startingLine = 0, totalLines = Infinity, expandedHunks, collapsedContextThreshold = 1, callback }) {
|
|
1987
1992
|
const iterationStart = getIterationStartState({
|
|
1988
1993
|
diff,
|
|
@@ -2033,9 +2038,11 @@ function iterateOverDiff({ diff, diffStyle, startingLine = 0, totalLines = Infin
|
|
|
2033
2038
|
return !state.isWindowedHighlight || state.splitCount >= startingLine - splitHeight && state.splitCount < startingLine + totalLines;
|
|
2034
2039
|
},
|
|
2035
2040
|
emit(props, silent = false) {
|
|
2036
|
-
if (!silent)
|
|
2037
|
-
|
|
2038
|
-
|
|
2041
|
+
if (!silent) {
|
|
2042
|
+
if (diffStyle === "unified") state.incrementCounts(1, 0);
|
|
2043
|
+
else if (diffStyle === "split") state.incrementCounts(0, 1);
|
|
2044
|
+
else state.incrementCounts(1, 1);
|
|
2045
|
+
}
|
|
2039
2046
|
return callback(props) ?? false;
|
|
2040
2047
|
}
|
|
2041
2048
|
};
|
|
@@ -2468,7 +2475,7 @@ function getChangeLineData({ hunkIndex, hunk, collapsedAfter, collapsedBefore, d
|
|
|
2468
2475
|
};
|
|
2469
2476
|
}
|
|
2470
2477
|
|
|
2471
|
-
// node_modules/.pnpm/@pierre+diffs@1.
|
|
2478
|
+
// node_modules/.pnpm/@pierre+diffs@1.5.1_@shikijs+themes@4.4.3_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@pierre/diffs/dist/utils/cleanLastNewline.js
|
|
2472
2479
|
function cleanLastNewline(contents) {
|
|
2473
2480
|
let end = contents.length;
|
|
2474
2481
|
if (contents.charCodeAt(end - 1) === 10) {
|
|
@@ -3260,7 +3267,7 @@ function splitLines(text) {
|
|
|
3260
3267
|
return result;
|
|
3261
3268
|
}
|
|
3262
3269
|
|
|
3263
|
-
// node_modules/.pnpm/@pierre+diffs@1.
|
|
3270
|
+
// node_modules/.pnpm/@pierre+diffs@1.5.1_@shikijs+themes@4.4.3_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@pierre/diffs/dist/utils/parseDiffDecorations.js
|
|
3264
3271
|
function createDiffSpanDecoration({ line, spanStart, spanLength }) {
|
|
3265
3272
|
return {
|
|
3266
3273
|
start: {
|
|
@@ -3289,7 +3296,7 @@ function pushOrJoinSpan({ item, arr, enableJoin, isNeutral = false, isLastItem =
|
|
|
3289
3296
|
arr.push([isNeutral ? 0 : 1, item.value]);
|
|
3290
3297
|
}
|
|
3291
3298
|
|
|
3292
|
-
// node_modules/.pnpm/@pierre+diffs@1.
|
|
3299
|
+
// node_modules/.pnpm/@pierre+diffs@1.5.1_@shikijs+themes@4.4.3_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@pierre/diffs/dist/utils/renderDiffWithHighlighter.js
|
|
3293
3300
|
var DEFAULT_PLAIN_TEXT_OPTIONS = { forcePlainText: false };
|
|
3294
3301
|
function renderDiffWithHighlighter(diff, highlighter2, options, { forcePlainText, startingLine, totalLines, expandedHunks, collapsedContextThreshold = 1 } = DEFAULT_PLAIN_TEXT_OPTIONS) {
|
|
3295
3302
|
if (forcePlainText) {
|
|
@@ -3412,12 +3419,51 @@ function renderDiffWithHighlighter(diff, highlighter2, options, { forcePlainText
|
|
|
3412
3419
|
baseThemeType
|
|
3413
3420
|
};
|
|
3414
3421
|
}
|
|
3422
|
+
function pushWordLineDecorations(lineDiff2, { deletionLineIndex, additionLineIndex, deletionDecorations, additionDecorations }) {
|
|
3423
|
+
let deletionOffset = 0;
|
|
3424
|
+
let additionOffset = 0;
|
|
3425
|
+
let deletionStart = -1;
|
|
3426
|
+
let deletionEnd = 0;
|
|
3427
|
+
let additionStart = -1;
|
|
3428
|
+
let additionEnd = 0;
|
|
3429
|
+
for (const { value, added, removed } of lineDiff2) if (removed) {
|
|
3430
|
+
if (deletionStart === -1) deletionStart = deletionOffset;
|
|
3431
|
+
deletionOffset += value.length;
|
|
3432
|
+
deletionEnd = deletionOffset;
|
|
3433
|
+
} else if (added) {
|
|
3434
|
+
if (additionStart === -1) additionStart = additionOffset;
|
|
3435
|
+
additionOffset += value.length;
|
|
3436
|
+
additionEnd = additionOffset;
|
|
3437
|
+
} else {
|
|
3438
|
+
deletionOffset += value.length;
|
|
3439
|
+
additionOffset += value.length;
|
|
3440
|
+
}
|
|
3441
|
+
if (deletionStart !== -1) deletionDecorations.push(createDiffSpanDecoration({
|
|
3442
|
+
line: deletionLineIndex,
|
|
3443
|
+
spanStart: deletionStart,
|
|
3444
|
+
spanLength: deletionEnd - deletionStart
|
|
3445
|
+
}));
|
|
3446
|
+
if (additionStart !== -1) additionDecorations.push(createDiffSpanDecoration({
|
|
3447
|
+
line: additionLineIndex,
|
|
3448
|
+
spanStart: additionStart,
|
|
3449
|
+
spanLength: additionEnd - additionStart
|
|
3450
|
+
}));
|
|
3451
|
+
}
|
|
3415
3452
|
function computeLineDiffDecorations({ deletionLine, additionLine, deletionLineIndex, additionLineIndex, deletionDecorations, additionDecorations, lineDiffType, maxLineDiffLength }) {
|
|
3416
3453
|
if (deletionLine == null || additionLine == null || lineDiffType === "none") return;
|
|
3417
3454
|
deletionLine = cleanLastNewline(deletionLine);
|
|
3418
3455
|
additionLine = cleanLastNewline(additionLine);
|
|
3419
3456
|
if (deletionLine.length > maxLineDiffLength || additionLine.length > maxLineDiffLength) return;
|
|
3420
3457
|
const lineDiff2 = lineDiffType === "char" ? diffChars(deletionLine, additionLine) : diffWordsWithSpace(deletionLine, additionLine);
|
|
3458
|
+
if (lineDiffType === "word-line") {
|
|
3459
|
+
pushWordLineDecorations(lineDiff2, {
|
|
3460
|
+
deletionLineIndex,
|
|
3461
|
+
additionLineIndex,
|
|
3462
|
+
deletionDecorations,
|
|
3463
|
+
additionDecorations
|
|
3464
|
+
});
|
|
3465
|
+
return;
|
|
3466
|
+
}
|
|
3421
3467
|
const deletionSpans = [];
|
|
3422
3468
|
const additionSpans = [];
|
|
3423
3469
|
const enableJoin = lineDiffType === "word-alt";
|
|
@@ -3540,12 +3586,12 @@ function renderTwoFiles({ deletionFile, additionFile, deletionInfo, additionInfo
|
|
|
3540
3586
|
};
|
|
3541
3587
|
}
|
|
3542
3588
|
|
|
3543
|
-
// node_modules/.pnpm/@pierre+diffs@1.
|
|
3589
|
+
// node_modules/.pnpm/@pierre+diffs@1.5.1_@shikijs+themes@4.4.3_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@pierre/diffs/dist/react/WorkerPoolContext.js
|
|
3544
3590
|
import { createContext as createContext2, useContext as useContext2, useEffect, useInsertionEffect as useInsertionEffect2, useState } from "react";
|
|
3545
3591
|
import { jsx as jsx3 } from "react/jsx-runtime";
|
|
3546
3592
|
var WorkerPoolContext = createContext2(void 0);
|
|
3547
3593
|
|
|
3548
|
-
// node_modules/.pnpm/@pierre+diffs@1.
|
|
3594
|
+
// node_modules/.pnpm/@pierre+diffs@1.5.1_@shikijs+themes@4.4.3_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@pierre/diffs/dist/utils/areObjectsEqual.js
|
|
3549
3595
|
function areObjectsEqual(objA, objB, omitKeys) {
|
|
3550
3596
|
if (objA === objB || objA == null || objB == null) return objA === objB;
|
|
3551
3597
|
const omitSet = new Set(omitKeys);
|
|
@@ -3560,7 +3606,7 @@ function areObjectsEqual(objA, objB, omitKeys) {
|
|
|
3560
3606
|
return true;
|
|
3561
3607
|
}
|
|
3562
3608
|
|
|
3563
|
-
// node_modules/.pnpm/@pierre+diffs@1.
|
|
3609
|
+
// node_modules/.pnpm/@pierre+diffs@1.5.1_@shikijs+themes@4.4.3_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@pierre/diffs/dist/utils/areOptionsEqual.js
|
|
3564
3610
|
function areOptionsEqual(optionsA, optionsB) {
|
|
3565
3611
|
const themeA = optionsA?.theme ?? DEFAULT_THEMES;
|
|
3566
3612
|
const themeB = optionsB?.theme ?? DEFAULT_THEMES;
|
|
@@ -3572,7 +3618,7 @@ function getParseDiffOptions(options) {
|
|
|
3572
3618
|
if (options != null && "parseDiffOptions" in options) return options.parseDiffOptions;
|
|
3573
3619
|
}
|
|
3574
3620
|
|
|
3575
|
-
// node_modules/.pnpm/@pierre+diffs@1.
|
|
3621
|
+
// node_modules/.pnpm/@pierre+diffs@1.5.1_@shikijs+themes@4.4.3_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@pierre/diffs/dist/managers/UniversalRenderingManager.js
|
|
3576
3622
|
var callbacks = /* @__PURE__ */ new Set();
|
|
3577
3623
|
var frameId = null;
|
|
3578
3624
|
function queueRender(callback) {
|
|
@@ -3597,24 +3643,24 @@ function render(time) {
|
|
|
3597
3643
|
else frameId = null;
|
|
3598
3644
|
}
|
|
3599
3645
|
|
|
3600
|
-
// node_modules/.pnpm/@pierre+diffs@1.
|
|
3646
|
+
// node_modules/.pnpm/@pierre+diffs@1.5.1_@shikijs+themes@4.4.3_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@pierre/diffs/dist/utils/areSelectionsEqual.js
|
|
3601
3647
|
function areSelectionsEqual(selectionA, selectionB) {
|
|
3602
3648
|
return selectionA?.start === selectionB?.start && selectionA?.end === selectionB?.end && selectionA?.side === selectionB?.side && selectionA?.endSide === selectionB?.endSide;
|
|
3603
3649
|
}
|
|
3604
3650
|
|
|
3605
|
-
// node_modules/.pnpm/@pierre+diffs@1.
|
|
3651
|
+
// node_modules/.pnpm/@pierre+diffs@1.5.1_@shikijs+themes@4.4.3_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@pierre/diffs/dist/utils/isStyleNode.js
|
|
3606
3652
|
function isStyleNode(element) {
|
|
3607
3653
|
if (typeof HTMLStyleElement !== "undefined" && element instanceof HTMLStyleElement) return true;
|
|
3608
3654
|
const tagName = element.tagName ?? element.nodeName;
|
|
3609
3655
|
return typeof tagName === "string" && tagName.toLowerCase() === "style";
|
|
3610
3656
|
}
|
|
3611
3657
|
|
|
3612
|
-
// node_modules/.pnpm/@pierre+diffs@1.
|
|
3658
|
+
// node_modules/.pnpm/@pierre+diffs@1.5.1_@shikijs+themes@4.4.3_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@pierre/diffs/dist/utils/areFileTargetsEqual.js
|
|
3613
3659
|
function areFileTargetsEqual(fileA, fileB) {
|
|
3614
3660
|
return fileA?.cacheKey != null || fileB?.cacheKey != null ? fileA?.cacheKey === fileB?.cacheKey : fileA?.contents === fileB?.contents && fileA?.name === fileB?.name && fileA?.lang === fileB?.lang;
|
|
3615
3661
|
}
|
|
3616
3662
|
|
|
3617
|
-
// node_modules/.pnpm/@pierre+diffs@1.
|
|
3663
|
+
// node_modules/.pnpm/@pierre+diffs@1.5.1_@shikijs+themes@4.4.3_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@pierre/diffs/dist/utils/includesFileAnnotations.js
|
|
3618
3664
|
var FILE_ANNOTATION_DOM_KEY = `-1,-1`;
|
|
3619
3665
|
function includesFileAnnotations(annotations) {
|
|
3620
3666
|
return annotations?.some((annotation) => annotation.lineNumber === 0) ?? false;
|
|
@@ -3627,12 +3673,12 @@ function shouldRenderFileAnnotations(renderRange) {
|
|
|
3627
3673
|
return renderRange.startingLine === 0 && renderRange.totalLines > 0;
|
|
3628
3674
|
}
|
|
3629
3675
|
|
|
3630
|
-
// node_modules/.pnpm/@pierre+diffs@1.
|
|
3676
|
+
// node_modules/.pnpm/@pierre+diffs@1.5.1_@shikijs+themes@4.4.3_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@pierre/diffs/dist/utils/areSelectionPointsEqual.js
|
|
3631
3677
|
function areSelectionPointsEqual(a, b) {
|
|
3632
3678
|
return a.lineNumber === b.lineNumber && a.side === b.side;
|
|
3633
3679
|
}
|
|
3634
3680
|
|
|
3635
|
-
// node_modules/.pnpm/@pierre+diffs@1.
|
|
3681
|
+
// node_modules/.pnpm/@pierre+diffs@1.5.1_@shikijs+themes@4.4.3_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@pierre/diffs/dist/utils/createGutterUtilityElement.js
|
|
3636
3682
|
function createGutterUtilityElement() {
|
|
3637
3683
|
return createHastElement({
|
|
3638
3684
|
tagName: "button",
|
|
@@ -3647,7 +3693,7 @@ function createGutterUtilityElement() {
|
|
|
3647
3693
|
});
|
|
3648
3694
|
}
|
|
3649
3695
|
|
|
3650
|
-
// node_modules/.pnpm/@pierre+diffs@1.
|
|
3696
|
+
// node_modules/.pnpm/@pierre+diffs@1.5.1_@shikijs+themes@4.4.3_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@pierre/diffs/dist/utils/isGutterUtilityPath.js
|
|
3651
3697
|
function isGutterUtilityPath(path) {
|
|
3652
3698
|
for (const element of path) {
|
|
3653
3699
|
if (!(element instanceof HTMLElement)) continue;
|
|
@@ -3656,7 +3702,7 @@ function isGutterUtilityPath(path) {
|
|
|
3656
3702
|
return false;
|
|
3657
3703
|
}
|
|
3658
3704
|
|
|
3659
|
-
// node_modules/.pnpm/@pierre+diffs@1.
|
|
3705
|
+
// node_modules/.pnpm/@pierre+diffs@1.5.1_@shikijs+themes@4.4.3_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@pierre/diffs/dist/managers/InteractionManager.js
|
|
3660
3706
|
var InteractionManager = class {
|
|
3661
3707
|
mode;
|
|
3662
3708
|
options;
|
|
@@ -4862,12 +4908,11 @@ function debugLogIfEnabled(debugLogType = "none", logIfType, ...args) {
|
|
|
4862
4908
|
break;
|
|
4863
4909
|
case "move":
|
|
4864
4910
|
if (logIfType !== "move") return;
|
|
4865
|
-
break;
|
|
4866
4911
|
}
|
|
4867
4912
|
console.log(...args);
|
|
4868
4913
|
}
|
|
4869
4914
|
|
|
4870
|
-
// node_modules/.pnpm/@pierre+diffs@1.
|
|
4915
|
+
// node_modules/.pnpm/@pierre+diffs@1.5.1_@shikijs+themes@4.4.3_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@pierre/diffs/dist/managers/ResizeManager.js
|
|
4871
4916
|
var ResizeManager = class ResizeManager2 {
|
|
4872
4917
|
static resizeObserver;
|
|
4873
4918
|
static managersByElement = /* @__PURE__ */ new Map();
|
|
@@ -5147,13 +5192,13 @@ function cleanupStaleAnnotationItem(item) {
|
|
|
5147
5192
|
if (item.column2.container.isConnected) item.column2.container.style.removeProperty("--diffs-annotation-min-height");
|
|
5148
5193
|
}
|
|
5149
5194
|
|
|
5150
|
-
// node_modules/.pnpm/@pierre+diffs@1.
|
|
5195
|
+
// node_modules/.pnpm/@pierre+diffs@1.5.1_@shikijs+themes@4.4.3_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@pierre/diffs/dist/utils/areRenderRangesEqual.js
|
|
5151
5196
|
function areRenderRangesEqual(renderRangeA, renderRangeB) {
|
|
5152
5197
|
if (renderRangeA == null || renderRangeB == null) return renderRangeA === renderRangeB;
|
|
5153
5198
|
return renderRangeA.startingLine === renderRangeB.startingLine && renderRangeA.totalLines === renderRangeB.totalLines && renderRangeA.bufferBefore === renderRangeB.bufferBefore && renderRangeA.bufferAfter === renderRangeB.bufferAfter;
|
|
5154
5199
|
}
|
|
5155
5200
|
|
|
5156
|
-
// node_modules/.pnpm/@pierre+diffs@1.
|
|
5201
|
+
// node_modules/.pnpm/@pierre+diffs@1.5.1_@shikijs+themes@4.4.3_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@pierre/diffs/dist/utils/applyLineTextWithNewline.js
|
|
5157
5202
|
function applyLineTextWithNewline(line, lineText) {
|
|
5158
5203
|
if (line.endsWith("\r\n")) return lineText + "\r\n";
|
|
5159
5204
|
if (line.endsWith("\r")) return lineText + "\r";
|
|
@@ -5161,7 +5206,7 @@ function applyLineTextWithNewline(line, lineText) {
|
|
|
5161
5206
|
return lineText;
|
|
5162
5207
|
}
|
|
5163
5208
|
|
|
5164
|
-
// node_modules/.pnpm/@pierre+diffs@1.
|
|
5209
|
+
// node_modules/.pnpm/@pierre+diffs@1.5.1_@shikijs+themes@4.4.3_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@pierre/diffs/dist/utils/createAnnotationElement.js
|
|
5165
5210
|
function createAnnotationElement(span) {
|
|
5166
5211
|
return createHastElement({
|
|
5167
5212
|
tagName: "div",
|
|
@@ -5177,7 +5222,7 @@ function createAnnotationElement(span) {
|
|
|
5177
5222
|
});
|
|
5178
5223
|
}
|
|
5179
5224
|
|
|
5180
|
-
// node_modules/.pnpm/@pierre+diffs@1.
|
|
5225
|
+
// node_modules/.pnpm/@pierre+diffs@1.5.1_@shikijs+themes@4.4.3_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@pierre/diffs/dist/utils/createContentColumn.js
|
|
5181
5226
|
function createContentColumn(children, rowCount) {
|
|
5182
5227
|
return createHastElement({
|
|
5183
5228
|
tagName: "div",
|
|
@@ -5189,7 +5234,7 @@ function createContentColumn(children, rowCount) {
|
|
|
5189
5234
|
});
|
|
5190
5235
|
}
|
|
5191
5236
|
|
|
5192
|
-
// node_modules/.pnpm/@pierre+diffs@1.
|
|
5237
|
+
// node_modules/.pnpm/@pierre+diffs@1.5.1_@shikijs+themes@4.4.3_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@pierre/diffs/dist/utils/getIconForType.js
|
|
5193
5238
|
function getIconForType(type) {
|
|
5194
5239
|
switch (type) {
|
|
5195
5240
|
case "file":
|
|
@@ -5206,7 +5251,7 @@ function getIconForType(type) {
|
|
|
5206
5251
|
}
|
|
5207
5252
|
}
|
|
5208
5253
|
|
|
5209
|
-
// node_modules/.pnpm/@pierre+diffs@1.
|
|
5254
|
+
// node_modules/.pnpm/@pierre+diffs@1.5.1_@shikijs+themes@4.4.3_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@pierre/diffs/dist/utils/createFileHeaderElement.js
|
|
5210
5255
|
function createFileHeaderElement({ fileOrDiff, mode, stickyHeader }) {
|
|
5211
5256
|
const fileDiff = "type" in fileOrDiff ? fileOrDiff : void 0;
|
|
5212
5257
|
const properties = {
|
|
@@ -5298,7 +5343,7 @@ function createMetadataElement(fileDiff) {
|
|
|
5298
5343
|
});
|
|
5299
5344
|
}
|
|
5300
5345
|
|
|
5301
|
-
// node_modules/.pnpm/@pierre+diffs@1.
|
|
5346
|
+
// node_modules/.pnpm/@pierre+diffs@1.5.1_@shikijs+themes@4.4.3_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@pierre/diffs/dist/utils/createPreElement.js
|
|
5302
5347
|
function createPreElement(options) {
|
|
5303
5348
|
return createHastElement({
|
|
5304
5349
|
tagName: "pre",
|
|
@@ -5319,21 +5364,21 @@ function createPreWrapperProperties({ diffIndicators, disableBackground, disable
|
|
|
5319
5364
|
};
|
|
5320
5365
|
}
|
|
5321
5366
|
|
|
5322
|
-
// node_modules/.pnpm/@pierre+diffs@1.
|
|
5367
|
+
// node_modules/.pnpm/@pierre+diffs@1.5.1_@shikijs+themes@4.4.3_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@pierre/diffs/dist/utils/getHighlighterOptions.js
|
|
5323
5368
|
function getHighlighterOptions(lang, { theme, preferredHighlighter = "shiki-js" }) {
|
|
5324
5369
|
return {
|
|
5325
|
-
langs: [lang ?? "text"],
|
|
5370
|
+
langs: Array.isArray(lang) ? lang : [lang ?? "text"],
|
|
5326
5371
|
themes: getThemes(theme),
|
|
5327
5372
|
preferredHighlighter
|
|
5328
5373
|
};
|
|
5329
5374
|
}
|
|
5330
5375
|
|
|
5331
|
-
// node_modules/.pnpm/@pierre+diffs@1.
|
|
5376
|
+
// node_modules/.pnpm/@pierre+diffs@1.5.1_@shikijs+themes@4.4.3_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@pierre/diffs/dist/utils/isDefaultRenderRange.js
|
|
5332
5377
|
function isDefaultRenderRange(renderRange) {
|
|
5333
5378
|
return renderRange.startingLine === 0 && renderRange.totalLines === Infinity && renderRange.bufferBefore === 0 && renderRange.bufferAfter === 0;
|
|
5334
5379
|
}
|
|
5335
5380
|
|
|
5336
|
-
// node_modules/.pnpm/@pierre+diffs@1.
|
|
5381
|
+
// node_modules/.pnpm/@pierre+diffs@1.5.1_@shikijs+themes@4.4.3_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@pierre/diffs/dist/sprite.js
|
|
5337
5382
|
var SVGSpriteSheet = `<svg data-icon-sprite aria-hidden="true" width="0" height="0">
|
|
5338
5383
|
<symbol id="diffs-icon-arrow-right-short" viewBox="0 0 16 16">
|
|
5339
5384
|
<path d="M8.47 4.22a.75.75 0 0 0 0 1.06l1.97 1.97H3.75a.75.75 0 0 0 0 1.5h6.69l-1.97 1.97a.75.75 0 1 0 1.06 1.06l3.25-3.25a.75.75 0 0 0 0-1.06L9.53 4.22a.75.75 0 0 0-1.06 0"/>
|
|
@@ -5359,6 +5404,9 @@ var SVGSpriteSheet = `<svg data-icon-sprite aria-hidden="true" width="0" height=
|
|
|
5359
5404
|
<symbol id="diffs-icon-expand-all" viewBox="0 0 16 16">
|
|
5360
5405
|
<path d="M11.47 9.47a.75.75 0 1 1 1.06 1.06l-4 4a.75.75 0 0 1-1.06 0l-4-4a.75.75 0 1 1 1.06-1.06L8 12.94zM7.526 1.418a.75.75 0 0 1 1.004.052l4 4a.75.75 0 1 1-1.06 1.06L8 3.06 4.53 6.53a.75.75 0 1 1-1.06-1.06l4-4z"/>
|
|
5361
5406
|
</symbol>
|
|
5407
|
+
<symbol id="diffs-icon-eye-slash" viewBox="0 0 16 16">
|
|
5408
|
+
<path d="m13.47 1.47-12 12 1.06 1.06 12-12zM8 14c-.92 0-1.802-.208-2.624-.547l1.173-1.174c.476.142.963.221 1.451.221 1.66 0 3.307-.949 4.626-2.196a10.4 10.4 0 0 0 1.494-1.751A5 5 0 0 0 14.443 8a5 5 0 0 0-.323-.553 10 10 0 0 0-1.238-1.5l1.061-1.062C15.222 6.173 16 7.511 16 8c0 1.05-3.582 6-8 6"/><path d="M8 11q-.084 0-.167-.005l3.162-3.162q.006.083.005.167a3 3 0 0 1-3 3M5.005 8.167l3.162-3.162a3 3 0 0 0-3.162 3.162"/><path d="M8 3.5c.485 0 .97.081 1.445.227l1.168-1.169C9.794 2.212 8.915 2 8 2 3.582 2 0 6.8 0 8c0 .555.766 1.88 2.027 3.144l1.06-1.06a9.5 9.5 0 0 1-1.203-1.461 4.3 4.3 0 0 1-.345-.617L1.536 8l.003-.006c.064-.149.176-.359.345-.617a9.8 9.8 0 0 1 1.482-1.73C4.675 4.427 6.326 3.5 8 3.5"/>
|
|
5409
|
+
</symbol>
|
|
5362
5410
|
<symbol id="diffs-icon-file-code" viewBox="0 0 16 16">
|
|
5363
5411
|
<path d="M10.75 0c.199 0 .39.08.53.22l3.5 3.5c.14.14.22.331.22.53v9A2.75 2.75 0 0 1 12.25 16h-8.5A2.75 2.75 0 0 1 1 13.25V2.75A2.75 2.75 0 0 1 3.75 0zm-7 1.5c-.69 0-1.25.56-1.25 1.25v10.5c0 .69.56 1.25 1.25 1.25h8.5c.69 0 1.25-.56 1.25-1.25V5h-1.25A2.25 2.25 0 0 1 10 2.75V1.5z"/><path d="M7.248 6.19a.75.75 0 0 1 .063 1.058L5.753 9l1.558 1.752a.75.75 0 0 1-1.122.996l-2-2.25a.75.75 0 0 1 0-.996l2-2.25a.75.75 0 0 1 1.06-.063M8.69 7.248a.75.75 0 1 1 1.12-.996l2 2.25a.75.75 0 0 1 0 .996l-2 2.25a.75.75 0 1 1-1.12-.996L10.245 9z"/>
|
|
5364
5412
|
</symbol>
|
|
@@ -5368,27 +5416,81 @@ var SVGSpriteSheet = `<svg data-icon-sprite aria-hidden="true" width="0" height=
|
|
|
5368
5416
|
<symbol id="diffs-icon-symbol-added" viewBox="0 0 16 16">
|
|
5369
5417
|
<path d="M8 4a.75.75 0 0 1 .75.75v2.5h2.5a.75.75 0 0 1 0 1.5h-2.5v2.5a.75.75 0 0 1-1.5 0v-2.5h-2.5a.75.75 0 0 1 0-1.5h2.5v-2.5A.75.75 0 0 1 8 4"/><path d="M1.788 4.296c.196-.88.478-1.381.802-1.706s.826-.606 1.706-.802C5.194 1.588 6.387 1.5 8 1.5s2.806.088 3.704.288c.88.196 1.381.478 1.706.802s.607.826.802 1.706c.2.898.288 2.091.288 3.704s-.088 2.806-.288 3.704c-.195.88-.478 1.381-.802 1.706s-.826.607-1.706.802c-.898.2-2.091.288-3.704.288s-2.806-.088-3.704-.288c-.88-.195-1.381-.478-1.706-.802s-.606-.826-.802-1.706C1.588 10.806 1.5 9.613 1.5 8s.088-2.806.288-3.704M8 0C1.412 0 0 1.412 0 8s1.412 8 8 8 8-1.412 8-8-1.412-8-8-8"/>
|
|
5370
5418
|
</symbol>
|
|
5419
|
+
<symbol id="diffs-icon-symbol-added-duo" viewBox="0 0 16 16">
|
|
5420
|
+
<path d="M8 0C1.412 0 0 1.412 0 8s1.412 8 8 8 8-1.412 8-8-1.412-8-8-8" opacity=".2"/><path d="M8 4a.75.75 0 0 1 .75.75v2.5h2.5a.75.75 0 0 1 0 1.5h-2.5v2.5a.75.75 0 0 1-1.5 0v-2.5h-2.5a.75.75 0 0 1 0-1.5h2.5v-2.5A.75.75 0 0 1 8 4"/>
|
|
5421
|
+
</symbol>
|
|
5422
|
+
<symbol id="diffs-icon-symbol-added-fill" viewBox="0 0 16 16">
|
|
5423
|
+
<path fill-rule="evenodd" d="M8 0c6.588 0 8 1.412 8 8s-1.412 8-8 8-8-1.412-8-8 1.412-8 8-8m0 4a.75.75 0 0 0-.75.75v2.5h-2.5a.75.75 0 0 0 0 1.5h2.5v2.5a.75.75 0 0 0 1.5 0v-2.5h2.5a.75.75 0 0 0 0-1.5h-2.5v-2.5A.75.75 0 0 0 8 4" clip-rule="evenodd"/>
|
|
5424
|
+
</symbol>
|
|
5371
5425
|
<symbol id="diffs-icon-symbol-deleted" viewBox="0 0 16 16">
|
|
5372
5426
|
<path d="M4 8a.75.75 0 0 1 .75-.75h6.5a.75.75 0 0 1 0 1.5h-6.5A.75.75 0 0 1 4 8"/><path d="M1.788 4.296c.196-.88.478-1.381.802-1.706s.826-.606 1.706-.802C5.194 1.588 6.387 1.5 8 1.5s2.806.088 3.704.288c.88.196 1.381.478 1.706.802s.607.826.802 1.706c.2.898.288 2.091.288 3.704s-.088 2.806-.288 3.704c-.195.88-.478 1.381-.802 1.706s-.826.607-1.706.802c-.898.2-2.091.288-3.704.288s-2.806-.088-3.704-.288c-.88-.195-1.381-.478-1.706-.802s-.606-.826-.802-1.706C1.588 10.806 1.5 9.613 1.5 8s.088-2.806.288-3.704M8 0C1.412 0 0 1.412 0 8s1.412 8 8 8 8-1.412 8-8-1.412-8-8-8"/>
|
|
5373
5427
|
</symbol>
|
|
5428
|
+
<symbol id="diffs-icon-symbol-deleted-duo" viewBox="0 0 16 16">
|
|
5429
|
+
<path d="M8 0C1.412 0 0 1.412 0 8s1.412 8 8 8 8-1.412 8-8-1.412-8-8-8" opacity=".2"/><path d="M4 8a.75.75 0 0 1 .75-.75h6.5a.75.75 0 0 1 0 1.5h-6.5A.75.75 0 0 1 4 8"/>
|
|
5430
|
+
</symbol>
|
|
5431
|
+
<symbol id="diffs-icon-symbol-deleted-fill" viewBox="0 0 16 16">
|
|
5432
|
+
<path fill-rule="evenodd" d="M8 0c6.588 0 8 1.412 8 8s-1.412 8-8 8-8-1.412-8-8 1.412-8 8-8M4.75 7.25a.75.75 0 0 0 0 1.5h6.5a.75.75 0 0 0 0-1.5z" clip-rule="evenodd"/>
|
|
5433
|
+
</symbol>
|
|
5374
5434
|
<symbol id="diffs-icon-symbol-diffstat" viewBox="0 0 16 16">
|
|
5375
5435
|
<path d="M1.788 4.296c.196-.88.478-1.381.802-1.706s.826-.606 1.706-.802C5.194 1.588 6.387 1.5 8 1.5s2.806.088 3.704.288c.88.196 1.381.478 1.706.802s.607.826.802 1.706c.2.898.288 2.091.288 3.704s-.088 2.806-.288 3.704c-.195.88-.478 1.381-.802 1.706s-.826.607-1.706.802c-.898.2-2.091.288-3.704.288s-2.806-.088-3.704-.288c-.88-.195-1.381-.478-1.706-.802s-.606-.826-.802-1.706C1.588 10.806 1.5 9.613 1.5 8s.088-2.806.288-3.704M8 0C1.412 0 0 1.412 0 8s1.412 8 8 8 8-1.412 8-8-1.412-8-8-8"/><path d="M8.75 4.296a.75.75 0 0 0-1.5 0V6.25h-2a.75.75 0 0 0 0 1.5h2v1.5h1.5v-1.5h2a.75.75 0 0 0 0-1.5h-2zM5.25 10a.75.75 0 0 0 0 1.5h5.5a.75.75 0 0 0 0-1.5z"/>
|
|
5376
5436
|
</symbol>
|
|
5437
|
+
<symbol id="diffs-icon-symbol-diffstat-duo" viewBox="0 0 16 16">
|
|
5438
|
+
<path d="M8 0C1.412 0 0 1.412 0 8s1.412 8 8 8 8-1.412 8-8-1.412-8-8-8" opacity=".2"/><path d="M8.75 4.296a.75.75 0 0 0-1.5 0V6.25h-2a.75.75 0 0 0 0 1.5h2v1.5h1.5v-1.5h2a.75.75 0 0 0 0-1.5h-2zM5.25 10a.75.75 0 0 0 0 1.5h5.5a.75.75 0 0 0 0-1.5z"/>
|
|
5439
|
+
</symbol>
|
|
5440
|
+
<symbol id="diffs-icon-symbol-diffstat-fill" viewBox="0 0 16 16">
|
|
5441
|
+
<path fill-rule="evenodd" d="M8 0c6.588 0 8 1.412 8 8s-1.412 8-8 8-8-1.412-8-8 1.412-8 8-8M5.25 10a.75.75 0 0 0 0 1.5h5.5a.75.75 0 0 0 0-1.5zM8 3.546a.75.75 0 0 0-.75.75V6.25h-2a.75.75 0 0 0 0 1.5h2v1.5h1.5v-1.5h2a.75.75 0 0 0 0-1.5h-2V4.296a.75.75 0 0 0-.75-.75" clip-rule="evenodd"/>
|
|
5442
|
+
</symbol>
|
|
5443
|
+
<symbol id="diffs-icon-symbol-extracted" viewBox="0 0 16 16">
|
|
5444
|
+
<path d="M8.25 4.25a.75.75 0 0 1 0 1.5H6.81l3.302 3.302a1.5 1.5 0 1 1-1.06 1.06L5.75 6.811V8.25a.75.75 0 0 1-1.5 0V5A.75.75 0 0 1 5 4.25z"/><path fill-rule="evenodd" d="M8 0c6.588 0 8 1.412 8 8s-1.412 8-8 8-8-1.412-8-8 1.412-8 8-8m0 1.5c-1.613 0-2.807.089-3.704.288-.88.196-1.382.477-1.706.802-.325.324-.606.826-.802 1.706C1.588 5.193 1.5 6.387 1.5 8s.089 2.807.288 3.704c.196.88.477 1.382.802 1.706.324.325.826.606 1.706.802.897.2 2.091.288 3.704.288s2.807-.089 3.704-.288c.88-.196 1.382-.477 1.706-.802.325-.324.606-.826.802-1.706.2-.897.288-2.091.288-3.704s-.089-2.807-.288-3.704c-.196-.88-.477-1.382-.802-1.706-.324-.325-.826-.606-1.706-.802C10.807 1.588 9.613 1.5 8 1.5" clip-rule="evenodd"/>
|
|
5445
|
+
</symbol>
|
|
5446
|
+
<symbol id="diffs-icon-symbol-extracted-duo" viewBox="0 0 16 16">
|
|
5447
|
+
<path fill-rule="evenodd" d="M8 0c6.588 0 8 1.412 8 8s-1.412 8-8 8-8-1.412-8-8 1.412-8 8-8" clip-rule="evenodd" opacity=".2"/><path d="M8.25 4.25a.75.75 0 0 1 0 1.5H6.81l3.302 3.302a1.5 1.5 0 1 1-1.06 1.06L5.75 6.811V8.25a.75.75 0 0 1-1.5 0V5A.75.75 0 0 1 5 4.25z"/>
|
|
5448
|
+
</symbol>
|
|
5449
|
+
<symbol id="diffs-icon-symbol-extracted-fill" viewBox="0 0 16 16">
|
|
5450
|
+
<path fill-rule="evenodd" d="M8 0c6.588 0 8 1.412 8 8s-1.412 8-8 8-8-1.412-8-8 1.412-8 8-8M5 4.25a.75.75 0 0 0-.75.75v3.25a.75.75 0 0 0 1.5 0V6.81l3.302 3.302a1.5 1.5 0 1 0 1.06-1.06L6.811 5.75H8.25a.75.75 0 0 0 0-1.5z" clip-rule="evenodd"/>
|
|
5451
|
+
</symbol>
|
|
5377
5452
|
<symbol id="diffs-icon-symbol-ignored" viewBox="0 0 16 16">
|
|
5378
5453
|
<path d="M1.5 8c0 1.613.088 2.806.288 3.704.196.88.478 1.381.802 1.706s.826.607 1.706.802c.898.2 2.091.288 3.704.288s2.806-.088 3.704-.288c.88-.195 1.381-.478 1.706-.802s.607-.826.802-1.706c.2-.898.288-2.091.288-3.704s-.088-2.806-.288-3.704c-.195-.88-.478-1.381-.802-1.706s-.826-.606-1.706-.802C10.806 1.588 9.613 1.5 8 1.5s-2.806.088-3.704.288c-.88.196-1.381.478-1.706.802s-.606.826-.802 1.706C1.588 5.194 1.5 6.387 1.5 8M0 8c0-6.588 1.412-8 8-8s8 1.412 8 8-1.412 8-8 8-8-1.412-8-8m11.53-2.47a.75.75 0 0 0-1.06-1.06l-6 6a.75.75 0 1 0 1.06 1.06z"/>
|
|
5379
5454
|
</symbol>
|
|
5455
|
+
<symbol id="diffs-icon-symbol-ignored-duo" viewBox="0 0 16 16">
|
|
5456
|
+
<path d="M8 0C1.412 0 0 1.412 0 8s1.412 8 8 8 8-1.412 8-8-1.412-8-8-8" opacity=".2"/><path d="M11.53 4.47a.75.75 0 0 1 0 1.06l-6 6a.75.75 0 0 1-1.06-1.06l6-6a.75.75 0 0 1 1.06 0"/>
|
|
5457
|
+
</symbol>
|
|
5458
|
+
<symbol id="diffs-icon-symbol-ignored-fill" viewBox="0 0 16 16">
|
|
5459
|
+
<path fill-rule="evenodd" d="M8 0c6.588 0 8 1.412 8 8s-1.412 8-8 8-8-1.412-8-8 1.412-8 8-8m3.53 4.47a.75.75 0 0 0-1.06 0l-6 6a.75.75 0 1 0 1.06 1.06l6-6a.75.75 0 0 0 0-1.06" clip-rule="evenodd"/>
|
|
5460
|
+
</symbol>
|
|
5461
|
+
<symbol id="diffs-icon-symbol-inlined" viewBox="0 0 16 16">
|
|
5462
|
+
<path d="M7.75 11.75a.75.75 0 0 1 0-1.5h1.44L5.887 6.948a1.5 1.5 0 1 1 1.06-1.06l3.302 3.301V7.75a.75.75 0 0 1 1.5 0V11a.75.75 0 0 1-.75.75z"/><path fill-rule="evenodd" d="M8 16c-6.588 0-8-1.412-8-8s1.412-8 8-8 8 1.412 8 8-1.412 8-8 8m0-1.5c1.613 0 2.807-.089 3.704-.288.88-.196 1.382-.477 1.706-.802.325-.324.606-.826.802-1.706.2-.897.288-2.091.288-3.704s-.089-2.807-.288-3.704c-.196-.88-.477-1.382-.802-1.706-.324-.325-.826-.606-1.706-.802C10.807 1.588 9.613 1.5 8 1.5s-2.807.089-3.704.288c-.88.196-1.382.477-1.706.802-.325.324-.606.826-.802 1.706C1.588 5.193 1.5 6.387 1.5 8s.089 2.807.288 3.704c.196.88.477 1.382.802 1.706.324.325.826.606 1.706.802.897.2 2.091.288 3.704.288" clip-rule="evenodd"/>
|
|
5463
|
+
</symbol>
|
|
5464
|
+
<symbol id="diffs-icon-symbol-inlined-duo" viewBox="0 0 16 16">
|
|
5465
|
+
<path fill-rule="evenodd" d="M8 16c-6.588 0-8-1.412-8-8s1.412-8 8-8 8 1.412 8 8-1.412 8-8 8" clip-rule="evenodd" opacity=".2"/><path d="M7.75 11.75a.75.75 0 0 1 0-1.5h1.44L5.887 6.948a1.5 1.5 0 1 1 1.06-1.06l3.302 3.301V7.75a.75.75 0 0 1 1.5 0V11a.75.75 0 0 1-.75.75z"/>
|
|
5466
|
+
</symbol>
|
|
5467
|
+
<symbol id="diffs-icon-symbol-inlined-fill" viewBox="0 0 16 16">
|
|
5468
|
+
<path fill-rule="evenodd" d="M8 0c6.588 0 8 1.412 8 8s-1.412 8-8 8-8-1.412-8-8 1.412-8 8-8M5.5 4a1.5 1.5 0 1 0 .388 2.948l3.301 3.302H7.75a.75.75 0 0 0 0 1.5H11a.75.75 0 0 0 .75-.75V7.75a.75.75 0 0 0-1.5 0v1.44L6.948 5.887A1.5 1.5 0 0 0 5.5 4" clip-rule="evenodd"/>
|
|
5469
|
+
</symbol>
|
|
5380
5470
|
<symbol id="diffs-icon-symbol-modified" viewBox="0 0 16 16">
|
|
5381
5471
|
<path d="M1.5 8c0 1.613.088 2.806.288 3.704.196.88.478 1.381.802 1.706s.826.607 1.706.802c.898.2 2.091.288 3.704.288s2.806-.088 3.704-.288c.88-.195 1.381-.478 1.706-.802s.607-.826.802-1.706c.2-.898.288-2.091.288-3.704s-.088-2.806-.288-3.704c-.195-.88-.478-1.381-.802-1.706s-.826-.606-1.706-.802C10.806 1.588 9.613 1.5 8 1.5s-2.806.088-3.704.288c-.88.196-1.381.478-1.706.802s-.606.826-.802 1.706C1.588 5.194 1.5 6.387 1.5 8M0 8c0-6.588 1.412-8 8-8s8 1.412 8 8-1.412 8-8 8-8-1.412-8-8m8 3a3 3 0 1 0 0-6 3 3 0 0 0 0 6"/>
|
|
5382
5472
|
</symbol>
|
|
5473
|
+
<symbol id="diffs-icon-symbol-modified-duo" viewBox="0 0 16 16">
|
|
5474
|
+
<path d="M8 0C1.412 0 0 1.412 0 8s1.412 8 8 8 8-1.412 8-8-1.412-8-8-8" opacity=".2"/><path d="M11 8a3 3 0 1 1-6 0 3 3 0 0 1 6 0"/>
|
|
5475
|
+
</symbol>
|
|
5476
|
+
<symbol id="diffs-icon-symbol-modified-fill" viewBox="0 0 16 16">
|
|
5477
|
+
<path fill-rule="evenodd" d="M8 0c6.588 0 8 1.412 8 8s-1.412 8-8 8-8-1.412-8-8 1.412-8 8-8m0 5a3 3 0 1 0 0 6 3 3 0 0 0 0-6" clip-rule="evenodd"/>
|
|
5478
|
+
</symbol>
|
|
5383
5479
|
<symbol id="diffs-icon-symbol-moved" viewBox="0 0 16 16">
|
|
5384
5480
|
<path d="M1.788 4.296c.196-.88.478-1.381.802-1.706s.826-.606 1.706-.802C5.194 1.588 6.387 1.5 8 1.5s2.806.088 3.704.288c.88.196 1.381.478 1.706.802s.607.826.802 1.706c.2.898.288 2.091.288 3.704s-.088 2.806-.288 3.704c-.195.88-.478 1.381-.802 1.706s-.826.607-1.706.802c-.898.2-2.091.288-3.704.288s-2.806-.088-3.704-.288c-.88-.195-1.381-.478-1.706-.802s-.606-.826-.802-1.706C1.588 10.806 1.5 9.613 1.5 8s.088-2.806.288-3.704M8 0C1.412 0 0 1.412 0 8s1.412 8 8 8 8-1.412 8-8-1.412-8-8-8"/><path d="M8.495 4.695a.75.75 0 0 0-.05 1.06L10.486 8l-2.041 2.246a.75.75 0 0 0 1.11 1.008l2.5-2.75a.75.75 0 0 0 0-1.008l-2.5-2.75a.75.75 0 0 0-1.06-.051m-4 0a.75.75 0 0 0-.05 1.06l2.044 2.248-1.796 1.995a.75.75 0 0 0 1.114 1.004l2.25-2.5a.75.75 0 0 0-.002-1.007l-2.5-2.75a.75.75 0 0 0-1.06-.05"/>
|
|
5385
5481
|
</symbol>
|
|
5482
|
+
<symbol id="diffs-icon-symbol-moved-duo" viewBox="0 0 16 16">
|
|
5483
|
+
<path d="M8 0C1.412 0 0 1.412 0 8s1.412 8 8 8 8-1.412 8-8-1.412-8-8-8" opacity=".2"/><path d="M8.496 4.695a.75.75 0 0 0-.051 1.06L10.486 8l-2.041 2.246a.75.75 0 0 0 1.11 1.008l2.5-2.75a.75.75 0 0 0 0-1.008l-2.5-2.75a.75.75 0 0 0-1.06-.051m-4 0a.75.75 0 0 0-.051 1.06L6.49 8.003 4.693 9.998a.75.75 0 0 0 1.114 1.004l2.25-2.5a.75.75 0 0 0-.002-1.007l-2.5-2.75a.75.75 0 0 0-1.06-.05"/>
|
|
5484
|
+
</symbol>
|
|
5485
|
+
<symbol id="diffs-icon-symbol-moved-fill" viewBox="0 0 16 16">
|
|
5486
|
+
<path fill-rule="evenodd" d="M8 0c6.588 0 8 1.412 8 8s-1.412 8-8 8-8-1.412-8-8 1.412-8 8-8m1.555 4.745a.75.75 0 0 0-1.11 1.01L10.486 8l-2.04 2.245a.75.75 0 0 0 1.109 1.01l2.5-2.75a.75.75 0 0 0 0-1.01zm-4 0a.75.75 0 0 0-1.11 1.01l2.043 2.248-1.796 1.995a.75.75 0 0 0 1.116 1.004l2.25-2.5a.75.75 0 0 0-.003-1.007z" clip-rule="evenodd"/>
|
|
5487
|
+
</symbol>
|
|
5386
5488
|
<symbol id="diffs-icon-symbol-ref" viewBox="0 0 16 16">
|
|
5387
5489
|
<path d="M1.5 8c0 1.613.088 2.806.288 3.704.196.88.478 1.381.802 1.706.286.286.71.54 1.41.73V1.86c-.7.19-1.124.444-1.41.73-.324.325-.606.826-.802 1.706C1.588 5.194 1.5 6.387 1.5 8m4 6.397c.697.07 1.522.103 2.5.103 1.613 0 2.806-.088 3.704-.288.88-.195 1.381-.478 1.706-.802s.607-.826.802-1.706c.2-.898.288-2.091.288-3.704s-.088-2.806-.288-3.704c-.195-.88-.478-1.381-.802-1.706s-.826-.606-1.706-.802C10.806 1.588 9.613 1.5 8 1.5c-.978 0-1.803.033-2.5.103zM0 8c0-6.588 1.412-8 8-8s8 1.412 8 8-1.412 8-8 8-8-1.412-8-8m7-2a1 1 0 0 1 1-1h3a1 1 0 0 1 1 1v1a1 1 0 0 1-1 1H8a1 1 0 0 1-1-1z"/>
|
|
5388
5490
|
</symbol>
|
|
5389
5491
|
</svg>`;
|
|
5390
5492
|
|
|
5391
|
-
// node_modules/.pnpm/@pierre+diffs@1.
|
|
5493
|
+
// node_modules/.pnpm/@pierre+diffs@1.5.1_@shikijs+themes@4.4.3_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@pierre/diffs/dist/utils/arePrePropertiesEqual.js
|
|
5392
5494
|
function arePrePropertiesEqual(propsA, propsB) {
|
|
5393
5495
|
if (propsA == null || propsB == null) return propsA === propsB;
|
|
5394
5496
|
return areCustomPropertiesEqual(propsA.customProperties, propsB.customProperties) && propsA.type === propsB.type && propsA.diffIndicators === propsB.diffIndicators && propsA.disableBackground === propsB.disableBackground && propsA.disableLineNumbers === propsB.disableLineNumbers && propsA.overflow === propsB.overflow && propsA.split === propsB.split && propsA.totalLines === propsB.totalLines;
|
|
@@ -5403,7 +5505,7 @@ function areCustomPropertiesEqual(customPropertiesA = EMPTY_CUSTOM_PROPERTIES, c
|
|
|
5403
5505
|
return true;
|
|
5404
5506
|
}
|
|
5405
5507
|
|
|
5406
|
-
// node_modules/.pnpm/@pierre+diffs@1.
|
|
5508
|
+
// node_modules/.pnpm/@pierre+diffs@1.5.1_@shikijs+themes@4.4.3_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@pierre/diffs/dist/utils/createAnnotationWrapperNode.js
|
|
5407
5509
|
function createAnnotationWrapperNode(slot) {
|
|
5408
5510
|
const wrapper = document.createElement("div");
|
|
5409
5511
|
wrapper.dataset.annotationSlot = "";
|
|
@@ -5412,7 +5514,7 @@ function createAnnotationWrapperNode(slot) {
|
|
|
5412
5514
|
return wrapper;
|
|
5413
5515
|
}
|
|
5414
5516
|
|
|
5415
|
-
// node_modules/.pnpm/@pierre+diffs@1.
|
|
5517
|
+
// node_modules/.pnpm/@pierre+diffs@1.5.1_@shikijs+themes@4.4.3_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@pierre/diffs/dist/utils/createGutterUtilityContentNode.js
|
|
5416
5518
|
function createGutterUtilityContentNode() {
|
|
5417
5519
|
const gutterUtilityContent = document.createElement("div");
|
|
5418
5520
|
gutterUtilityContent.slot = "gutter-utility-slot";
|
|
@@ -5425,14 +5527,14 @@ function createGutterUtilityContentNode() {
|
|
|
5425
5527
|
return gutterUtilityContent;
|
|
5426
5528
|
}
|
|
5427
5529
|
|
|
5428
|
-
// node_modules/.pnpm/@pierre+diffs@1.
|
|
5530
|
+
// node_modules/.pnpm/@pierre+diffs@1.5.1_@shikijs+themes@4.4.3_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@pierre/diffs/dist/utils/createUnsafeCSSStyleNode.js
|
|
5429
5531
|
function createUnsafeCSSStyleNode() {
|
|
5430
5532
|
const node = document.createElement("style");
|
|
5431
5533
|
node.setAttribute(UNSAFE_CSS_ATTRIBUTE, "");
|
|
5432
5534
|
return node;
|
|
5433
5535
|
}
|
|
5434
5536
|
|
|
5435
|
-
// node_modules/.pnpm/@pierre+diffs@1.
|
|
5537
|
+
// node_modules/.pnpm/@pierre+diffs@1.5.1_@shikijs+themes@4.4.3_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@pierre/diffs/dist/utils/scrollbarGutter.js
|
|
5436
5538
|
var measuredScrollbarGutter;
|
|
5437
5539
|
function getMeasuredScrollbarGutter(shadowRoot) {
|
|
5438
5540
|
if (measuredScrollbarGutter != null) return measuredScrollbarGutter;
|
|
@@ -5452,13 +5554,14 @@ function getMeasuredScrollbarGutter(shadowRoot) {
|
|
|
5452
5554
|
return measuredScrollbarGutter;
|
|
5453
5555
|
}
|
|
5454
5556
|
function createMeasuredScrollbarGutterDeclaration(scrollbarGutter) {
|
|
5455
|
-
|
|
5557
|
+
const value = scrollbarGutter == null ? "var(--diffs-scrollbar-gutter-fallback)" : `${scrollbarGutter}px`;
|
|
5558
|
+
return `${DIFFS_SCROLLBAR_GUTTER_MEASURED_PROPERTY}: ${value};`;
|
|
5456
5559
|
}
|
|
5457
5560
|
|
|
5458
|
-
// node_modules/.pnpm/@pierre+diffs@1.
|
|
5459
|
-
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, [data-edit-prediction-suffix] 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"], &[data-dehydrated][data-diff-type="split"][data-overflow="scroll"] {\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"], [data-dehydrated][data-diff-type="split"][data-overflow="scroll"] {\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-code] {\n display: contents;\n }\n\n & [data-deletions] {\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 & [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-dehydrated][data-diff-type="split"][data-overflow="scroll"] [data-content] {\n overflow: clip;\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] {\n white-space: pre-wrap;\n word-break: break-word;\n }\n\n & [data-annotation-content] {\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 white-space: normal;\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';
|
|
5561
|
+
// node_modules/.pnpm/@pierre+diffs@1.5.1_@shikijs+themes@4.4.3_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@pierre/diffs/dist/style.js
|
|
5562
|
+
var style_default = '@layer base,theme,rendered,unsafe;@layer base{:host{--diffs-font-fallback:"SF Mono", Monaco, Consolas, "Ubuntu Mono", "Liberation Mono", "Courier New", monospace;--diffs-header-font-fallback:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif;--diffs-mixer:light-dark(#000,#fff);--diffs-gap-fallback:8px;--diffs-scrollbar-gutter-fallback:6px;--diffs-scrollbar-gutter:var(--diffs-scrollbar-gutter-override,var(--diffs-scrollbar-gutter-measured,var(--diffs-scrollbar-gutter-fallback)));--diffs-added-light:#0dbe4e;--diffs-added-dark:#5ecc71;--diffs-modified-light:#009fff;--diffs-modified-dark:#69b1ff;--diffs-deleted-light:#ff2e3f;--diffs-deleted-dark:#ff6762;--diffs-warning-light:#d5a910;--diffs-warning-dark:#ffd452;color-scheme:light dark;font-family:var(--diffs-header-font-family,var(--diffs-header-font-fallback));font-size:var(--diffs-font-size,13px);line-height:var(--diffs-line-height,20px);font-feature-settings:var(--diffs-font-features);--diffs-bg:light-dark(var(--diffs-light-bg,#fff),var(--diffs-dark-bg,#000));--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))));--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))));--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))));--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))));--diffs-fg:light-dark(var(--diffs-light,#000),var(--diffs-dark,#fff));--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))));--diffs-fg-conflict-marker:var(--diffs-fg-conflict-marker-override,var(--diffs-fg-number));--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)))));--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)))));--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)))));--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))));--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)));--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))));--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)));--diffs-selection-base:var(--diffs-modified-base);--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)));background-color:var(--diffs-bg);color:var(--diffs-fg);display:block}pre,code,[data-error-wrapper]{isolation:isolate;font-family:var(--diffs-font-family,var(--diffs-font-fallback));outline:none;margin:0;padding:0;display:block}pre,code{background-color:var(--diffs-bg)}code{contain:content}input,button{font-family:inherit;font-size:inherit;line-height:inherit}*,:before,:after{box-sizing:border-box}[data-icon-sprite]{display:none}[data-diffs-header],[data-separator]{font-family:var(--diffs-header-font-family,var(--diffs-header-font-fallback))}[data-diffs-header][data-sticky]{z-index:1;background-color:var(--diffs-bg);position:sticky;top:0}[data-file-info]{color:var(--fg);background-color:color-mix(in lab, var(--bg) 98%, var(--fg));border-block:1px solid color-mix(in lab, var(--bg) 95%, var(--fg));padding:10px;font-weight:700}[data-diff],[data-file]{--diffs-grid-number-column-width:minmax(min-content, max-content);--diffs-code-grid:var(--diffs-grid-number-column-width) 1fr;&[data-dehydrated]{--diffs-code-grid:var(--diffs-grid-number-column-width) minmax(0, 1fr)}&:hover [data-code]::-webkit-scrollbar-thumb{background-color:var(--diffs-bg-context)}}@supports (-webkit-touch-callout:none){:host{--diffs-scrollbar-gutter-fallback:0px}}[data-line] span,[data-edit-prediction-suffix] span{color:light-dark(var(--diffs-token-light,var(--diffs-light)),var(--diffs-token-dark,var(--diffs-dark)));background-color:light-dark(var(--diffs-token-light-bg,inherit),var(--diffs-token-dark-bg,inherit));font-weight:light-dark(var(--diffs-token-light-font-weight,inherit),var(--diffs-token-dark-font-weight,inherit));font-style:light-dark(var(--diffs-token-light-font-style,inherit),var(--diffs-token-dark-font-style,inherit));text-decoration:light-dark(var(--diffs-token-light-text-decoration,inherit),var(--diffs-token-dark-text-decoration,inherit))}[data-line],[data-gutter-buffer],[data-column-number],[data-line-annotation],[data-no-newline],[data-merge-conflict],[data-merge-conflict-actions],[data-editor-overlay]{--diffs-computed-decoration-bg:var(--diffs-bg);--diffs-computed-diff-line-bg:var(--diffs-computed-decoration-bg);--diffs-computed-selected-line-bg:var(--diffs-computed-diff-line-bg);--diffs-computed-editor-active-line-bg:var(--diffs-computed-selected-line-bg);--diffs-computed-hovered-line-bg:var(--diffs-computed-editor-active-line-bg);--diffs-hover-mix-target:var(--diffs-bg-hover-override,var(--diffs-mixer));--diffs-line-bg:var(--diffs-computed-hovered-line-bg);color:var(--diffs-fg);background-color:var(--diffs-line-bg,var(--diffs-bg))}[data-line],[data-no-newline]{&[data-decoration-bg]{--mix-deco-light:92%;--mix-deco-dark:85%;&[data-decoration-bg-depth="2"]{--mix-deco-light:88%;--mix-deco-dark:80%}&[data-decoration-bg-depth="3"]{--mix-deco-light:85%;--mix-deco-dark:78%}--diffs-hover-mix-target:var(--diffs-decoration-bg);--diffs-computed-decoration-bg:light-dark(color-mix(in lab, var(--diffs-bg) var(--mix-deco-light), var(--diffs-decoration-bg)),color-mix(in lab, var(--diffs-bg) var(--mix-deco-dark), var(--diffs-decoration-bg)))}}[data-line-annotation],[data-gutter-buffer=annotation]{--diffs-annotation-bg:var(--diffs-bg-context);--diffs-computed-decoration-bg:var(--diffs-annotation-bg);--diffs-hover-mix-target:var(--diffs-computed-editor-active-line-bg)}[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]{--diffs-computed-decoration-bg:var(--diffs-bg-context);--diffs-hover-mix-target:var(--diffs-computed-editor-active-line-bg)}[data-gutter-buffer=merge-conflict-marker-start],[data-merge-conflict=marker-start]{--diffs-computed-decoration-bg:light-dark(color-mix(in lab, var(--diffs-bg) 78%, var(--conflict-bg-current-header-override,var(--diffs-addition-base))),color-mix(in lab, var(--diffs-bg) 68%, var(--conflict-bg-current-header-override,var(--diffs-addition-base))));--diffs-hover-mix-target:var(--diffs-computed-editor-active-line-bg)}[data-gutter-buffer=merge-conflict-marker-end],[data-merge-conflict=marker-end]{--diffs-computed-decoration-bg:light-dark(color-mix(in lab, var(--diffs-bg) 78%, var(--conflict-bg-incoming-header-override,var(--diffs-modified-base))),color-mix(in lab, var(--diffs-bg) 68%, var(--conflict-bg-incoming-header-override,var(--diffs-modified-base))));--diffs-hover-mix-target:var(--diffs-computed-editor-active-line-bg)}[data-has-merge-conflict] [data-line-annotation],[data-has-merge-conflict] [data-gutter-buffer=annotation]{--diffs-computed-decoration-bg:var(--diffs-bg);--diffs-hover-mix-target:var(--diffs-computed-editor-active-line-bg)}:where([data-background]){& [data-gutter-buffer],& [data-column-number]{--mix-light:91%;--mix-dark:85%}& [data-line],& [data-no-newline]{--mix-light:88%;--mix-dark:80%}& [data-gutter-buffer],& [data-column-number],& [data-line],& [data-no-newline]{--diffs-diff-line-mix-target:var(--diffs-bg);&[data-line-type=change-deletion]{--diffs-diff-line-mix-target:var(--diffs-bg-deletion-override,var(--diffs-deletion-base));--diffs-hover-mix-target:var(--diffs-diff-line-mix-target);&:where([data-gutter-buffer],[data-column-number]){color:var(--diffs-fg-number-deletion-override,var(--diffs-deletion-base));--diffs-diff-line-mix-target:var(--diffs-bg-deletion-number-override,var(--diffs-deletion-base))}--diffs-computed-diff-line-bg:light-dark(color-mix(in lab, var(--diffs-computed-decoration-bg) var(--mix-light), var(--diffs-diff-line-mix-target)),color-mix(in lab, var(--diffs-computed-decoration-bg) var(--mix-dark), var(--diffs-diff-line-mix-target)))}&[data-line-type=change-addition]{--diffs-diff-line-mix-target:var(--diffs-bg-addition-override,var(--diffs-addition-base));--diffs-hover-mix-target:var(--diffs-diff-line-mix-target);&:where([data-gutter-buffer],[data-column-number]){color:var(--diffs-fg-number-addition-override,var(--diffs-addition-base));--diffs-diff-line-mix-target:var(--diffs-bg-addition-number-override,var(--diffs-addition-base))}--diffs-computed-diff-line-bg:light-dark(color-mix(in lab, var(--diffs-computed-decoration-bg) var(--mix-light), var(--diffs-diff-line-mix-target)),color-mix(in lab, var(--diffs-computed-decoration-bg) var(--mix-dark), var(--diffs-diff-line-mix-target)))}&[data-merge-conflict=current]{--diffs-diff-line-mix-target:var(--conflict-bg-current-override,var(--diffs-addition-base));--diffs-hover-mix-target:var(--diffs-diff-line-mix-target);&:where([data-gutter-buffer],[data-column-number]){color:var(--diffs-fg-number-addition-override,var(--diffs-addition-base));--diffs-diff-line-mix-target:var(--conflict-bg-current-number-override,var(--diffs-addition-base))}--diffs-computed-diff-line-bg:light-dark(color-mix(in lab, var(--diffs-computed-decoration-bg) var(--mix-light), var(--diffs-diff-line-mix-target)),color-mix(in lab, var(--diffs-computed-decoration-bg) var(--mix-dark), var(--diffs-diff-line-mix-target)))}&[data-merge-conflict=incoming]{--diffs-diff-line-mix-target:var(--conflict-bg-incoming-override,var(--diffs-modified-base));--diffs-hover-mix-target:var(--diffs-diff-line-mix-target);&:where([data-gutter-buffer],[data-column-number]){color:var(--diffs-modified-base);--diffs-diff-line-mix-target:var(--conflict-bg-incoming-number-override,var(--diffs-modified-base))}--diffs-computed-diff-line-bg:light-dark(color-mix(in lab, var(--diffs-computed-decoration-bg) var(--mix-light), var(--diffs-diff-line-mix-target)),color-mix(in lab, var(--diffs-computed-decoration-bg) var(--mix-dark), var(--diffs-diff-line-mix-target)))}}}[data-gutter-buffer],[data-column-number],[data-line],[data-line-annotation],[data-merge-conflict],[data-merge-conflict-actions],[data-no-newline],[data-editor-overlay]{--diffs-selection-mix-target:var(--diffs-bg-selection-override,var(--diffs-selection-base));--diffs-selection-emphasis-mix-target:var(--diffs-selection-mix-target);&:where([data-editor-overlay]),&:where([data-line],[data-line-annotation],[data-merge-conflict],[data-merge-conflict-actions],[data-no-newline])[data-selected-line]{--mix-selection-light:82%;--mix-selection-dark:75%;--diffs-hover-mix-target:var(--diffs-selection-mix-target)}&:where([data-gutter-buffer][data-selected-line],[data-column-number]:is([data-selected-line],[data-editor-active-line])){--mix-selection-light:75%;--mix-selection-dark:60%;--diffs-selection-mix-target:var(--diffs-bg-selection-number-override,var(--diffs-selection-base));--diffs-hover-mix-target:var(--diffs-selection-mix-target)}&:where([data-line][data-selected-line]):is([data-line-type=change-addition],[data-line-type=change-deletion]){--diffs-selection-emphasis-mix-target:light-dark(color-mix(in lab, var(--diffs-diff-line-mix-target,var(--diffs-selection-mix-target)) var(--mix-selection-light), var(--diffs-selection-mix-target)),var(--diffs-selection-mix-target))}&:where([data-editor-overlay]),&[data-selected-line]{--diffs-computed-selected-line-bg:light-dark(color-mix(in lab, var(--diffs-computed-diff-line-bg) var(--mix-selection-light), var(--diffs-selection-mix-target)),color-mix(in lab, var(--diffs-computed-diff-line-bg) var(--mix-selection-dark), var(--diffs-selection-mix-target)))}}[data-line][data-editor-active-line],[data-column-number][data-editor-active-line]{--diffs-computed-editor-active-line-bg:color-mix(in lab, var(--diffs-computed-selected-line-bg) var(--diffs-editor-active-line-source-mix,100%), var(--diffs-selection-emphasis-mix-target))}@media (pointer:fine){[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]{--diffs-computed-hovered-line-bg:light-dark(color-mix(in lab, var(--diffs-computed-editor-active-line-bg) 97%, var(--diffs-hover-mix-target)),color-mix(in lab, var(--diffs-computed-editor-active-line-bg) 91%, var(--diffs-hover-mix-target)))}}[data-gutter-buffer][data-selected-line],[data-column-number]:is([data-selected-line],[data-editor-active-line]){color:var(--diffs-selection-number-fg)}[data-no-newline]{user-select:none;& span{opacity:.6}}[data-diff-type=split][data-overflow=scroll]{grid-template-columns:1fr 1fr;display:grid;& [data-additions]{border-left:1px solid var(--diffs-bg)}& [data-deletions]{border-right:1px solid var(--diffs-bg)}}[data-code]{grid-auto-flow:dense;grid-template-columns:var(--diffs-code-grid);overflow:var(--diffs-overflow-override,scroll) clip;overscroll-behavior-x:none;tab-size:var(--diffs-tab-size,2);padding-top:var(--diffs-gap-block,var(--diffs-gap-fallback));padding-bottom:max(0px, calc(var(--diffs-gap-block,var(--diffs-gap-fallback)) - var(--diffs-scrollbar-gutter)));scrollbar-gutter:stable;align-self:flex-start;display:grid}[data-diffs-scrollbar-measure]{opacity:0;pointer-events:none;scrollbar-gutter:auto;grid-template-columns:none;width:100px;height:100px;padding:0;position:absolute;top:-200px;left:-200px}[data-container-size]{container-type:inline-size}[data-code]::-webkit-scrollbar{width:0;height:var(--diffs-scrollbar-gutter)}[data-code]::-webkit-scrollbar-track{background:0 0}[data-code]::-webkit-scrollbar-thumb{background-color:#0000;background-clip:content-box;border:1px solid #0000;border-radius:3px}[data-code]::-webkit-scrollbar-corner{background-color:#0000}@supports ((-moz-appearance:none)){[data-code]{scrollbar-width:thin;scrollbar-color:var(--diffs-bg-context) transparent;padding-bottom:var(--diffs-gap-block,var(--diffs-gap-fallback))}}[data-diffs-header]~[data-diff],[data-diffs-header]~[data-file]{& [data-code],&[data-overflow=wrap],&[data-dehydrated][data-diff-type=split][data-overflow=scroll]{padding-top:0}}[data-gutter]{grid-template-rows:subgrid;grid-template-columns:subgrid;z-index:3;background-color:var(--diffs-bg);grid-column:1;display:grid;position:relative;& [data-gutter-buffer],& [data-column-number]{border-right:var(--diffs-gap-style,2px solid var(--diffs-bg))}}[data-content]{grid-template-rows:subgrid;grid-template-columns:subgrid;background-color:var(--diffs-bg);grid-column:2;min-width:0;display:grid}[data-diff-type=split][data-overflow=wrap],[data-dehydrated][data-diff-type=split][data-overflow=scroll]{grid-auto-flow:dense;grid-template-columns:repeat(2, var(--diffs-code-grid));padding-block:var(--diffs-gap-block,var(--diffs-gap-fallback));display:grid;& [data-code]{display:contents}& [data-deletions]{& [data-gutter]{grid-column:1}& [data-content]{border-right:1px solid var(--diffs-bg);grid-column:2}}& [data-additions]{& [data-gutter]{border-left:1px solid var(--diffs-bg);grid-column:3}& [data-content]{grid-column:4}}}[data-dehydrated][data-diff-type=split][data-overflow=scroll] [data-content]{overflow:clip}[data-overflow=scroll] [data-gutter]{position:sticky;left:0}[data-interactive-lines] [data-line]{cursor:pointer}[data-interactive-line-numbers] [data-column-number]{cursor:pointer;touch-action:none}[data-content-buffer],[data-gutter-buffer]{user-select:none;min-height:1lh;position:relative}[data-gutter-buffer]{padding-left:2ch;padding-right:1ch;&:before{content:"";min-width:var(--diffs-min-number-column-width,var(--diffs-min-number-column-width-default,3ch));display:block}}[data-gutter-buffer=annotation]{--diffs-annotation-bg:var(--diffs-bg-context-gutter);min-height:0}[data-gutter-buffer=buffer]{--diffs-line-bg:var(--diffs-bg-context-gutter)}[data-content-buffer]{background-position:5px 0;background-size:8px 8px;background-origin:border-box;background-image:repeating-linear-gradient(-45deg, transparent, transparent calc(3px * 1.414), var(--diffs-bg-buffer) calc(3px * 1.414), var(--diffs-bg-buffer) calc(4px * 1.414));grid-column:1}[data-separator]{box-sizing:content-box;background-color:var(--diffs-bg)}[data-separator=simple]{min-height:4px}[data-separator=line-info],[data-separator=line-info-basic],[data-separator=metadata],[data-separator=simple]{background-color:var(--diffs-bg-separator)}[data-separator=line-info],[data-separator=line-info-basic],[data-separator=metadata]{height:32px;position:relative}[data-separator-wrapper]{user-select:none;fill:currentColor;background-color:var(--diffs-bg);align-items:center;height:100%;display:flex;position:absolute;inset-inline:0}[data-content] [data-separator-wrapper]{display:none}[data-separator=metadata] [data-separator-wrapper]{background-color:var(--diffs-bg-separator);height:100%;color:var(--diffs-fg-number);white-space:nowrap;text-overflow:ellipsis;min-width:min-content;padding-inline:1ch;inset-inline:100% auto;overflow:hidden}[data-separator=line-info]{margin-block:var(--diffs-gap-block,var(--diffs-gap-fallback));& [data-separator-wrapper]{min-width:16px}}[data-separator=line-info-basic],[data-separator=metadata]{margin-block:0}[data-separator=line-info][data-separator-first]{margin-top:0}[data-separator=line-info][data-separator-last]{margin-bottom:0}[data-expand-index] [data-separator-wrapper]{grid-template-columns:32px auto;display:grid}[data-expand-index] [data-separator-wrapper][data-separator-multi-button]{grid-template-columns:32px 32px auto}[data-expand-button],[data-separator-content]{background-color:var(--diffs-bg-separator);flex:none;align-items:center;display:flex}[data-expand-index] [data-separator-content]:hover{cursor:pointer;text-decoration:underline}[data-expand-button]{cursor:pointer;min-width:32px;color:var(--diffs-fg-number);border-right:2px solid var(--diffs-bg);flex-shrink:0;justify-content:center;align-self:stretch;&:hover{color:var(--diffs-fg)}&[data-expand-all-button]{display:none}}[data-expand-down] [data-icon]{transform:scaleY(-1)}[data-separator-content]{height:100%;color:var(--diffs-fg-number);flex:auto;justify-content:flex-start;padding:0 1ch;overflow:hidden}[data-separator=line-info],[data-separator=line-info-basic]{& [data-separator-content]{user-select:none;height:100%;overflow:clip}}[data-unmodified-lines]{text-overflow:ellipsis;white-space:nowrap;flex:0 auto;min-width:0;display:block;overflow:hidden}@supports (width:1cqi){[data-unified]{& [data-separator=line-info] [data-separator-wrapper]{padding-inline:var(--diffs-gap-inline,var(--diffs-gap-fallback));width:100cqi;& [data-separator-content]{border-radius:6px}}& [data-separator=line-info][data-expand-index] [data-separator-wrapper] [data-separator-content]{border-top-left-radius:unset;border-bottom-left-radius:unset}}[data-gutter]{& [data-separator=line-info] [data-separator-wrapper]{padding-left:var(--diffs-gap-inline,var(--diffs-gap-fallback))}& [data-separator=line-info] [data-separator-content]{border-top-left-radius:6px;border-bottom-left-radius:6px}& [data-separator=line-info][data-expand-index] [data-separator-content]{border-top-left-radius:unset;border-bottom-left-radius:unset}}[data-additions]{& [data-content] [data-separator=line-info]{background-color:var(--diffs-bg);& [data-separator-wrapper]{display:none}}& [data-gutter] [data-separator=line-info] [data-separator-wrapper]{background-color:var(--diffs-bg-separator);border-top-right-radius:6px;border-bottom-right-radius:6px;height:100%;display:block;& [data-separator-content],& [data-expand-button]{display:none}}}[data-overflow=scroll] [data-additions] [data-gutter] [data-separator=line-info] [data-separator-wrapper]{width:calc(100cqi - var(--diffs-gap-inline,var(--diffs-gap-fallback)))}[data-overflow=wrap] [data-additions] [data-content] [data-separator=line-info] [data-separator-wrapper]{background-color:var(--diffs-bg-separator);height:100%;margin-right:var(--diffs-gap-inline,var(--diffs-gap-fallback));border-top-right-radius:6px;border-bottom-right-radius:6px;display:block;& [data-separator-content],& [data-expand-button]{display:none}}[data-separator=line-info] [data-separator-wrapper]{& [data-expand-both],& [data-expand-down],& [data-expand-up]{border-top-left-radius:6px;border-bottom-left-radius:6px}}@media (pointer:fine){[data-separator=line-info] [data-separator-wrapper]{&[data-separator-multi-button]{& [data-expand-up]{border-top-left-radius:6px;border-bottom-left-radius:unset}& [data-expand-down]{border-bottom-left-radius:6px;border-top-left-radius:unset}}}}}@media (pointer:coarse){[data-separator=line-info-basic] [data-separator-wrapper][data-separator-multi-button]{grid-template-columns:34px 34px auto;& [data-separator-content]{grid-column:unset;grid-row:unset}}@supports (width:1cqi){[data-separator=line-info] [data-separator-wrapper]{& [data-expand-both],& [data-expand-down],& [data-expand-up]{border-top-left-radius:6px;border-bottom-left-radius:6px}&[data-separator-multi-button]{& [data-expand-up]{border-top-left-radius:6px;border-bottom-left-radius:6px}& [data-expand-down]{border-bottom-left-radius:unset;border-top-left-radius:unset}}}}}@media (pointer:fine){[data-separator-wrapper][data-separator-multi-button]{grid-template-rows:50% 50%;display:grid;& [data-separator-content]{grid-area:1/2/-1;min-width:min-content}& [data-expand-button]{grid-column:1}}[data-separator=line-info] [data-separator-wrapper],[data-separator=line-info] [data-separator-wrapper][data-separator-multi-button]{grid-template-columns:34px auto}[data-separator=line-info-basic][data-expand-index] [data-separator-wrapper]{grid-template-columns:100% auto}[data-separator=line-info],[data-separator=line-info-basic]{& [data-separator-multi-button]{& [data-expand-up]{border-bottom:1px solid var(--diffs-bg);border-right:2px solid var(--diffs-bg)}& [data-expand-down]{border-top:1px solid var(--diffs-bg);border-right:2px solid var(--diffs-bg)}}}}[data-additions] [data-gutter] [data-separator-wrapper],[data-additions] [data-separator=line-info-basic] [data-separator-wrapper],[data-content] [data-separator-wrapper]{display:none}[data-line-annotation]{min-height:var(--diffs-annotation-min-height,0);z-index:2}[data-merge-conflict-actions]{z-index:2}[data-separator=custom]{grid-template-columns:subgrid;display:grid}[data-line],[data-column-number],[data-no-newline]{padding-inline:1ch;position:relative}[data-indicators=classic] [data-line]{padding-inline-start:2ch}[data-indicators=classic]{& [data-line-type=change-addition],& [data-line-type=change-deletion]{&[data-no-newline],&[data-line]{&:before{user-select:none;width:1ch;height:1lh;display:inline-block;position:absolute;top:0;left:0}}}& [data-line-type=change-addition]{&[data-line],&[data-no-newline]{&:before{content:"+";color:var(--diffs-addition-base)}}}& [data-line-type=change-deletion]{&[data-line],&[data-no-newline]{&:before{content:"-";color:var(--diffs-deletion-base)}}}}[data-indicators=bars]{& [data-line-type=change-deletion],& [data-line-type=change-addition]{&[data-column-number]{&:before{content:"";user-select:none;contain:strict;width:4px;height:100%;display:block;position:absolute;top:0;left:0}}}& [data-line-type=change-deletion]{&[data-column-number]{&:before{background-image:linear-gradient(0deg, var(--diffs-bg-deletion) 50%, var(--diffs-deletion-base) 50%);background-repeat:repeat;background-size:2px 2px;background-size:calc(1lh / round(1lh / 2px)) calc(1lh / round(1lh / 2px))}}}& [data-line-type=change-addition]{&[data-column-number]{&:before{background-color:var(--diffs-addition-base)}}}}[data-overflow=wrap]{& [data-line]{white-space:pre-wrap;word-break:break-word}& [data-annotation-content]{word-break:break-word}}[data-overflow=scroll] [data-line]{white-space:pre;min-height:1lh}[data-column-number]{box-sizing:content-box;text-align:right;user-select:none;color:var(--diffs-fg-number);padding-left:2ch}[data-line-number-content]{min-width:var(--diffs-min-number-column-width,var(--diffs-min-number-column-width-default,3ch));z-index:1;display:inline-block;position:relative}[data-disable-line-numbers]{& [data-gutter-buffer],& [data-column-number]{min-width:4px;padding:0;&:before{min-width:0}}& [data-line-number-content]{display:none}& [data-gutter-utility-slot]{right:unset;justify-content:flex-start;left:0}&[data-indicators=bars] [data-gutter-utility-slot]{left:6px}}[data-file][data-disable-line-numbers]{& [data-gutter-buffer],& [data-column-number]{border-right:0;min-width:0}}[data-diff-span]{box-decoration-break:clone;border-radius:3px}[data-line-type=change-addition] [data-diff-span]{background-color:var(--diffs-bg-addition-emphasis)}[data-line-type=change-deletion] [data-diff-span]{background-color:var(--diffs-bg-deletion-emphasis)}[data-merge-conflict=marker-start],[data-merge-conflict=marker-base],[data-merge-conflict=marker-separator],[data-merge-conflict=marker-end]{color:var(--diffs-fg);padding-left:1ch}[data-merge-conflict=marker-start],[data-merge-conflict=marker-end]{align-items:center;display:flex;&:after{color:var(--diffs-fg-conflict-marker);font-size:.75rem;font-style:normal;line-height:1.25rem;font-family:var(--diffs-header-font-family,var(--diffs-header-font-fallback));padding-left:1ch}}[data-merge-conflict=marker-start]:after{content:"(Current Change)"}[data-merge-conflict=marker-end]:after{content:"(Incoming Change)"}[data-merge-conflict-actions-content]{min-height:1.75rem;font-family:var(--diffs-header-font-family,var(--diffs-header-font-fallback));color:var(--diffs-fg);align-items:center;gap:.25rem;padding-inline:.5rem;font-size:.75rem;line-height:1.2;display:flex}[data-merge-conflict-action]{appearance:none;color:var(--diffs-fg-number);font:inherit;cursor:pointer;background:0 0;border:0;padding:0;font-style:normal}[data-merge-conflict-action]:hover{color:var(--diffs-fg)}[data-merge-conflict-action=current]:hover{color:var(--diffs-addition-base)}[data-merge-conflict-action=incoming]:hover{color:var(--diffs-modified-base)}[data-merge-conflict-action-separator]{color:var(--diffs-fg-number);opacity:.6;user-select:none}[data-diffs-header=default]{background-color:var(--diffs-bg);justify-content:space-between;align-items:center;gap:var(--diffs-gap-inline,var(--diffs-gap-fallback));min-height:calc(1lh + (var(--diffs-gap-block,var(--diffs-gap-fallback)) * 3));z-index:2;flex-direction:row;padding-inline:16px;display:flex;position:relative;top:0}[data-header-content]{align-items:center;gap:var(--diffs-gap-inline,var(--diffs-gap-fallback));white-space:nowrap;flex-direction:row;min-width:0;display:flex}[data-header-content] [data-prev-name],[data-header-content] [data-title]{text-overflow:ellipsis;white-space:nowrap;direction:rtl;min-width:0;overflow:hidden}[data-prev-name]{opacity:.7}[data-rename-icon]{fill:currentColor;flex-grow:0;flex-shrink:0}[data-diffs-header=default] [data-metadata]{white-space:nowrap;align-items:center;gap:1ch;display:flex}[data-diffs-header=default] [data-additions-count]{font-family:var(--diffs-font-family,var(--diffs-font-fallback));color:var(--diffs-addition-base)}[data-diffs-header=default] [data-deletions-count]{font-family:var(--diffs-font-family,var(--diffs-font-fallback));color:var(--diffs-deletion-base)}[data-change-icon]{fill:currentColor;flex-shrink:0}[data-change-icon=change],[data-change-icon=rename-pure],[data-change-icon=rename-changed]{color:var(--diffs-modified-base)}[data-change-icon=new]{color:var(--diffs-addition-base)}[data-change-icon=deleted]{color:var(--diffs-deletion-base)}[data-change-icon=file]{opacity:.6}[data-annotation-content]{z-index:2;isolation:isolate;white-space:normal;align-self:flex-start;min-width:0;display:flow-root;position:relative}[data-overflow=scroll] [data-annotation-content],[data-overflow=scroll] [data-merge-conflict-actions-content]{width:var(--diffs-column-content-width,auto);left:var(--diffs-column-number-width,0);position:sticky}[data-annotation-slot]{text-wrap-mode:wrap;word-break:normal;white-space-collapse:collapse}[data-gutter-utility-slot]{touch-action:none;justify-content:flex-end;display:flex;position:absolute;top:0;bottom:0;right:0}[data-utility-button]{appearance:none;cursor:pointer;width:1lh;height:1lh;font-size:var(--diffs-font-size,13px);line-height:var(--diffs-line-height,20px);background-color:var(--diffs-modified-base);color:var(--diffs-bg);fill:currentColor;z-index:4;touch-action:none;border:none;border-radius:4px;justify-content:center;align-items:center;margin-right:calc(-1lh + 1ch);padding:0;display:flex;position:relative;&:before{content:"";display:block;position:absolute;inset:0 0 0 -4px}}[data-decoration-bar-stack]{pointer-events:none;isolation:isolate;z-index:1;background-color:var(--diffs-decoration-bar-color,transparent);box-sizing:content-box;border-left:2px solid var(--diffs-bg);border-right:2px solid var(--diffs-bg);width:6px;position:absolute;top:0;bottom:0;right:-2px;[data-decoration-bar-depth="1"] &{background-color:color-mix(in lab, var(--diffs-bg) 20%, var(--diffs-decoration-bar-color,transparent))}[data-decoration-bar-depth="2"] &{background-color:color-mix(in lab, var(--diffs-bg) 45%, var(--diffs-decoration-bar-color,transparent))}[data-decoration-bar-depth="3"] &{background-color:color-mix(in lab, var(--diffs-bg) 65%, var(--diffs-decoration-bar-color,transparent))}[data-decoration-bar-start] &{border-top-left-radius:5px;border-top-right-radius:5px}[data-decoration-bar-end] &{z-index:3;border-bottom-right-radius:5px;border-bottom-left-radius:5px}}[data-placeholder]{contain:strict}[data-error-wrapper]{padding:var(--diffs-gap-block,var(--diffs-gap-fallback)) var(--diffs-gap-inline,var(--diffs-gap-fallback));scrollbar-width:none;max-height:400px;overflow:auto;& [data-error-message]{color:var(--diffs-deletion-base);font-size:18px;font-weight:700}& [data-error-stack]{color:var(--diffs-fg-number)}}}@layer theme,rendered,unsafe;\n';
|
|
5460
5563
|
|
|
5461
|
-
// node_modules/.pnpm/@pierre+diffs@1.
|
|
5564
|
+
// node_modules/.pnpm/@pierre+diffs@1.5.1_@shikijs+themes@4.4.3_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@pierre/diffs/dist/utils/cssWrappers.js
|
|
5462
5565
|
var LAYER_ORDER = `@layer base, theme, rendered, unsafe;`;
|
|
5463
5566
|
var SCROLLBAR_GUTTER_DECLARATION_PATTERN = new RegExp(`${escapeRegExp(DIFFS_SCROLLBAR_GUTTER_MEASURED_PROPERTY)}\\s*:\\s*[^;]+;`);
|
|
5464
5567
|
function wrapUnsafeCSS(unsafeCSS) {
|
|
@@ -5468,11 +5571,13 @@ function wrapUnsafeCSS(unsafeCSS) {
|
|
|
5468
5571
|
}`;
|
|
5469
5572
|
}
|
|
5470
5573
|
function wrapThemeCSS(themeCSS, themeType = "system", scrollbarGutter) {
|
|
5574
|
+
const colorSchemeRule = themeType === "system" ? "" : `
|
|
5575
|
+
color-scheme: ${themeType};`;
|
|
5576
|
+
const scrollbarGutterVar = createMeasuredScrollbarGutterDeclaration(scrollbarGutter);
|
|
5471
5577
|
return `${LAYER_ORDER}
|
|
5472
5578
|
@layer rendered {
|
|
5473
|
-
:host {${
|
|
5474
|
-
|
|
5475
|
-
${createMeasuredScrollbarGutterDeclaration(scrollbarGutter)}
|
|
5579
|
+
:host {${colorSchemeRule}
|
|
5580
|
+
${scrollbarGutterVar}
|
|
5476
5581
|
${themeCSS}
|
|
5477
5582
|
}
|
|
5478
5583
|
}`;
|
|
@@ -5485,14 +5590,14 @@ function escapeRegExp(value) {
|
|
|
5485
5590
|
return value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
5486
5591
|
}
|
|
5487
5592
|
|
|
5488
|
-
// node_modules/.pnpm/@pierre+diffs@1.
|
|
5593
|
+
// node_modules/.pnpm/@pierre+diffs@1.5.1_@shikijs+themes@4.4.3_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@pierre/diffs/dist/utils/lineAnnotationIdentity.js
|
|
5489
5594
|
var lineAnnotationSources = /* @__PURE__ */ new WeakMap();
|
|
5490
5595
|
function getLineAnnotationSource(annotation) {
|
|
5491
5596
|
const source = lineAnnotationSources.get(annotation);
|
|
5492
5597
|
return source == null ? annotation : source;
|
|
5493
5598
|
}
|
|
5494
5599
|
|
|
5495
|
-
// node_modules/.pnpm/@pierre+diffs@1.
|
|
5600
|
+
// node_modules/.pnpm/@pierre+diffs@1.5.1_@shikijs+themes@4.4.3_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@pierre/diffs/dist/utils/editSessionAnnotations.js
|
|
5496
5601
|
function adoptEditSessionAnnotations(annotations, getName, previousSession) {
|
|
5497
5602
|
const slotNames = /* @__PURE__ */ new Map();
|
|
5498
5603
|
for (const annotation of annotations) {
|
|
@@ -5524,12 +5629,12 @@ function resolveEditSessionSlotName(session, annotation, getName) {
|
|
|
5524
5629
|
return name;
|
|
5525
5630
|
}
|
|
5526
5631
|
|
|
5527
|
-
// node_modules/.pnpm/@pierre+diffs@1.
|
|
5632
|
+
// node_modules/.pnpm/@pierre+diffs@1.5.1_@shikijs+themes@4.4.3_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@pierre/diffs/dist/utils/shouldUseTokenTransformer.js
|
|
5528
5633
|
function shouldUseTokenTransformer(options) {
|
|
5529
5634
|
return options?.useTokenTransformer === true || options?.onTokenClick != null || options?.onTokenEnter != null || options?.onTokenLeave != null;
|
|
5530
5635
|
}
|
|
5531
5636
|
|
|
5532
|
-
// node_modules/.pnpm/@pierre+diffs@1.
|
|
5637
|
+
// node_modules/.pnpm/@pierre+diffs@1.5.1_@shikijs+themes@4.4.3_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@pierre/diffs/dist/utils/getOrCreateCodeNode.js
|
|
5533
5638
|
function getOrCreateCodeNode({ code, pre, columnType, rowSpan, containerSize = false } = {}) {
|
|
5534
5639
|
if (code == null) {
|
|
5535
5640
|
code = document.createElement("code");
|
|
@@ -5544,7 +5649,7 @@ function getOrCreateCodeNode({ code, pre, columnType, rowSpan, containerSize = f
|
|
|
5544
5649
|
return code;
|
|
5545
5650
|
}
|
|
5546
5651
|
|
|
5547
|
-
// node_modules/.pnpm/@pierre+diffs@1.
|
|
5652
|
+
// node_modules/.pnpm/@pierre+diffs@1.5.1_@shikijs+themes@4.4.3_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@pierre/diffs/dist/utils/guardWebKitScrollDuringRebuild.js
|
|
5548
5653
|
function guardWebKitScrollDuringRebuild(pre, rebuild) {
|
|
5549
5654
|
const height = pre?.offsetHeight ?? 0;
|
|
5550
5655
|
if (pre == null || height === 0) {
|
|
@@ -5560,7 +5665,7 @@ function guardWebKitScrollDuringRebuild(pre, rebuild) {
|
|
|
5560
5665
|
}
|
|
5561
5666
|
}
|
|
5562
5667
|
|
|
5563
|
-
// node_modules/.pnpm/@pierre+diffs@1.
|
|
5668
|
+
// node_modules/.pnpm/@pierre+diffs@1.5.1_@shikijs+themes@4.4.3_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@pierre/diffs/dist/utils/hostTheme.js
|
|
5564
5669
|
function upsertHostThemeStyle({ shadowRoot, currentNode, themeCSS }) {
|
|
5565
5670
|
if (themeCSS.trim() === "") {
|
|
5566
5671
|
currentNode?.remove();
|
|
@@ -5577,20 +5682,20 @@ function createHostThemeStyleNode() {
|
|
|
5577
5682
|
return node;
|
|
5578
5683
|
}
|
|
5579
5684
|
|
|
5580
|
-
// node_modules/.pnpm/@pierre+diffs@1.
|
|
5685
|
+
// node_modules/.pnpm/@pierre+diffs@1.5.1_@shikijs+themes@4.4.3_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@pierre/diffs/dist/utils/platform.js
|
|
5581
5686
|
var _isSafari = void 0;
|
|
5582
5687
|
function isSafari() {
|
|
5583
5688
|
return _isSafari ??= "safari" in window && "pushNotification" in window.safari || /^((?!chrome|android).)*safari/i.test(navigator.userAgent);
|
|
5584
5689
|
}
|
|
5585
5690
|
|
|
5586
|
-
// node_modules/.pnpm/@pierre+diffs@1.
|
|
5691
|
+
// node_modules/.pnpm/@pierre+diffs@1.5.1_@shikijs+themes@4.4.3_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@pierre/diffs/dist/utils/prerenderHTMLIfNecessary.js
|
|
5587
5692
|
function prerenderHTMLIfNecessary(element, html) {
|
|
5588
5693
|
if (html == null) return;
|
|
5589
5694
|
const shadowRoot = element.shadowRoot ?? element.attachShadow({ mode: "open" });
|
|
5590
5695
|
if (shadowRoot.innerHTML === "") shadowRoot.innerHTML = html;
|
|
5591
5696
|
}
|
|
5592
5697
|
|
|
5593
|
-
// node_modules/.pnpm/@pierre+diffs@1.
|
|
5698
|
+
// node_modules/.pnpm/@pierre+diffs@1.5.1_@shikijs+themes@4.4.3_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@pierre/diffs/dist/utils/setWrapperNodeProps.js
|
|
5594
5699
|
function setPreNodeProperties(pre, { type, diffIndicators, disableBackground, disableLineNumbers, overflow, split, totalLines, customProperties }) {
|
|
5595
5700
|
if (customProperties != null) for (const key in customProperties) {
|
|
5596
5701
|
const value = customProperties[key];
|
|
@@ -5610,7 +5715,6 @@ function setPreNodeProperties(pre, { type, diffIndicators, disableBackground, di
|
|
|
5610
5715
|
break;
|
|
5611
5716
|
case "none":
|
|
5612
5717
|
pre.removeAttribute("data-indicators");
|
|
5613
|
-
break;
|
|
5614
5718
|
}
|
|
5615
5719
|
if (disableLineNumbers) pre.setAttribute("data-disable-line-numbers", "");
|
|
5616
5720
|
else pre.removeAttribute("data-disable-line-numbers");
|
|
@@ -5623,7 +5727,7 @@ function setPreNodeProperties(pre, { type, diffIndicators, disableBackground, di
|
|
|
5623
5727
|
return pre;
|
|
5624
5728
|
}
|
|
5625
5729
|
|
|
5626
|
-
// node_modules/.pnpm/@pierre+diffs@1.
|
|
5730
|
+
// node_modules/.pnpm/@pierre+diffs@1.5.1_@shikijs+themes@4.4.3_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@pierre/diffs/dist/components/web-components.js
|
|
5627
5731
|
if (typeof HTMLElement !== "undefined" && customElements.get("diffs-container") == null) {
|
|
5628
5732
|
let sheet;
|
|
5629
5733
|
class FileDiffContainer extends HTMLElement {
|
|
@@ -5638,13 +5742,14 @@ if (typeof HTMLElement !== "undefined" && customElements.get("diffs-container")
|
|
|
5638
5742
|
shadowRoot.adoptedStyleSheets = [sheet];
|
|
5639
5743
|
}
|
|
5640
5744
|
connectedCallback() {
|
|
5641
|
-
|
|
5745
|
+
const shadowRoot = this.shadowRoot ?? this.attachShadow({ mode: "open" });
|
|
5746
|
+
getMeasuredScrollbarGutter(shadowRoot);
|
|
5642
5747
|
}
|
|
5643
5748
|
}
|
|
5644
5749
|
customElements.define(DIFFS_TAG_NAME, FileDiffContainer);
|
|
5645
5750
|
}
|
|
5646
5751
|
|
|
5647
|
-
// node_modules/.pnpm/@pierre+diffs@1.
|
|
5752
|
+
// node_modules/.pnpm/@pierre+diffs@1.5.1_@shikijs+themes@4.4.3_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@pierre/diffs/dist/utils/awaitWithTimeout.js
|
|
5648
5753
|
async function awaitWithTimeout(callback, timeout = 300) {
|
|
5649
5754
|
let timeoutId;
|
|
5650
5755
|
try {
|
|
@@ -5656,7 +5761,7 @@ async function awaitWithTimeout(callback, timeout = 300) {
|
|
|
5656
5761
|
}
|
|
5657
5762
|
}
|
|
5658
5763
|
|
|
5659
|
-
// node_modules/.pnpm/@pierre+diffs@1.
|
|
5764
|
+
// node_modules/.pnpm/@pierre+diffs@1.5.1_@shikijs+themes@4.4.3_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@pierre/diffs/dist/utils/computeEstimatedDiffHeights.js
|
|
5660
5765
|
function computeEstimatedDiffHeights({ fileDiff, metrics, disableFileHeader, hunkSeparators, expandUnchanged, expandedHunks: configuredExpandedHunks, collapsedContextThreshold, canHydratePartialDiff }) {
|
|
5661
5766
|
let splitHeight = getVirtualFileHeaderRegion(metrics, disableFileHeader);
|
|
5662
5767
|
let unifiedHeight = splitHeight;
|
|
@@ -5757,7 +5862,7 @@ function getChangeNoNewlineMetadataLineCounts(hunk, content) {
|
|
|
5757
5862
|
};
|
|
5758
5863
|
}
|
|
5759
5864
|
|
|
5760
|
-
// node_modules/.pnpm/@pierre+diffs@1.
|
|
5865
|
+
// node_modules/.pnpm/@pierre+diffs@1.5.1_@shikijs+themes@4.4.3_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@pierre/diffs/dist/utils/getDiffFileInput.js
|
|
5761
5866
|
function getDiffFileInput({ oldFile, newFile }, context) {
|
|
5762
5867
|
if (oldFile === void 0 && newFile === void 0) return;
|
|
5763
5868
|
if (oldFile === void 0 || newFile === void 0) throw new Error(`${context}: Pass null for an intentionally missing oldFile or newFile side`);
|
|
@@ -5778,7 +5883,7 @@ function getDiffFileInput({ oldFile, newFile }, context) {
|
|
|
5778
5883
|
};
|
|
5779
5884
|
}
|
|
5780
5885
|
|
|
5781
|
-
// node_modules/.pnpm/@pierre+diffs@1.
|
|
5886
|
+
// node_modules/.pnpm/@pierre+diffs@1.5.1_@shikijs+themes@4.4.3_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@pierre/diffs/dist/utils/cloneFileDiffMetadata.js
|
|
5782
5887
|
function cloneHunks(hunks) {
|
|
5783
5888
|
return hunks.map((hunk) => ({
|
|
5784
5889
|
...hunk,
|
|
@@ -5794,18 +5899,18 @@ function cloneFileDiffMetadata(fileDiff) {
|
|
|
5794
5899
|
};
|
|
5795
5900
|
}
|
|
5796
5901
|
|
|
5797
|
-
// node_modules/.pnpm/@pierre+diffs@1.
|
|
5902
|
+
// node_modules/.pnpm/@pierre+diffs@1.5.1_@shikijs+themes@4.4.3_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@pierre/diffs/dist/utils/composeCacheKey.js
|
|
5798
5903
|
var CACHE_KEY_VERSION = 1;
|
|
5799
5904
|
function composeCacheKey(scope, ...segments) {
|
|
5800
5905
|
return `ck${CACHE_KEY_VERSION}:${JSON.stringify([scope, ...segments])}`;
|
|
5801
5906
|
}
|
|
5802
5907
|
|
|
5803
|
-
// node_modules/.pnpm/@pierre+diffs@1.
|
|
5908
|
+
// node_modules/.pnpm/@pierre+diffs@1.5.1_@shikijs+themes@4.4.3_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@pierre/diffs/dist/utils/splitFileContents.js
|
|
5804
5909
|
function splitFileContents(contents) {
|
|
5805
5910
|
return contents !== "" ? contents.split(SPLIT_WITH_NEWLINES) : [];
|
|
5806
5911
|
}
|
|
5807
5912
|
|
|
5808
|
-
// node_modules/.pnpm/@pierre+diffs@1.
|
|
5913
|
+
// node_modules/.pnpm/@pierre+diffs@1.5.1_@shikijs+themes@4.4.3_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@pierre/diffs/dist/utils/hydratePartialDiff.js
|
|
5809
5914
|
function hydratePartialDiff(type, fileDiff, files) {
|
|
5810
5915
|
const targetFileDiff = type === "clone" ? cloneFileDiffMetadata(fileDiff) : fileDiff;
|
|
5811
5916
|
if (!targetFileDiff.isPartial) throw new Error("hydratePartialDiff: fileDiff must be partial");
|
|
@@ -5938,7 +6043,7 @@ function getLoadedFileCacheKey(oldFile, newFile) {
|
|
|
5938
6043
|
return oldFile?.cacheKey ?? newFile?.cacheKey;
|
|
5939
6044
|
}
|
|
5940
6045
|
|
|
5941
|
-
// node_modules/.pnpm/@pierre+diffs@1.
|
|
6046
|
+
// node_modules/.pnpm/@pierre+diffs@1.5.1_@shikijs+themes@4.4.3_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@pierre/diffs/dist/utils/detachString.js
|
|
5942
6047
|
var stringDetachEncoder = new TextEncoder();
|
|
5943
6048
|
var stringDetachDecoder = new TextDecoder("utf-8", { ignoreBOM: true });
|
|
5944
6049
|
var SURROGATE_CODE_UNIT_PATTERN = /[\uD800-\uDFFF]/;
|
|
@@ -5956,24 +6061,72 @@ function detachString(value) {
|
|
|
5956
6061
|
return stringDetachDecoder.decode(stringDetachBuffer.subarray(0, written));
|
|
5957
6062
|
}
|
|
5958
6063
|
|
|
5959
|
-
// node_modules/.pnpm/@pierre+diffs@1.
|
|
6064
|
+
// node_modules/.pnpm/@pierre+diffs@1.5.1_@shikijs+themes@4.4.3_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@pierre/diffs/dist/utils/parseQuotedDiffFileName.js
|
|
6065
|
+
var filenameDecoder = new TextDecoder("utf-8", { ignoreBOM: true });
|
|
6066
|
+
var NAMED_ESCAPES = {
|
|
6067
|
+
'"': '"',
|
|
6068
|
+
"\\": "\\",
|
|
6069
|
+
a: "\x07",
|
|
6070
|
+
b: "\b",
|
|
6071
|
+
t: " ",
|
|
6072
|
+
n: "\n",
|
|
6073
|
+
v: "\v",
|
|
6074
|
+
f: "\f",
|
|
6075
|
+
r: "\r"
|
|
6076
|
+
};
|
|
6077
|
+
function parseQuotedDiffFileName(input) {
|
|
6078
|
+
if (input[0] !== '"') return;
|
|
6079
|
+
let fileName = "";
|
|
6080
|
+
let index = 1;
|
|
6081
|
+
while (index < input.length) {
|
|
6082
|
+
const char = input[index];
|
|
6083
|
+
if (char === '"') return {
|
|
6084
|
+
fileName,
|
|
6085
|
+
rawLength: index + 1
|
|
6086
|
+
};
|
|
6087
|
+
if (char !== "\\") {
|
|
6088
|
+
fileName += char;
|
|
6089
|
+
index++;
|
|
6090
|
+
continue;
|
|
6091
|
+
}
|
|
6092
|
+
const escaped = NAMED_ESCAPES[input[index + 1]];
|
|
6093
|
+
if (escaped != null) {
|
|
6094
|
+
fileName += escaped;
|
|
6095
|
+
index += 2;
|
|
6096
|
+
continue;
|
|
6097
|
+
}
|
|
6098
|
+
const bytes = [];
|
|
6099
|
+
do {
|
|
6100
|
+
const byte = readOctalByte(input, index + 1);
|
|
6101
|
+
if (byte == null) return;
|
|
6102
|
+
bytes.push(byte);
|
|
6103
|
+
index += 4;
|
|
6104
|
+
} while (input[index] === "\\" && input[index + 1] >= "0" && input[index + 1] <= "7");
|
|
6105
|
+
fileName += filenameDecoder.decode(new Uint8Array(bytes));
|
|
6106
|
+
}
|
|
6107
|
+
}
|
|
6108
|
+
function readOctalByte(input, index) {
|
|
6109
|
+
const first = input.charCodeAt(index) - 48;
|
|
6110
|
+
const second = input.charCodeAt(index + 1) - 48;
|
|
6111
|
+
const third = input.charCodeAt(index + 2) - 48;
|
|
6112
|
+
if (first >= 0 && first <= 3 && second >= 0 && second <= 7 && third >= 0 && third <= 7) return first * 64 + second * 8 + third;
|
|
6113
|
+
}
|
|
6114
|
+
|
|
6115
|
+
// node_modules/.pnpm/@pierre+diffs@1.5.1_@shikijs+themes@4.4.3_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@pierre/diffs/dist/utils/realignChangeContent.js
|
|
5960
6116
|
var MAX_ALIGNMENT_COMPARISONS = 4096;
|
|
5961
6117
|
var MIN_IMPROVEMENT_PER_PAIR = 0.5;
|
|
5962
6118
|
function realignChangeContentBySimilarity(diff) {
|
|
5963
|
-
for (const hunk of diff.hunks) {
|
|
5964
|
-
|
|
5965
|
-
|
|
5966
|
-
|
|
5967
|
-
|
|
5968
|
-
|
|
5969
|
-
|
|
5970
|
-
index += replacement.length - 1;
|
|
5971
|
-
}
|
|
6119
|
+
for (const hunk of diff.hunks) for (let index = 0; index < hunk.hunkContent.length; index++) {
|
|
6120
|
+
const content = hunk.hunkContent[index];
|
|
6121
|
+
if (content.type !== "change") continue;
|
|
6122
|
+
const replacement = realignChangeBlock(diff, content);
|
|
6123
|
+
if (replacement != null) {
|
|
6124
|
+
hunk.hunkContent.splice(index, 1, ...replacement);
|
|
6125
|
+
index += replacement.length - 1;
|
|
5972
6126
|
}
|
|
5973
|
-
slideBlankBoundaryBlocksUp(hunk, diff);
|
|
5974
6127
|
}
|
|
5975
6128
|
}
|
|
5976
|
-
function slideBlankBoundaryBlocksUp(hunk, diff) {
|
|
6129
|
+
function slideBlankBoundaryBlocksUp(hunk, diff, resolveSlide) {
|
|
5977
6130
|
const { hunkContent } = hunk;
|
|
5978
6131
|
for (let index = 1; index < hunkContent.length; index++) {
|
|
5979
6132
|
const block = hunkContent[index];
|
|
@@ -5995,6 +6148,10 @@ function slideBlankBoundaryBlocksUp(hunk, diff) {
|
|
|
5995
6148
|
while (slide < previous.lines && diff.additionLines[previous.additionLineIndex + previous.lines - 1 - slide] === unit) slide++;
|
|
5996
6149
|
if (slide === 0) continue;
|
|
5997
6150
|
if (index === 1 && slide === previous.lines) continue;
|
|
6151
|
+
if (resolveSlide != null) {
|
|
6152
|
+
slide = resolveSlide(block, slide);
|
|
6153
|
+
if (slide === 0) continue;
|
|
6154
|
+
}
|
|
5998
6155
|
block.additionLineIndex -= slide;
|
|
5999
6156
|
block.deletionLineIndex -= slide;
|
|
6000
6157
|
const blockAdditionEnd = block.additionLineIndex + block.additions;
|
|
@@ -6076,7 +6233,8 @@ function lineSimilarity(a, b) {
|
|
|
6076
6233
|
return (prefix + suffix) / maxLength;
|
|
6077
6234
|
}
|
|
6078
6235
|
|
|
6079
|
-
// node_modules/.pnpm/@pierre+diffs@1.
|
|
6236
|
+
// node_modules/.pnpm/@pierre+diffs@1.5.1_@shikijs+themes@4.4.3_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@pierre/diffs/dist/utils/parsePatchFiles.js
|
|
6237
|
+
var GIT_DIFF_HEADER_FILENAMES = /^diff --git ("a\/(?:[^"\\]|\\.)*"|a\/.+?) ("b\/(?:[^"\\]|\\.)*"|b\/.+?)$/;
|
|
6080
6238
|
function processFile(fileDiffString, options) {
|
|
6081
6239
|
try {
|
|
6082
6240
|
return _processFile(fileDiffString, options);
|
|
@@ -6123,26 +6281,27 @@ function _processFile(fileDiffString, { cacheKey, isGitDiff = GIT_DIFF_FILE_BREA
|
|
|
6123
6281
|
if (currentFile.deletionLines.length === 1 && oldFile?.contents === "") currentFile.deletionLines.length = 0;
|
|
6124
6282
|
for (const line of lines) {
|
|
6125
6283
|
if (line.startsWith("diff --git")) {
|
|
6126
|
-
const filenameMatch2 = line.trim().match(
|
|
6127
|
-
|
|
6128
|
-
const name = filenameMatch2?.[3] ?? filenameMatch2?.[4];
|
|
6129
|
-
if (prevName == null || name == null) {
|
|
6284
|
+
const filenameMatch2 = line.trim().match(GIT_DIFF_HEADER_FILENAMES);
|
|
6285
|
+
if (filenameMatch2 == null) {
|
|
6130
6286
|
if (throwOnError) throw Error("parsePatchContent: invalid git diff header");
|
|
6131
6287
|
else console.error("parsePatchContent: invalid git diff header", line);
|
|
6132
6288
|
continue;
|
|
6133
6289
|
}
|
|
6134
|
-
|
|
6135
|
-
|
|
6290
|
+
const prevName = decodeDiffFileName(filenameMatch2[1], true);
|
|
6291
|
+
const name = decodeDiffFileName(filenameMatch2[2], true);
|
|
6292
|
+
currentFile.name = detachString(name);
|
|
6293
|
+
if (prevName !== name) currentFile.prevName = detachString(prevName);
|
|
6136
6294
|
continue;
|
|
6137
6295
|
}
|
|
6138
|
-
const filenameMatch = line.startsWith("---") || line.startsWith("+++") ? line.match(
|
|
6296
|
+
const filenameMatch = line.startsWith("---") || line.startsWith("+++") ? line.match(FILENAME_HEADER_REGEX) : null;
|
|
6139
6297
|
if (filenameMatch != null) {
|
|
6140
|
-
const [, type,
|
|
6298
|
+
const [, type, rawFileName] = filenameMatch;
|
|
6299
|
+
const fileName = decodeDiffFileName(rawFileName, isGitDiff);
|
|
6141
6300
|
if (type === "---" && fileName !== "/dev/null") {
|
|
6142
|
-
const detachedFileName = detachString(fileName
|
|
6301
|
+
const detachedFileName = detachString(fileName);
|
|
6143
6302
|
currentFile.prevName = detachedFileName;
|
|
6144
6303
|
currentFile.name = detachedFileName;
|
|
6145
|
-
} else if (type === "+++" && fileName !== "/dev/null") currentFile.name = detachString(fileName
|
|
6304
|
+
} else if (type === "+++" && fileName !== "/dev/null") currentFile.name = detachString(fileName);
|
|
6146
6305
|
} else if (isGitDiff) {
|
|
6147
6306
|
if (line.startsWith("new mode ")) currentFile.mode = detachString(line.slice(8).trim());
|
|
6148
6307
|
if (line.startsWith("old mode ")) currentFile.prevMode = detachString(line.slice(8).trim());
|
|
@@ -6154,16 +6313,18 @@ function _processFile(fileDiffString, { cacheKey, isGitDiff = GIT_DIFF_FILE_BREA
|
|
|
6154
6313
|
currentFile.type = "deleted";
|
|
6155
6314
|
currentFile.mode = detachString(line.slice(17).trim());
|
|
6156
6315
|
}
|
|
6157
|
-
if (line.startsWith("similarity index"))
|
|
6158
|
-
|
|
6316
|
+
if (line.startsWith("similarity index")) {
|
|
6317
|
+
if (line.startsWith("similarity index 100%")) currentFile.type = "rename-pure";
|
|
6318
|
+
else currentFile.type = "rename-changed";
|
|
6319
|
+
}
|
|
6159
6320
|
if (line.startsWith("index ")) {
|
|
6160
6321
|
const [, prevObjectId, newObjectId, mode] = line.trim().match(INDEX_LINE_METADATA) ?? [];
|
|
6161
6322
|
if (prevObjectId != null) currentFile.prevObjectId = detachString(prevObjectId);
|
|
6162
6323
|
if (newObjectId != null) currentFile.newObjectId = detachString(newObjectId);
|
|
6163
6324
|
if (mode != null) currentFile.mode = detachString(mode);
|
|
6164
6325
|
}
|
|
6165
|
-
if (line.startsWith("rename from ")) currentFile.prevName = detachString(line.slice(
|
|
6166
|
-
if (line.startsWith("rename to ")) currentFile.name = detachString(line.slice(
|
|
6326
|
+
if (line.startsWith("rename from ") || line.startsWith("copy from ")) currentFile.prevName = detachString(decodeDiffFileName(line.slice(line.startsWith("rename") ? 12 : 10)));
|
|
6327
|
+
if (line.startsWith("rename to ") || line.startsWith("copy to ")) currentFile.name = detachString(decodeDiffFileName(line.slice(line.startsWith("rename") ? 10 : 8)));
|
|
6167
6328
|
}
|
|
6168
6329
|
}
|
|
6169
6330
|
continue;
|
|
@@ -6317,15 +6478,21 @@ function _processFile(fileDiffString, { cacheKey, isGitDiff = GIT_DIFF_FILE_BREA
|
|
|
6317
6478
|
currentFile.unifiedLineCount += collapsedAfter;
|
|
6318
6479
|
}
|
|
6319
6480
|
if (!isGitDiff) {
|
|
6320
|
-
if (currentFile.prevName != null && currentFile.name !== currentFile.prevName)
|
|
6321
|
-
|
|
6322
|
-
|
|
6481
|
+
if (currentFile.prevName != null && currentFile.name !== currentFile.prevName) {
|
|
6482
|
+
if (currentFile.hunks.length > 0) currentFile.type = "rename-changed";
|
|
6483
|
+
else currentFile.type = "rename-pure";
|
|
6484
|
+
} else if ((oldFile == null || oldFile.contents === "") && newFile != null && newFile.contents !== "") currentFile.type = "new";
|
|
6323
6485
|
else if (oldFile != null && oldFile.contents !== "" && (newFile == null || newFile.contents === "")) currentFile.type = "deleted";
|
|
6324
6486
|
}
|
|
6325
6487
|
if (currentFile.type !== "rename-pure" && currentFile.type !== "rename-changed") currentFile.prevName = void 0;
|
|
6326
6488
|
realignChangeContentBySimilarity(currentFile);
|
|
6327
6489
|
return currentFile;
|
|
6328
6490
|
}
|
|
6491
|
+
function decodeDiffFileName(value, stripGitPrefix = false) {
|
|
6492
|
+
const rawName = value.trim();
|
|
6493
|
+
const name = rawName.startsWith('"') ? parseQuotedDiffFileName(rawName)?.fileName ?? rawName : rawName;
|
|
6494
|
+
return stripGitPrefix && (name.startsWith("a/") || name.startsWith("b/")) ? name.slice(2) : name;
|
|
6495
|
+
}
|
|
6329
6496
|
function splitFileContents2(contents) {
|
|
6330
6497
|
const lines = splitWithNewlines(contents);
|
|
6331
6498
|
for (let index = 0; index < lines.length; index++) lines[index] = detachString(lines[index]);
|
|
@@ -6462,13 +6629,14 @@ function createContentGroup(type, deletionLineIndex, additionLineIndex) {
|
|
|
6462
6629
|
};
|
|
6463
6630
|
}
|
|
6464
6631
|
|
|
6465
|
-
// node_modules/.pnpm/@pierre+diffs@1.
|
|
6632
|
+
// node_modules/.pnpm/@pierre+diffs@1.5.1_@shikijs+themes@4.4.3_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@pierre/diffs/dist/utils/parseDiffFromFile.js
|
|
6466
6633
|
var MISSING_FILE_NAME = "/dev/null";
|
|
6467
6634
|
function parseDiffFromFile(oldFile, newFile, options, throwOnError = false) {
|
|
6468
6635
|
if (oldFile === null && newFile === null) throw new Error("parseDiffFromFile: You must pass oldFile, newFile, or both");
|
|
6469
6636
|
const resolvedOldFile = oldFile ?? createMissingFile();
|
|
6470
6637
|
const resolvedNewFile = newFile ?? createMissingFile();
|
|
6471
|
-
const
|
|
6638
|
+
const patch = createTwoFilesPatch(resolvedOldFile.name, resolvedNewFile.name, resolvedOldFile.contents, resolvedNewFile.contents, resolvedOldFile.header, resolvedNewFile.header, options);
|
|
6639
|
+
const fileData = processFile(patch, {
|
|
6472
6640
|
cacheKey: (() => {
|
|
6473
6641
|
const oldCacheKey = oldFile?.cacheKey;
|
|
6474
6642
|
const newCacheKey = newFile?.cacheKey;
|
|
@@ -6497,7 +6665,7 @@ function createMissingFile() {
|
|
|
6497
6665
|
};
|
|
6498
6666
|
}
|
|
6499
6667
|
|
|
6500
|
-
// node_modules/.pnpm/@pierre+diffs@1.
|
|
6668
|
+
// node_modules/.pnpm/@pierre+diffs@1.5.1_@shikijs+themes@4.4.3_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@pierre/diffs/dist/managers/ScrollSyncManager.js
|
|
6501
6669
|
var ScrollSyncManager = class {
|
|
6502
6670
|
isDeletionsScrolling = false;
|
|
6503
6671
|
isAdditionsScrolling = false;
|
|
@@ -6556,7 +6724,7 @@ var ScrollSyncManager = class {
|
|
|
6556
6724
|
};
|
|
6557
6725
|
};
|
|
6558
6726
|
|
|
6559
|
-
// node_modules/.pnpm/@pierre+diffs@1.
|
|
6727
|
+
// node_modules/.pnpm/@pierre+diffs@1.5.1_@shikijs+themes@4.4.3_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@pierre/diffs/dist/utils/updateDiffHunks.js
|
|
6560
6728
|
function recomputeDiffHunks(diff, parseDiffOptions) {
|
|
6561
6729
|
const recomputed = parseDiffFromFile({
|
|
6562
6730
|
name: diff.prevName ?? diff.name,
|
|
@@ -6784,7 +6952,7 @@ function recomputeDiffRenderLineCounts(diff) {
|
|
|
6784
6952
|
diff.unifiedLineCount = unifiedTotal;
|
|
6785
6953
|
}
|
|
6786
6954
|
|
|
6787
|
-
// node_modules/.pnpm/@pierre+diffs@1.
|
|
6955
|
+
// node_modules/.pnpm/@pierre+diffs@1.5.1_@shikijs+themes@4.4.3_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@pierre/diffs/dist/utils/editSessionHunks.js
|
|
6788
6956
|
var deletionLineSetCache = /* @__PURE__ */ new WeakMap();
|
|
6789
6957
|
function normalizeEditorLines(lines) {
|
|
6790
6958
|
if (lines.length > 1 && lines[lines.length - 1] === "") return lines.slice(0, -1);
|
|
@@ -6807,7 +6975,7 @@ function findDivergenceCore(deletionLines, additionLines) {
|
|
|
6807
6975
|
additionEnd
|
|
6808
6976
|
};
|
|
6809
6977
|
}
|
|
6810
|
-
function rebuildSessionHunks(diff, parseDiffOptions) {
|
|
6978
|
+
function rebuildSessionHunks(diff, parseDiffOptions, getPreviousAdditionLine) {
|
|
6811
6979
|
const previousHunks = diff.hunks;
|
|
6812
6980
|
const editorAdditionLines = diff.additionLines;
|
|
6813
6981
|
const canonicalAdditionLines = normalizeEditorLines(editorAdditionLines);
|
|
@@ -6815,7 +6983,7 @@ function rebuildSessionHunks(diff, parseDiffOptions) {
|
|
|
6815
6983
|
...diff,
|
|
6816
6984
|
additionLines: canonicalAdditionLines
|
|
6817
6985
|
};
|
|
6818
|
-
const plans = buildRegionPlans(previousHunks,
|
|
6986
|
+
const plans = buildRegionPlans(previousHunks, parseSessionChangeBlocks(canonicalDiff, parseDiffOptions, getPreviousAdditionLine), diff.deletionLines.length);
|
|
6819
6987
|
const nextHunks = buildRegionHunks(canonicalDiff, plans);
|
|
6820
6988
|
diff.additionLines = canonicalAdditionLines;
|
|
6821
6989
|
diff.hunks = nextHunks;
|
|
@@ -6826,8 +6994,10 @@ function rebuildSessionHunks(diff, parseDiffOptions) {
|
|
|
6826
6994
|
return { regions: plans.map((plan) => plan.previousSpan) };
|
|
6827
6995
|
}
|
|
6828
6996
|
function applySessionChangedLines(diff, changedAdditionLineIndexes, parseDiffOptions, previousAdditionLines) {
|
|
6829
|
-
const
|
|
6997
|
+
const changedLines = new Set(changedAdditionLineIndexes);
|
|
6998
|
+
const lines = Array.from(changedLines).filter((line) => line >= 0 && line < diff.additionLines.length).sort((a, b) => a - b);
|
|
6830
6999
|
if (lines.length === 0) return;
|
|
7000
|
+
const getPreviousAdditionLine = (index) => changedLines.has(index) ? previousAdditionLines?.get(index) : diff.additionLines[index];
|
|
6831
7001
|
const { hunks } = diff;
|
|
6832
7002
|
let regionIndex;
|
|
6833
7003
|
let hunkIndex = 0;
|
|
@@ -6839,7 +7009,7 @@ function applySessionChangedLines(diff, changedAdditionLineIndexes, parseDiffOpt
|
|
|
6839
7009
|
}
|
|
6840
7010
|
const hunk = hunks[hunkIndex];
|
|
6841
7011
|
const start = hunk == null ? void 0 : getHunkAdditionStart(hunk);
|
|
6842
|
-
if (start == null || line < start || regionIndex != null && regionIndex !== hunkIndex) return rebuildSessionHunks(diff, parseDiffOptions);
|
|
7012
|
+
if (start == null || line < start || regionIndex != null && regionIndex !== hunkIndex) return rebuildSessionHunks(diff, parseDiffOptions, getPreviousAdditionLine);
|
|
6843
7013
|
regionIndex = hunkIndex;
|
|
6844
7014
|
}
|
|
6845
7015
|
if (regionIndex == null) return;
|
|
@@ -6847,7 +7017,7 @@ function applySessionChangedLines(diff, changedAdditionLineIndexes, parseDiffOpt
|
|
|
6847
7017
|
diff.editSessionDirty = true;
|
|
6848
7018
|
return;
|
|
6849
7019
|
}
|
|
6850
|
-
return rebuildSessionHunks(diff, parseDiffOptions);
|
|
7020
|
+
return rebuildSessionHunks(diff, parseDiffOptions, getPreviousAdditionLine);
|
|
6851
7021
|
}
|
|
6852
7022
|
function canRetainCanonicalBlocks(diff, changedLines, regionIndex, previousAdditionLines, parseDiffOptions) {
|
|
6853
7023
|
if (previousAdditionLines == null || parseDiffOptions?.ignoreWhitespace === true || parseDiffOptions?.stripTrailingCr === true) return false;
|
|
@@ -6959,7 +7129,7 @@ function finishEditSessionForDiff(diff, parseDiffOptions) {
|
|
|
6959
7129
|
Object.assign(diff, diff.additionLines.length <= 1 && diff.additionLines.join("") === "" ? recomputeDiffHunks(diff, parseDiffOptions) : recomputeDiffHunksForEdit(diff, parseDiffOptions));
|
|
6960
7130
|
return true;
|
|
6961
7131
|
}
|
|
6962
|
-
function
|
|
7132
|
+
function parseSessionChangeBlocks(diff, parseDiffOptions, getPreviousAdditionLine) {
|
|
6963
7133
|
if (findDivergenceCore(diff.deletionLines, diff.additionLines) == null) return [];
|
|
6964
7134
|
const parsed = parseDiffFromFile({
|
|
6965
7135
|
name: diff.prevName ?? diff.name,
|
|
@@ -6969,10 +7139,24 @@ function parseCanonicalChangeBlocks(diff, parseDiffOptions) {
|
|
|
6969
7139
|
contents: diff.additionLines.join(""),
|
|
6970
7140
|
lang: diff.lang
|
|
6971
7141
|
}, parseDiffOptions);
|
|
7142
|
+
let previousBlocks;
|
|
7143
|
+
const resolveSlide = (block, maxSlide) => {
|
|
7144
|
+
previousBlocks ??= collectPureChangeBlocks(diff.hunks);
|
|
7145
|
+
for (let offset = 0; offset <= maxSlide; offset++) {
|
|
7146
|
+
const previous = previousBlocks.get(block.deletionLineIndex - offset);
|
|
7147
|
+
if (previous == null || previous.additions !== block.additions || previous.deletions !== block.deletions) continue;
|
|
7148
|
+
if (block.additions > 0 && getPreviousAdditionLine != null) {
|
|
7149
|
+
for (let line = 0; line < block.additions; line++) if (getPreviousAdditionLine(previous.additionLineIndex + line) !== parsed.additionLines[block.additionLineIndex + line]) return maxSlide;
|
|
7150
|
+
}
|
|
7151
|
+
return offset;
|
|
7152
|
+
}
|
|
7153
|
+
return maxSlide;
|
|
7154
|
+
};
|
|
6972
7155
|
const blocks = [];
|
|
6973
7156
|
let coveredAdditions = 0;
|
|
6974
7157
|
let coveredDeletions = 0;
|
|
6975
7158
|
for (const hunk of parsed.hunks) {
|
|
7159
|
+
slideBlankBoundaryBlocksUp(hunk, parsed, resolveSlide);
|
|
6976
7160
|
const contextLines = hunk.additionCount > 0 ? hunk.additionLineIndex - coveredAdditions : hunk.deletionLineIndex - coveredDeletions;
|
|
6977
7161
|
coveredAdditions += contextLines;
|
|
6978
7162
|
coveredDeletions += contextLines;
|
|
@@ -6992,6 +7176,11 @@ function parseCanonicalChangeBlocks(diff, parseDiffOptions) {
|
|
|
6992
7176
|
}
|
|
6993
7177
|
return blocks;
|
|
6994
7178
|
}
|
|
7179
|
+
function collectPureChangeBlocks(hunks) {
|
|
7180
|
+
const blocks = /* @__PURE__ */ new Map();
|
|
7181
|
+
for (const hunk of hunks) for (const content of hunk.hunkContent) if (content.type === "change" && (content.additions === 0 || content.deletions === 0)) blocks.set(content.deletionLineIndex, content);
|
|
7182
|
+
return blocks;
|
|
7183
|
+
}
|
|
6995
7184
|
function buildRegionPlans(previousHunks, blocks, deletionLineCount) {
|
|
6996
7185
|
const previousPlans = previousHunks.map((hunk, index) => {
|
|
6997
7186
|
const deletionStart = getHunkDeletionStart(hunk);
|
|
@@ -7183,7 +7372,7 @@ function finalizeSessionHunks(diff) {
|
|
|
7183
7372
|
for (let index = 0; index < diff.hunks.length; index++) syncHunkNoEOFCRFromFullFile(diff, index);
|
|
7184
7373
|
}
|
|
7185
7374
|
|
|
7186
|
-
// node_modules/.pnpm/@pierre+diffs@1.
|
|
7375
|
+
// node_modules/.pnpm/@pierre+diffs@1.5.1_@shikijs+themes@4.4.3_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@pierre/diffs/dist/utils/createEmptyRowBuffer.js
|
|
7187
7376
|
function createEmptyRowBuffer(size) {
|
|
7188
7377
|
return createHastElement({
|
|
7189
7378
|
tagName: "div",
|
|
@@ -7195,7 +7384,7 @@ function createEmptyRowBuffer(size) {
|
|
|
7195
7384
|
});
|
|
7196
7385
|
}
|
|
7197
7386
|
|
|
7198
|
-
// node_modules/.pnpm/@pierre+diffs@1.
|
|
7387
|
+
// node_modules/.pnpm/@pierre+diffs@1.5.1_@shikijs+themes@4.4.3_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@pierre/diffs/dist/utils/createNoNewlineElement.js
|
|
7199
7388
|
function createNoNewlineElement(type) {
|
|
7200
7389
|
return createHastElement({
|
|
7201
7390
|
tagName: "div",
|
|
@@ -7211,7 +7400,7 @@ function createNoNewlineElement(type) {
|
|
|
7211
7400
|
});
|
|
7212
7401
|
}
|
|
7213
7402
|
|
|
7214
|
-
// node_modules/.pnpm/@pierre+diffs@1.
|
|
7403
|
+
// node_modules/.pnpm/@pierre+diffs@1.5.1_@shikijs+themes@4.4.3_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@pierre/diffs/dist/utils/createSeparator.js
|
|
7215
7404
|
function createExpandButton(type) {
|
|
7216
7405
|
return createHastElement({
|
|
7217
7406
|
tagName: "div",
|
|
@@ -7238,17 +7427,19 @@ function createSeparator({ type, content, expandIndex, chunked = false, slotName
|
|
|
7238
7427
|
}));
|
|
7239
7428
|
if ((type === "line-info" || type === "line-info-basic") && content != null) {
|
|
7240
7429
|
const contentChildren = [];
|
|
7241
|
-
if (expandIndex != null)
|
|
7242
|
-
|
|
7243
|
-
|
|
7244
|
-
} else {
|
|
7245
|
-
if (!isFirstHunk) {
|
|
7246
|
-
contentChildren.push(createExpandButton("up"));
|
|
7247
|
-
buttonCount++;
|
|
7248
|
-
}
|
|
7249
|
-
if (!isLastHunk) {
|
|
7250
|
-
contentChildren.push(createExpandButton("down"));
|
|
7430
|
+
if (expandIndex != null) {
|
|
7431
|
+
if (!chunked) {
|
|
7432
|
+
contentChildren.push(createExpandButton(!isFirstHunk && !isLastHunk ? "both" : isFirstHunk ? "down" : "up"));
|
|
7251
7433
|
buttonCount++;
|
|
7434
|
+
} else {
|
|
7435
|
+
if (!isFirstHunk) {
|
|
7436
|
+
contentChildren.push(createExpandButton("up"));
|
|
7437
|
+
buttonCount++;
|
|
7438
|
+
}
|
|
7439
|
+
if (!isLastHunk) {
|
|
7440
|
+
contentChildren.push(createExpandButton("down"));
|
|
7441
|
+
buttonCount++;
|
|
7442
|
+
}
|
|
7252
7443
|
}
|
|
7253
7444
|
}
|
|
7254
7445
|
contentChildren.push(createHastElement({
|
|
@@ -7294,19 +7485,19 @@ function createSeparator({ type, content, expandIndex, chunked = false, slotName
|
|
|
7294
7485
|
});
|
|
7295
7486
|
}
|
|
7296
7487
|
|
|
7297
|
-
// node_modules/.pnpm/@pierre+diffs@1.
|
|
7488
|
+
// node_modules/.pnpm/@pierre+diffs@1.5.1_@shikijs+themes@4.4.3_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@pierre/diffs/dist/utils/getHunkSeparatorSlotName.js
|
|
7298
7489
|
function getHunkSeparatorSlotName(type, hunkIndex) {
|
|
7299
7490
|
return `hunk-separator-${type}-${hunkIndex}`;
|
|
7300
7491
|
}
|
|
7301
7492
|
|
|
7302
|
-
// node_modules/.pnpm/@pierre+diffs@1.
|
|
7493
|
+
// node_modules/.pnpm/@pierre+diffs@1.5.1_@shikijs+themes@4.4.3_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@pierre/diffs/dist/utils/getTotalLineCountFromHunks.js
|
|
7303
7494
|
function getTotalLineCountFromHunks(hunks) {
|
|
7304
7495
|
const lastHunk = hunks.at(-1);
|
|
7305
7496
|
if (lastHunk == null) return 0;
|
|
7306
7497
|
return Math.max(getHunkSideEndBoundary(lastHunk.additionStart, lastHunk.additionCount), getHunkSideEndBoundary(lastHunk.deletionStart, lastHunk.deletionCount));
|
|
7307
7498
|
}
|
|
7308
7499
|
|
|
7309
|
-
// node_modules/.pnpm/@pierre+diffs@1.
|
|
7500
|
+
// node_modules/.pnpm/@pierre+diffs@1.5.1_@shikijs+themes@4.4.3_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@pierre/diffs/dist/renderers/DiffHunksRenderer.js
|
|
7310
7501
|
var instanceId = -1;
|
|
7311
7502
|
var DiffHunksRenderer = class {
|
|
7312
7503
|
options;
|
|
@@ -7319,7 +7510,7 @@ var DiffHunksRenderer = class {
|
|
|
7319
7510
|
expandedHunks = /* @__PURE__ */ new Map();
|
|
7320
7511
|
deletionAnnotations = {};
|
|
7321
7512
|
additionAnnotations = {};
|
|
7322
|
-
|
|
7513
|
+
computedLangs = ["text"];
|
|
7323
7514
|
renderCache;
|
|
7324
7515
|
pendingHighlightResult;
|
|
7325
7516
|
pendingStructuralRows;
|
|
@@ -7332,6 +7523,7 @@ var DiffHunksRenderer = class {
|
|
|
7332
7523
|
if (workerManager?.isWorkingPool() !== true) this.highlighter = areThemesAttached(options.theme ?? DEFAULT_THEMES) ? getHighlighterIfLoaded() : void 0;
|
|
7333
7524
|
}
|
|
7334
7525
|
cleanUp() {
|
|
7526
|
+
this.endEditSession();
|
|
7335
7527
|
this.recycle();
|
|
7336
7528
|
this.expandedHunks.clear();
|
|
7337
7529
|
this.workerManager = void 0;
|
|
@@ -7340,11 +7532,14 @@ var DiffHunksRenderer = class {
|
|
|
7340
7532
|
recycle() {
|
|
7341
7533
|
this.highlighter = void 0;
|
|
7342
7534
|
this.diff = void 0;
|
|
7343
|
-
this.
|
|
7535
|
+
if (this.editSessionActive) {
|
|
7536
|
+
if (this.renderCache != null) this.renderCache.renderRange = void 0;
|
|
7537
|
+
this.pendingHighlightResult = void 0;
|
|
7538
|
+
this.pendingStructuralRows = void 0;
|
|
7539
|
+
} else this.clearRenderCache();
|
|
7344
7540
|
this.additionAnnotations = {};
|
|
7345
7541
|
this.deletionAnnotations = {};
|
|
7346
7542
|
this.workerManager?.cleanUpTasks(this);
|
|
7347
|
-
this.endEditSession();
|
|
7348
7543
|
}
|
|
7349
7544
|
/**
|
|
7350
7545
|
* Enter edit-session mode: hunk updates preserve the current region
|
|
@@ -7356,10 +7551,12 @@ var DiffHunksRenderer = class {
|
|
|
7356
7551
|
* empty additions document gets one row for the editor's caret.
|
|
7357
7552
|
*/
|
|
7358
7553
|
beginEditSession(diff, externalDiff) {
|
|
7359
|
-
const { editSessionActive: wasAlreadyActive
|
|
7554
|
+
const { editSessionActive: wasAlreadyActive } = this;
|
|
7360
7555
|
this.editSessionActive = true;
|
|
7361
7556
|
if (!wasAlreadyActive) this.pendingHighlightResult = void 0;
|
|
7362
7557
|
this.diff = diff;
|
|
7558
|
+
if (wasAlreadyActive && this.renderCache != null && this.renderCache.diff !== diff) this.clearRenderCache();
|
|
7559
|
+
const { renderCache } = this;
|
|
7363
7560
|
if (!diff.isPartial && diff.additionLines.length === 0) {
|
|
7364
7561
|
Object.assign(diff, recomputeEmptyDocumentDiff(diff, this.options.parseDiffOptions));
|
|
7365
7562
|
this.markEditSessionPass(diff);
|
|
@@ -7395,6 +7592,7 @@ var DiffHunksRenderer = class {
|
|
|
7395
7592
|
endEditSession() {
|
|
7396
7593
|
this.editSessionActive = false;
|
|
7397
7594
|
this.pendingHighlightResult = void 0;
|
|
7595
|
+
if (this.diff == null) this.clearRenderCache();
|
|
7398
7596
|
}
|
|
7399
7597
|
/**
|
|
7400
7598
|
* Ensures that the DOM is compatible with editor render updates
|
|
@@ -7558,18 +7756,21 @@ var DiffHunksRenderer = class {
|
|
|
7558
7756
|
else hastLines[line] = row;
|
|
7559
7757
|
}
|
|
7560
7758
|
let regionsChanged = false;
|
|
7561
|
-
if (changedAdditionLines.length > 0)
|
|
7562
|
-
|
|
7563
|
-
|
|
7564
|
-
|
|
7565
|
-
|
|
7566
|
-
|
|
7567
|
-
|
|
7568
|
-
|
|
7569
|
-
|
|
7570
|
-
|
|
7759
|
+
if (changedAdditionLines.length > 0) {
|
|
7760
|
+
if (this.editSessionActive) {
|
|
7761
|
+
if (diff.additionLines.length <= 1 && diff.additionLines.join("") === "") {
|
|
7762
|
+
this.applyRecomputePreservingSessionType(diff, recomputeEmptyDocumentDiff(diff, this.options.parseDiffOptions));
|
|
7763
|
+
regionsChanged = true;
|
|
7764
|
+
} else if (shouldTopAlignAdditionRecompute(diff, diff.additionLines)) {
|
|
7765
|
+
this.applyRecomputePreservingSessionType(diff, recomputeTopAlignedAdditionDiff(diff, diff.additionLines, this.options.parseDiffOptions));
|
|
7766
|
+
regionsChanged = true;
|
|
7767
|
+
} else {
|
|
7768
|
+
const change = applySessionChangedLines(diff, changedAdditionLines, this.options.parseDiffOptions, previousAdditionLines);
|
|
7769
|
+
this.applyExpansionRemap(change);
|
|
7770
|
+
regionsChanged = change != null;
|
|
7771
|
+
}
|
|
7772
|
+
} else Object.assign(diff, updateDiffHunks(diff, changedAdditionLines, this.options.parseDiffOptions));
|
|
7571
7773
|
}
|
|
7572
|
-
else Object.assign(diff, updateDiffHunks(diff, changedAdditionLines, this.options.parseDiffOptions));
|
|
7573
7774
|
result.baseThemeType = themeType;
|
|
7574
7775
|
renderCache.isDirty = true;
|
|
7575
7776
|
return regionsChanged;
|
|
@@ -7580,31 +7781,31 @@ var DiffHunksRenderer = class {
|
|
|
7580
7781
|
applyDocumentChange(textDocument) {
|
|
7581
7782
|
const { pendingStructuralRows, renderCache } = this;
|
|
7582
7783
|
this.pendingStructuralRows = void 0;
|
|
7583
|
-
|
|
7584
|
-
|
|
7585
|
-
|
|
7784
|
+
const diff = this.diff ?? renderCache?.diff;
|
|
7785
|
+
if (diff == null) return;
|
|
7786
|
+
const result = renderCache?.result;
|
|
7586
7787
|
if (diff.isPartial) throw new Error("Could not apply document change for partial diff");
|
|
7587
7788
|
const { additionLines: previousAdditionLines } = diff;
|
|
7588
7789
|
diff.additionLines = getEditorDocumentLines(textDocument);
|
|
7589
|
-
result.code.additionLines = realignAdditionHastLines(previousAdditionLines, diff.additionLines, result.code.additionLines, textDocument);
|
|
7790
|
+
if (result != null) result.code.additionLines = realignAdditionHastLines(previousAdditionLines, diff.additionLines, result.code.additionLines, textDocument);
|
|
7590
7791
|
if (diff.additionLines.length <= 1 && diff.additionLines.join("") === "") {
|
|
7591
7792
|
this.applyRecomputePreservingSessionType(diff, recomputeEmptyDocumentDiff(diff, this.options.parseDiffOptions));
|
|
7592
|
-
result.code.additionLines[0] = createPlainAdditionLineElement(0, textDocument.getLineText(0));
|
|
7593
|
-
} else if (this.editSessionActive) this.applySessionDocumentChange(diff);
|
|
7793
|
+
if (result != null) result.code.additionLines[0] = createPlainAdditionLineElement(0, textDocument.getLineText(0));
|
|
7794
|
+
} else if (this.editSessionActive) this.applySessionDocumentChange(diff, previousAdditionLines);
|
|
7594
7795
|
else Object.assign(diff, recomputeDiffHunksForEdit(diff, this.options.parseDiffOptions));
|
|
7595
|
-
if (pendingStructuralRows != null) {
|
|
7796
|
+
if (pendingStructuralRows != null && result != null) {
|
|
7596
7797
|
for (const [line, row] of pendingStructuralRows) if (line < result.code.additionLines.length) result.code.additionLines[line] = row;
|
|
7597
7798
|
}
|
|
7598
|
-
renderCache.isDirty = true;
|
|
7799
|
+
if (renderCache != null) renderCache.isDirty = true;
|
|
7599
7800
|
}
|
|
7600
|
-
applySessionDocumentChange(diff) {
|
|
7801
|
+
applySessionDocumentChange(diff, previousAdditionLines) {
|
|
7601
7802
|
const { parseDiffOptions } = this.options;
|
|
7602
7803
|
const rawLines = diff.additionLines;
|
|
7603
7804
|
if (shouldTopAlignAdditionRecompute(diff, rawLines)) {
|
|
7604
7805
|
this.applyRecomputePreservingSessionType(diff, recomputeTopAlignedAdditionDiff(diff, rawLines, parseDiffOptions));
|
|
7605
7806
|
return;
|
|
7606
7807
|
}
|
|
7607
|
-
this.applyExpansionRemap(rebuildSessionHunks(diff, parseDiffOptions));
|
|
7808
|
+
this.applyExpansionRemap(rebuildSessionHunks(diff, parseDiffOptions, (index) => previousAdditionLines[index]));
|
|
7608
7809
|
}
|
|
7609
7810
|
applyRecomputePreservingSessionType(diff, update) {
|
|
7610
7811
|
const sessionType = this.editSessionActive ? diff.type : void 0;
|
|
@@ -7659,7 +7860,7 @@ var DiffHunksRenderer = class {
|
|
|
7659
7860
|
};
|
|
7660
7861
|
}
|
|
7661
7862
|
async initializeHighlighter() {
|
|
7662
|
-
this.highlighter = await getSharedHighlighter(getHighlighterOptions(this.
|
|
7863
|
+
this.highlighter = await getSharedHighlighter(getHighlighterOptions(this.computedLangs, {
|
|
7663
7864
|
theme: this.getLocalHighlightTheme(),
|
|
7664
7865
|
preferredHighlighter: this.workerManager?.getPreferredHighlighter() ?? this.options.preferredHighlighter
|
|
7665
7866
|
}));
|
|
@@ -7683,7 +7884,7 @@ var DiffHunksRenderer = class {
|
|
|
7683
7884
|
if (!this.editSessionActive && this.workerManager?.isWorkingPool() === true) {
|
|
7684
7885
|
if (this.renderCache.result == null && !massiveDiff) this.workerManager.highlightDiffAST(this, this.diff);
|
|
7685
7886
|
} else if (this.highlighter == null) {
|
|
7686
|
-
this.
|
|
7887
|
+
this.computedLangs = getDiffLanguages(diff);
|
|
7687
7888
|
this.initializeHighlighter();
|
|
7688
7889
|
}
|
|
7689
7890
|
}
|
|
@@ -7793,10 +7994,10 @@ var DiffHunksRenderer = class {
|
|
|
7793
7994
|
}
|
|
7794
7995
|
if (!forcePlainText && hasContent && (!this.renderCache.highlighted || forceHighlight)) this.workerManager.highlightDiffAST(this, diff);
|
|
7795
7996
|
} else {
|
|
7796
|
-
this.
|
|
7997
|
+
this.computedLangs = getDiffLanguages(diff);
|
|
7797
7998
|
this.highlighter ??= getHighlighterIfLoaded();
|
|
7798
7999
|
const hasThemes = this.highlighter != null && areThemesAttached(options.theme);
|
|
7799
|
-
const hasLangs = this.highlighter != null && areLanguagesAttached(this.
|
|
8000
|
+
const hasLangs = this.highlighter != null && areLanguagesAttached(this.computedLangs);
|
|
7800
8001
|
const canHighlight = !forcePlainText && hasLangs;
|
|
7801
8002
|
if (canRenderDiff && this.highlighter != null && hasThemes && (forceHighlight || forcePlainText || !this.renderCache.highlighted && canHighlight || this.renderCache.result == null)) {
|
|
7802
8003
|
const { result, options: options2 } = this.renderDiffWithHighlighter(diff, this.highlighter, forcePlainText || !hasLangs);
|
|
@@ -7834,9 +8035,9 @@ var DiffHunksRenderer = class {
|
|
|
7834
8035
|
}
|
|
7835
8036
|
async asyncHighlight(diff) {
|
|
7836
8037
|
const forcePlainText = isDiffMassive(diff, this.getTokenizeMaxLength());
|
|
7837
|
-
this.
|
|
8038
|
+
this.computedLangs = forcePlainText ? ["text"] : getDiffLanguages(diff);
|
|
7838
8039
|
const hasThemes = this.highlighter != null && areThemesAttached(this.getLocalHighlightTheme());
|
|
7839
|
-
const hasLangs = forcePlainText || this.highlighter != null && areLanguagesAttached(this.
|
|
8040
|
+
const hasLangs = forcePlainText || this.highlighter != null && areLanguagesAttached(this.computedLangs);
|
|
7840
8041
|
if (this.highlighter == null || !hasThemes || !hasLangs) this.highlighter = await this.initializeHighlighter();
|
|
7841
8042
|
return this.renderDiffWithHighlighter(diff, this.highlighter, forcePlainText);
|
|
7842
8043
|
}
|
|
@@ -7947,7 +8148,6 @@ var DiffHunksRenderer = class {
|
|
|
7947
8148
|
break;
|
|
7948
8149
|
case "additions":
|
|
7949
8150
|
context.additionsGutterAST.children.push(element);
|
|
7950
|
-
break;
|
|
7951
8151
|
}
|
|
7952
8152
|
}
|
|
7953
8153
|
};
|
|
@@ -8529,6 +8729,12 @@ function getEditorDocumentLines(textDocument) {
|
|
|
8529
8729
|
for (let line = 0; line < textDocument.lineCount; line++) lines.push(textDocument.getLineText(line, true));
|
|
8530
8730
|
return lines;
|
|
8531
8731
|
}
|
|
8732
|
+
function getDiffLanguages(diff) {
|
|
8733
|
+
if (diff.lang != null) return [diff.lang];
|
|
8734
|
+
const deletionLang = getFiletypeFromFileName(diff.prevName ?? diff.name);
|
|
8735
|
+
const additionLang = getFiletypeFromFileName(diff.name);
|
|
8736
|
+
return deletionLang === additionLang ? [additionLang] : [deletionLang, additionLang];
|
|
8737
|
+
}
|
|
8532
8738
|
function isDiffMassive(diff, tokenizeMaxLength) {
|
|
8533
8739
|
return Math.max(diff.additionLines.length, diff.deletionLines.length) > tokenizeMaxLength;
|
|
8534
8740
|
}
|
|
@@ -8536,17 +8742,17 @@ function canHydrateCollapsedContext(fileDiff, hasFileLoader) {
|
|
|
8536
8742
|
return fileDiff.isPartial && hasFileLoader && (fileDiff.type === "change" || fileDiff.type === "rename-changed");
|
|
8537
8743
|
}
|
|
8538
8744
|
|
|
8539
|
-
// node_modules/.pnpm/@pierre+diffs@1.
|
|
8745
|
+
// node_modules/.pnpm/@pierre+diffs@1.5.1_@shikijs+themes@4.4.3_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@pierre/diffs/dist/utils/areDiffLineAnnotationsEqual.js
|
|
8540
8746
|
function areDiffLineAnnotationsEqual(annotationA, annotationB) {
|
|
8541
8747
|
return annotationA.lineNumber === annotationB.lineNumber && annotationA.side === annotationB.side && annotationA.metadata === annotationB.metadata;
|
|
8542
8748
|
}
|
|
8543
8749
|
|
|
8544
|
-
// node_modules/.pnpm/@pierre+diffs@1.
|
|
8750
|
+
// node_modules/.pnpm/@pierre+diffs@1.5.1_@shikijs+themes@4.4.3_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@pierre/diffs/dist/utils/areHunkDataEqual.js
|
|
8545
8751
|
function areHunkDataEqual(hunkA, hunkB) {
|
|
8546
8752
|
return hunkA.slotName === hunkB.slotName && hunkA.hunkIndex === hunkB.hunkIndex && hunkA.lines === hunkB.lines && hunkA.lineCountKnown === hunkB.lineCountKnown && hunkA.type === hunkB.type && hunkA.expandable?.chunked === hunkB.expandable?.chunked && hunkA.expandable?.up === hunkB.expandable?.up && hunkA.expandable?.down === hunkB.expandable?.down;
|
|
8547
8753
|
}
|
|
8548
8754
|
|
|
8549
|
-
// node_modules/.pnpm/@pierre+diffs@1.
|
|
8755
|
+
// node_modules/.pnpm/@pierre+diffs@1.5.1_@shikijs+themes@4.4.3_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@pierre/diffs/dist/utils/getDiffHunksRendererOptions.js
|
|
8550
8756
|
function getDiffHunksRendererOptions(options) {
|
|
8551
8757
|
return {
|
|
8552
8758
|
theme: options?.theme,
|
|
@@ -8575,7 +8781,7 @@ function getDiffHunksRendererOptions(options) {
|
|
|
8575
8781
|
};
|
|
8576
8782
|
}
|
|
8577
8783
|
|
|
8578
|
-
// node_modules/.pnpm/@pierre+diffs@1.
|
|
8784
|
+
// node_modules/.pnpm/@pierre+diffs@1.5.1_@shikijs+themes@4.4.3_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@pierre/diffs/dist/components/FileDiff.js
|
|
8579
8785
|
function canHydrateDiff(fileDiff) {
|
|
8580
8786
|
return fileDiff.isPartial && (fileDiff.type === "change" || fileDiff.type === "rename-changed" || fileDiff.type === "rename-pure");
|
|
8581
8787
|
}
|
|
@@ -8714,17 +8920,18 @@ var FileDiff2 = class {
|
|
|
8714
8920
|
}
|
|
8715
8921
|
continue;
|
|
8716
8922
|
}
|
|
8717
|
-
for (const content of hunk.hunkContent) if (content.type === "context")
|
|
8718
|
-
|
|
8719
|
-
|
|
8720
|
-
|
|
8721
|
-
|
|
8923
|
+
for (const content of hunk.hunkContent) if (content.type === "context") {
|
|
8924
|
+
if (lineNumber < currentLineNumber + content.lines) {
|
|
8925
|
+
const difference = lineNumber - currentLineNumber;
|
|
8926
|
+
targetSplitIndex = splitIndex + difference;
|
|
8927
|
+
targetUnifiedIndex = unifiedIndex + difference;
|
|
8928
|
+
break hunkIterator;
|
|
8929
|
+
} else {
|
|
8930
|
+
currentLineNumber += content.lines;
|
|
8931
|
+
splitIndex += content.lines;
|
|
8932
|
+
unifiedIndex += content.lines;
|
|
8933
|
+
}
|
|
8722
8934
|
} else {
|
|
8723
|
-
currentLineNumber += content.lines;
|
|
8724
|
-
splitIndex += content.lines;
|
|
8725
|
-
unifiedIndex += content.lines;
|
|
8726
|
-
}
|
|
8727
|
-
else {
|
|
8728
8935
|
const sideCount = side === "deletions" ? content.deletions : content.additions;
|
|
8729
8936
|
if (lineNumber < currentLineNumber + sideCount) {
|
|
8730
8937
|
const indexDifference = lineNumber - currentLineNumber;
|
|
@@ -9031,13 +9238,14 @@ var FileDiff2 = class {
|
|
|
9031
9238
|
this.expandHunk(hunkIndex, direction, expansionLineCountOverride);
|
|
9032
9239
|
};
|
|
9033
9240
|
expandHunk = (hunkIndex, direction, expansionLineCountOverride) => {
|
|
9034
|
-
this.hunksRenderer.expandHunk(hunkIndex, direction, expansionLineCountOverride);
|
|
9035
9241
|
this.loadFilesIfNecessary();
|
|
9242
|
+
this.hunksRenderer.expandHunk(hunkIndex, direction, expansionLineCountOverride);
|
|
9036
9243
|
this.rerender();
|
|
9037
9244
|
};
|
|
9038
9245
|
loadFilesIfNecessary() {
|
|
9039
9246
|
const { fileDiff, options: { loadDiffFiles } } = this;
|
|
9040
|
-
if (fileDiff == null ||
|
|
9247
|
+
if (fileDiff == null || !canHydrateDiff(fileDiff) || this.pendingFiles?.fileDiff === fileDiff) return;
|
|
9248
|
+
if (loadDiffFiles == null) throw new Error("FileDiff: loadDiffFiles is required to load full files for a partial diff");
|
|
9041
9249
|
const promise = this.loadFilesForDiff(fileDiff, loadDiffFiles);
|
|
9042
9250
|
const pendingFiles = this.pendingFiles = {
|
|
9043
9251
|
fileDiff,
|
|
@@ -9048,10 +9256,41 @@ var FileDiff2 = class {
|
|
|
9048
9256
|
};
|
|
9049
9257
|
pendingFiles.promise = promise.finally(clearPendingFiles);
|
|
9050
9258
|
}
|
|
9259
|
+
/**
|
|
9260
|
+
* In order to start an edit session, you must be using a `fileDiff` that
|
|
9261
|
+
* includes the full contents for both files. In other words, `isPartial`
|
|
9262
|
+
* must be false You can use `prepareForEditing` to hydrate if
|
|
9263
|
+
* `loadDiffFiles` was passed in to `options`
|
|
9264
|
+
*/
|
|
9265
|
+
__canAttachEditor() {
|
|
9266
|
+
return this.fileDiff != null && !this.fileDiff.isPartial;
|
|
9267
|
+
}
|
|
9268
|
+
/**
|
|
9269
|
+
* Load a partial diff before starting a new edit session. Call this before
|
|
9270
|
+
* Editor.edit when the diff may still be partial; it resolves only when this
|
|
9271
|
+
* instance has a complete diff to edit.
|
|
9272
|
+
*/
|
|
9273
|
+
async prepareForEditing() {
|
|
9274
|
+
if (this.__canAttachEditor()) return;
|
|
9275
|
+
const pending = this.__prepareForEditing();
|
|
9276
|
+
if (pending == null) {
|
|
9277
|
+
if (this.fileDiff?.isPartial === true && !canHydrateDiff(this.fileDiff)) throw new Error("FileDiff.prepareForEditing: this partial diff cannot be hydrated; provide a complete diff");
|
|
9278
|
+
throw new Error("FileDiff.prepareForEditing: a partial diff requires loadDiffFiles");
|
|
9279
|
+
}
|
|
9280
|
+
await pending;
|
|
9281
|
+
if (!this.__canAttachEditor()) throw new Error("FileDiff.prepareForEditing: the diff did not finish loading");
|
|
9282
|
+
}
|
|
9283
|
+
/** Hydrate a diff if necessary */
|
|
9284
|
+
__prepareForEditing() {
|
|
9285
|
+
if (this.__canAttachEditor()) return;
|
|
9286
|
+
if (this.fileDiff?.isPartial === true && !canHydrateDiff(this.fileDiff)) throw new Error("FileDiff: this partial diff cannot be hydrated; provide a complete diff to edit");
|
|
9287
|
+
this.loadFilesIfNecessary();
|
|
9288
|
+
return this.pendingFiles?.promise;
|
|
9289
|
+
}
|
|
9051
9290
|
async loadFilesForDiff(fileDiff, loadDiffFiles) {
|
|
9052
9291
|
try {
|
|
9053
9292
|
const files = await loadDiffFiles(fileDiff);
|
|
9054
|
-
if (
|
|
9293
|
+
if (this.fileDiff !== fileDiff) return;
|
|
9055
9294
|
await this.handleFilesLoaded(fileDiff, files);
|
|
9056
9295
|
} catch (error) {
|
|
9057
9296
|
if (this.options.disableErrorHandling === true) throw error;
|
|
@@ -9062,7 +9301,7 @@ var FileDiff2 = class {
|
|
|
9062
9301
|
if (this.fileDiff !== expectedDiff || !expectedDiff.isPartial) return;
|
|
9063
9302
|
hydratePartialDiff("merge", expectedDiff, files);
|
|
9064
9303
|
this.setHydratedState(files);
|
|
9065
|
-
if (this.
|
|
9304
|
+
if (this.installHydratedSessionDiff(expectedDiff)) {
|
|
9066
9305
|
this.rerender();
|
|
9067
9306
|
return;
|
|
9068
9307
|
}
|
|
@@ -9070,17 +9309,14 @@ var FileDiff2 = class {
|
|
|
9070
9309
|
if (!this.enabled || this.fileDiff !== expectedDiff) return;
|
|
9071
9310
|
this.rerender();
|
|
9072
9311
|
}
|
|
9073
|
-
|
|
9074
|
-
if (expectedDiff.isPartial) throw new Error("FileDiff.
|
|
9312
|
+
installHydratedSessionDiff(expectedDiff) {
|
|
9313
|
+
if (expectedDiff.isPartial) throw new Error("FileDiff.installHydratedSessionDiff: diffs cannot be partial for editing");
|
|
9075
9314
|
if (this.fileDiff !== expectedDiff) return false;
|
|
9076
|
-
const { editor } = this;
|
|
9077
9315
|
if (this.editSession?.outgoingDiff != null) {
|
|
9078
9316
|
this.installEditSession(expectedDiff);
|
|
9079
9317
|
return true;
|
|
9080
9318
|
}
|
|
9081
|
-
|
|
9082
|
-
this.installEditSession(expectedDiff, editor.__getDocumentContents(getAdditionFile(expectedDiff)), editor.__getDocumentSessionState());
|
|
9083
|
-
return true;
|
|
9319
|
+
return false;
|
|
9084
9320
|
}
|
|
9085
9321
|
updateExternalDiff(incomingExternalDiff, lineAnnotations) {
|
|
9086
9322
|
if (areDiffTargetsEqual(this.fileDiff, incomingExternalDiff)) return false;
|
|
@@ -9090,8 +9326,7 @@ var FileDiff2 = class {
|
|
|
9090
9326
|
if (incomingExternalDiff.isPartial) this.loadFilesIfNecessary();
|
|
9091
9327
|
else this.installEditSession(incomingExternalDiff);
|
|
9092
9328
|
if (this.editSession != null) this.editSession.outgoingDiff = outgoingDiff;
|
|
9093
|
-
}
|
|
9094
|
-
else this.installEditSession(incomingExternalDiff, this.editor.__getDocumentContents(getAdditionFile(incomingExternalDiff)), this.editor.__getDocumentSessionState());
|
|
9329
|
+
}
|
|
9095
9330
|
if (this.editSession?.annotations != null && lineAnnotations != null) {
|
|
9096
9331
|
this.lineAnnotations = lineAnnotations;
|
|
9097
9332
|
this.editSession.annotations = adoptEditSessionAnnotations(lineAnnotations, getLineAnnotationName, this.editSession.annotations);
|
|
@@ -9276,9 +9511,9 @@ var FileDiff2 = class {
|
|
|
9276
9511
|
const sync = (highlighter3) => {
|
|
9277
9512
|
if (!this.enabled || this.editor !== editor || this.fileContainer !== fileContainer || this.getLatestDiff() !== fileDiff) return;
|
|
9278
9513
|
const replacement = this.editSession?.outgoingDiff;
|
|
9279
|
-
const externalDiff = this
|
|
9514
|
+
const { fileDiff: externalDiff } = this;
|
|
9280
9515
|
const externalDocument = replacement != null && externalDiff != null && replacement !== fileDiff;
|
|
9281
|
-
const resetHistory = externalDocument ? shouldResetUndoState(replacement, externalDiff) : false;
|
|
9516
|
+
const resetHistory = externalDocument && replacement != null && externalDiff != null ? shouldResetUndoState(replacement, externalDiff) : false;
|
|
9282
9517
|
editor.__syncRenderView({
|
|
9283
9518
|
highlighter: highlighter3,
|
|
9284
9519
|
fileContainer,
|
|
@@ -9375,6 +9610,7 @@ var FileDiff2 = class {
|
|
|
9375
9610
|
__attachEditor(editor) {
|
|
9376
9611
|
if (this.type !== "file-diff") throw new Error(`FileDiff.__attachEditor: cannot attach an editor to a "${this.type}" diff`);
|
|
9377
9612
|
if (this.editor != null) throw new Error("FileDiff.__attachEditor: an editor is already attached");
|
|
9613
|
+
if (!this.__canAttachEditor()) throw new Error("FileDiff.__attachEditor: a complete diff is required before editing");
|
|
9378
9614
|
const detach = () => {
|
|
9379
9615
|
this.editor = void 0;
|
|
9380
9616
|
this.finishEditSession();
|
|
@@ -9518,6 +9754,11 @@ var FileDiff2 = class {
|
|
|
9518
9754
|
this.rerender();
|
|
9519
9755
|
this.interactionManager.setSelectionDirty();
|
|
9520
9756
|
}
|
|
9757
|
+
/** Update the private diff without editor DOM, then rehighlight on return. */
|
|
9758
|
+
applySuspendedDocumentChange(textDocument, newLineAnnotations) {
|
|
9759
|
+
this.applyDocumentChange(textDocument, newLineAnnotations);
|
|
9760
|
+
this.hunksRenderer.clearRenderCache();
|
|
9761
|
+
}
|
|
9521
9762
|
updateRenderCache(dirtyLines, themeType, options = {}) {
|
|
9522
9763
|
const editSessionDiff = this.editSession?.diff;
|
|
9523
9764
|
if (editSessionDiff == null) throw new Error("FileDiff.updateRenderCache: requires an active edit session");
|
|
@@ -9658,6 +9899,10 @@ var FileDiff2 = class {
|
|
|
9658
9899
|
this.placeHolder.dataset.placeholder = "";
|
|
9659
9900
|
shadowRoot.appendChild(this.placeHolder);
|
|
9660
9901
|
}
|
|
9902
|
+
return this.setPlaceholderHeight(height);
|
|
9903
|
+
}
|
|
9904
|
+
setPlaceholderHeight(height) {
|
|
9905
|
+
if (this.placeHolder == null) return false;
|
|
9661
9906
|
this.placeHolder.style.setProperty("height", `${height}px`);
|
|
9662
9907
|
return true;
|
|
9663
9908
|
}
|
|
@@ -10509,7 +10754,7 @@ function getElementChildren(node) {
|
|
|
10509
10754
|
return node.children ?? [];
|
|
10510
10755
|
}
|
|
10511
10756
|
|
|
10512
|
-
// node_modules/.pnpm/@pierre+diffs@1.
|
|
10757
|
+
// node_modules/.pnpm/@pierre+diffs@1.5.1_@shikijs+themes@4.4.3_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@pierre/diffs/dist/components/VirtualizedFileDiff.js
|
|
10513
10758
|
var VIRTUALIZED_FILE_DIFF_LAYOUT_CHECKPOINT_INTERVAL = 3e3;
|
|
10514
10759
|
var NO_GHOST_TEXT_ROWS = /* @__PURE__ */ new Map();
|
|
10515
10760
|
var instanceId3 = -1;
|
|
@@ -10551,7 +10796,7 @@ var VirtualizedFileDiff = class extends FileDiff2 {
|
|
|
10551
10796
|
this.resetLayoutCache({ includeEstimatedHeights: true });
|
|
10552
10797
|
}
|
|
10553
10798
|
setLineAnnotations(lineAnnotations) {
|
|
10554
|
-
if (this.syncLineAnnotations(lineAnnotations)) this.
|
|
10799
|
+
if (this.syncLineAnnotations(lineAnnotations)) this.forceRenderOverride = true;
|
|
10555
10800
|
}
|
|
10556
10801
|
syncLineAnnotations(lineAnnotations) {
|
|
10557
10802
|
if (lineAnnotations == null || !this.isNewAnnotations(lineAnnotations) || lineAnnotations.length === 0 && this.getLatestAnnotations().length === 0) return false;
|
|
@@ -10560,7 +10805,7 @@ var VirtualizedFileDiff = class extends FileDiff2 {
|
|
|
10560
10805
|
}
|
|
10561
10806
|
syncEditSessionAnnotationsFromEditor(lineAnnotations) {
|
|
10562
10807
|
if (super.syncEditSessionAnnotationsFromEditor(lineAnnotations)) {
|
|
10563
|
-
this.
|
|
10808
|
+
this.forceRenderOverride = true;
|
|
10564
10809
|
return true;
|
|
10565
10810
|
}
|
|
10566
10811
|
return false;
|
|
@@ -10653,8 +10898,8 @@ var VirtualizedFileDiff = class extends FileDiff2 {
|
|
|
10653
10898
|
}
|
|
10654
10899
|
reconcileHeights() {
|
|
10655
10900
|
let hasHeightChange = false;
|
|
10656
|
-
const { options: { overflow = "scroll" },
|
|
10657
|
-
const fileDiff = this.getRenderedDiff();
|
|
10901
|
+
const { options: { overflow = "scroll" }, metrics: { lineHeight } } = this;
|
|
10902
|
+
const fileDiff = this.placeHolder != null ? this.getLayoutDiff() : this.getRenderedDiff();
|
|
10658
10903
|
if (this.fileContainer == null || fileDiff == null) {
|
|
10659
10904
|
if (this.height !== 0) hasHeightChange = true;
|
|
10660
10905
|
this.height = 0;
|
|
@@ -10662,18 +10907,21 @@ var VirtualizedFileDiff = class extends FileDiff2 {
|
|
|
10662
10907
|
}
|
|
10663
10908
|
this.top = this.getVirtualizedTop();
|
|
10664
10909
|
hasHeightChange = this.applyGhostTextRows(fileDiff, this.editor?.__getGhostTextRows() ?? NO_GHOST_TEXT_ROWS);
|
|
10665
|
-
const
|
|
10666
|
-
|
|
10667
|
-
|
|
10910
|
+
const { ghostTextRowsByIndex } = this.cache;
|
|
10911
|
+
const measureAllRows = overflow !== "scroll" || this.getLatestAnnotations().length > 0 || this.isResizeDebuggingEnabled();
|
|
10912
|
+
if (this.placeHolder != null || !measureAllRows && this.cache.heightDeltas.size === 0 && this.cache.fileAnnotationHeight === 0) {
|
|
10913
|
+
if (hasHeightChange) {
|
|
10914
|
+
this.computeApproximateSize(true);
|
|
10915
|
+
this.setPlaceholderHeight(this.height);
|
|
10916
|
+
}
|
|
10668
10917
|
return hasHeightChange;
|
|
10669
10918
|
}
|
|
10670
10919
|
const diffStyle = this.getDiffStyle();
|
|
10671
10920
|
const codeGroups = diffStyle === "split" ? [this.codeDeletions, this.codeAdditions] : [this.codeUnified];
|
|
10672
|
-
|
|
10673
|
-
if (this.renderRange != null && hasFileAnnotations && shouldRenderFileAnnotations(this.renderRange)) {
|
|
10921
|
+
if (this.renderRange != null && shouldRenderFileAnnotations(this.renderRange)) {
|
|
10674
10922
|
const nextFileAnnotationHeight = measureFileAnnotationHeight(codeGroups) ?? 0;
|
|
10675
10923
|
if (this.setFileAnnotationHeight(nextFileAnnotationHeight)) hasHeightChange = true;
|
|
10676
|
-
}
|
|
10924
|
+
}
|
|
10677
10925
|
for (const codeGroup of codeGroups) {
|
|
10678
10926
|
if (codeGroup == null) continue;
|
|
10679
10927
|
const content = codeGroup.children[1];
|
|
@@ -10686,6 +10934,8 @@ var VirtualizedFileDiff = class extends FileDiff2 {
|
|
|
10686
10934
|
const lineIndex = parseLineIndex(lineIndexAttr, diffStyle);
|
|
10687
10935
|
const ghostRows = ghostTextRowsByIndex.get(lineIndex) ?? 0;
|
|
10688
10936
|
if (skipsGhostRows && ghostRows > 0) continue;
|
|
10937
|
+
const previousDelta = this.cache.heightDeltas.get(lineIndex) ?? 0;
|
|
10938
|
+
if (!measureAllRows && previousDelta === ghostRows * lineHeight) continue;
|
|
10689
10939
|
let measuredHeight = line.getBoundingClientRect().height + ghostRows * lineHeight;
|
|
10690
10940
|
let hasMetadata = false;
|
|
10691
10941
|
if (line.nextElementSibling instanceof HTMLElement && ("lineAnnotation" in line.nextElementSibling.dataset || "noNewline" in line.nextElementSibling.dataset)) {
|
|
@@ -10693,7 +10943,6 @@ var VirtualizedFileDiff = class extends FileDiff2 {
|
|
|
10693
10943
|
measuredHeight += line.nextElementSibling.getBoundingClientRect().height;
|
|
10694
10944
|
}
|
|
10695
10945
|
const estimatedHeight = this.getEstimatedLineHeight(hasMetadata);
|
|
10696
|
-
const previousDelta = this.cache.heightDeltas.get(lineIndex) ?? 0;
|
|
10697
10946
|
const nextDelta = measuredHeight - estimatedHeight;
|
|
10698
10947
|
if (nextDelta === previousDelta) continue;
|
|
10699
10948
|
hasHeightChange = true;
|
|
@@ -10723,7 +10972,7 @@ var VirtualizedFileDiff = class extends FileDiff2 {
|
|
|
10723
10972
|
if (pendingHydratedDiff.expectedDiff === fileDiff) {
|
|
10724
10973
|
Object.assign(fileDiff, pendingHydratedDiff.nextDiff);
|
|
10725
10974
|
this.setHydratedState(pendingHydratedDiff.files);
|
|
10726
|
-
this.
|
|
10975
|
+
this.installHydratedSessionDiff(fileDiff);
|
|
10727
10976
|
this.forceRenderOverride = true;
|
|
10728
10977
|
resetLayoutCache = true;
|
|
10729
10978
|
resetEstimatedHeights = true;
|
|
@@ -10740,7 +10989,7 @@ var VirtualizedFileDiff = class extends FileDiff2 {
|
|
|
10740
10989
|
const diffChanged = this.updateExternalDiff(fileDiff, lineAnnotations);
|
|
10741
10990
|
const { pendingRenderDiff, layoutDiffChanged, renderedDiffChanged, annotationsChanged } = this.updatePendingRender(fileDiff, lineAnnotations);
|
|
10742
10991
|
if (!this.forceRenderOverride && (diffChanged || renderedDiffChanged || annotationsChanged)) this.forceRenderOverride = true;
|
|
10743
|
-
if (reset?.resetDiffLayoutCache === true || layoutDiffChanged
|
|
10992
|
+
if (reset?.resetDiffLayoutCache === true || layoutDiffChanged) resetLayoutCache = true;
|
|
10744
10993
|
if (layoutDiffChanged || reset?.resetDiffLayoutCache === true && reset.includeEstimatedDiffHeights) resetEstimatedHeights = true;
|
|
10745
10994
|
if (reset?.metrics != null) {
|
|
10746
10995
|
this.metrics = computeVirtualFileMetrics(reset.metrics);
|
|
@@ -10932,6 +11181,7 @@ var VirtualizedFileDiff = class extends FileDiff2 {
|
|
|
10932
11181
|
}
|
|
10933
11182
|
expandHunk = (hunkIndex, direction, expansionLineCountOverride) => {
|
|
10934
11183
|
if (this.fileDiff == null) return;
|
|
11184
|
+
this.loadFilesIfNecessary();
|
|
10935
11185
|
if (this.isAdvancedMode()) {
|
|
10936
11186
|
this.pendingExpansions ??= [];
|
|
10937
11187
|
this.pendingExpansions.push({
|
|
@@ -10944,7 +11194,6 @@ var VirtualizedFileDiff = class extends FileDiff2 {
|
|
|
10944
11194
|
this.resetLayoutCache({ includeEstimatedHeights: true });
|
|
10945
11195
|
this.computeApproximateSize();
|
|
10946
11196
|
}
|
|
10947
|
-
this.loadFilesIfNecessary();
|
|
10948
11197
|
this.forceRenderOverride = true;
|
|
10949
11198
|
this.virtualizer.instanceChanged(this, true);
|
|
10950
11199
|
};
|
|
@@ -10953,7 +11202,7 @@ var VirtualizedFileDiff = class extends FileDiff2 {
|
|
|
10953
11202
|
if (this.isAdvancedMode()) {
|
|
10954
11203
|
const nextDiff = hydratePartialDiff("clone", expectedDiff, files);
|
|
10955
11204
|
await awaitWithTimeout(() => this.primeHighlightCache(nextDiff));
|
|
10956
|
-
if (
|
|
11205
|
+
if (this.fileDiff !== expectedDiff) return;
|
|
10957
11206
|
this.pendingHydratedDiff = {
|
|
10958
11207
|
expectedDiff,
|
|
10959
11208
|
nextDiff,
|
|
@@ -10962,9 +11211,9 @@ var VirtualizedFileDiff = class extends FileDiff2 {
|
|
|
10962
11211
|
} else {
|
|
10963
11212
|
hydratePartialDiff("merge", expectedDiff, files);
|
|
10964
11213
|
this.setHydratedState(files);
|
|
10965
|
-
if (!this.
|
|
11214
|
+
if (!this.installHydratedSessionDiff(expectedDiff)) {
|
|
10966
11215
|
await awaitWithTimeout(() => this.primeHighlightCache(expectedDiff));
|
|
10967
|
-
if (
|
|
11216
|
+
if (this.fileDiff !== expectedDiff) return;
|
|
10968
11217
|
}
|
|
10969
11218
|
this.resetLayoutCache({ includeEstimatedHeights: true });
|
|
10970
11219
|
this.computeApproximateSize();
|
|
@@ -11163,11 +11412,11 @@ var VirtualizedFileDiff = class extends FileDiff2 {
|
|
|
11163
11412
|
pendingRenderDiff: this.pendingRender.diff,
|
|
11164
11413
|
layoutDiffChanged: false,
|
|
11165
11414
|
renderedDiffChanged: false,
|
|
11166
|
-
annotationsChanged:
|
|
11415
|
+
annotationsChanged: this.syncLineAnnotations(lineAnnotations)
|
|
11167
11416
|
};
|
|
11168
11417
|
return this.updatePendingRender(nextFileDiff, lineAnnotations);
|
|
11169
11418
|
})();
|
|
11170
|
-
if (
|
|
11419
|
+
if (layoutDiffChanged) this.resetLayoutCache({ includeEstimatedHeights: true });
|
|
11171
11420
|
if (!isSetup) {
|
|
11172
11421
|
this.computeApproximateSize(false, pendingRenderDiff);
|
|
11173
11422
|
const virtualizer = this.getSimpleVirtualizer();
|
|
@@ -11181,7 +11430,7 @@ var VirtualizedFileDiff = class extends FileDiff2 {
|
|
|
11181
11430
|
this.isSetup = true;
|
|
11182
11431
|
} else {
|
|
11183
11432
|
this.top ??= this.getVirtualizedTop();
|
|
11184
|
-
if (
|
|
11433
|
+
if (this.layoutDirty && this.isSimpleMode()) {
|
|
11185
11434
|
this.getSimpleVirtualizer()?.markDOMDirty();
|
|
11186
11435
|
this.computeApproximateSize(false, pendingRenderDiff);
|
|
11187
11436
|
}
|
|
@@ -11192,7 +11441,6 @@ var VirtualizedFileDiff = class extends FileDiff2 {
|
|
|
11192
11441
|
this.additionFile = newFile;
|
|
11193
11442
|
}
|
|
11194
11443
|
if (targetChanged) this.clearReusableHeader();
|
|
11195
|
-
this.pendingRender = void 0;
|
|
11196
11444
|
return this.renderPlaceholder(this.height);
|
|
11197
11445
|
}
|
|
11198
11446
|
const windowSpecs = this.virtualizer.getWindowSpecs();
|
|
@@ -11209,7 +11457,7 @@ var VirtualizedFileDiff = class extends FileDiff2 {
|
|
|
11209
11457
|
});
|
|
11210
11458
|
}
|
|
11211
11459
|
finalizeRender() {
|
|
11212
|
-
if (this.getRenderedDiff()
|
|
11460
|
+
if (!areDiffTargetsEqual(this.getRenderedDiff(), this.pendingRender?.diff)) throw new Error("VirtualizedFileDiff.render: rendered a different diff than its prepared layout");
|
|
11213
11461
|
this.pendingRender = void 0;
|
|
11214
11462
|
if (this.isSimpleMode()) this.getSimpleVirtualizer()?.requestHeightReconcile(this);
|
|
11215
11463
|
}
|
|
@@ -11517,15 +11765,17 @@ var VirtualizedFileDiff = class extends FileDiff2 {
|
|
|
11517
11765
|
return false;
|
|
11518
11766
|
}
|
|
11519
11767
|
});
|
|
11520
|
-
if (firstVisibleHunk == null)
|
|
11521
|
-
|
|
11522
|
-
|
|
11523
|
-
|
|
11524
|
-
|
|
11525
|
-
|
|
11526
|
-
|
|
11527
|
-
|
|
11528
|
-
|
|
11768
|
+
if (firstVisibleHunk == null) {
|
|
11769
|
+
if (measuredFileAnnotationVisible) {
|
|
11770
|
+
firstVisibleHunk = 0;
|
|
11771
|
+
centerHunk = 0;
|
|
11772
|
+
} else return {
|
|
11773
|
+
startingLine: 0,
|
|
11774
|
+
totalLines: 0,
|
|
11775
|
+
bufferBefore: 0,
|
|
11776
|
+
bufferAfter: fileHeight - headerRegion - paddingBottom
|
|
11777
|
+
};
|
|
11778
|
+
}
|
|
11529
11779
|
centerHunk ??= firstVisibleHunk;
|
|
11530
11780
|
const idealStartHunk = Math.round(centerHunk - totalHunks / 2);
|
|
11531
11781
|
const maxStartHunk = Math.max(0, Math.ceil(lineCount / hunkLineCount) - totalHunks);
|
|
@@ -11633,7 +11883,7 @@ function parseLineIndex(lineIndexAttr, diffStyle) {
|
|
|
11633
11883
|
return diffStyle === "split" ? splitIndex : unifiedIndex;
|
|
11634
11884
|
}
|
|
11635
11885
|
|
|
11636
|
-
// node_modules/.pnpm/@pierre+diffs@1.
|
|
11886
|
+
// node_modules/.pnpm/@pierre+diffs@1.5.1_@shikijs+themes@4.4.3_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@pierre/diffs/dist/react/utils/templateRender.js
|
|
11637
11887
|
import { Fragment as Fragment2, jsx as jsx4, jsxs as jsxs2 } from "react/jsx-runtime";
|
|
11638
11888
|
function templateRender(children, __html) {
|
|
11639
11889
|
if (typeof window === "undefined" && __html != null) return /* @__PURE__ */ jsxs2(Fragment2, { children: [/* @__PURE__ */ jsx4("template", {
|
|
@@ -11643,7 +11893,7 @@ function templateRender(children, __html) {
|
|
|
11643
11893
|
return /* @__PURE__ */ jsx4(Fragment2, { children });
|
|
11644
11894
|
}
|
|
11645
11895
|
|
|
11646
|
-
// node_modules/.pnpm/@pierre+diffs@1.
|
|
11896
|
+
// node_modules/.pnpm/@pierre+diffs@1.5.1_@shikijs+themes@4.4.3_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@pierre/diffs/dist/react/Virtualizer.js
|
|
11647
11897
|
import { createContext as createContext3, useCallback as useCallback2, useContext as useContext3, useState as useState2 } from "react";
|
|
11648
11898
|
import { jsx as jsx5 } from "react/jsx-runtime";
|
|
11649
11899
|
var VirtualizerContext = createContext3(void 0);
|
|
@@ -11651,14 +11901,15 @@ function useVirtualizer() {
|
|
|
11651
11901
|
return useContext3(VirtualizerContext);
|
|
11652
11902
|
}
|
|
11653
11903
|
|
|
11654
|
-
// node_modules/.pnpm/@pierre+diffs@1.
|
|
11655
|
-
import { useCallback as useCallback3, useContext as useContext4, useEffect as useEffect2, useLayoutEffect, useMemo, useRef as useRef2 } from "react";
|
|
11904
|
+
// node_modules/.pnpm/@pierre+diffs@1.5.1_@shikijs+themes@4.4.3_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@pierre/diffs/dist/react/utils/useFileDiffInstance.js
|
|
11905
|
+
import { useCallback as useCallback3, useContext as useContext4, useEffect as useEffect2, useLayoutEffect, useMemo, useRef as useRef2, useState as useState3 } from "react";
|
|
11656
11906
|
var useIsomorphicLayoutEffect = typeof window === "undefined" ? useEffect2 : useLayoutEffect;
|
|
11657
11907
|
function useFileDiffInstance({ fileDiff, oldFile, newFile, options, editorOptions, editStateKey, lineAnnotations, selectedLines, prerenderedHTML, metrics, hasGutterRenderUtility, hasCustomHeader, disableWorkerPool, edit, onEditChange: _onEditChange, onEditComplete: _onEditComplete }) {
|
|
11658
11908
|
const simpleVirtualizer = useVirtualizer();
|
|
11659
11909
|
const controlledSelection = selectedLines !== void 0;
|
|
11660
11910
|
const poolManager = useContext4(WorkerPoolContext);
|
|
11661
11911
|
const createEditor = useCreateEditor();
|
|
11912
|
+
const [asyncAttachError, setAsyncAttachError] = useState3();
|
|
11662
11913
|
const handleOnEditChange = useStableCallback((event) => _onEditChange?.(event));
|
|
11663
11914
|
const onEditChange = _onEditChange != null ? handleOnEditChange : void 0;
|
|
11664
11915
|
const acceptedCache = useRef2(null);
|
|
@@ -11688,23 +11939,16 @@ function useFileDiffInstance({ fileDiff, oldFile, newFile, options, editorOption
|
|
|
11688
11939
|
return decision;
|
|
11689
11940
|
});
|
|
11690
11941
|
const onEditComplete = _onEditComplete != null ? handleOnEditComplete : void 0;
|
|
11691
|
-
const effectiveFileDiff =
|
|
11692
|
-
|
|
11693
|
-
const { current: accepted } = acceptedCache;
|
|
11694
|
-
const filePair = accepted?.filePair;
|
|
11695
|
-
if (accepted != null && filePair != null) {
|
|
11696
|
-
if (isSameFilePair(oldFile, newFile, filePair.stale) || isSameFilePair(oldFile, newFile, filePair.installed)) return filePair.fileDiff;
|
|
11697
|
-
accepted.filePair = null;
|
|
11698
|
-
}
|
|
11699
|
-
return parseDiffFromFile(oldFile ?? null, newFile ?? null, options?.parseDiffOptions);
|
|
11700
|
-
}, [
|
|
11942
|
+
const effectiveFileDiff = useEffectiveFileDiff({
|
|
11943
|
+
acceptedCache,
|
|
11701
11944
|
fileDiff,
|
|
11702
|
-
oldFile,
|
|
11703
11945
|
newFile,
|
|
11704
|
-
|
|
11705
|
-
|
|
11946
|
+
oldFile,
|
|
11947
|
+
parseDiffOptions: options?.parseDiffOptions
|
|
11948
|
+
});
|
|
11706
11949
|
const instanceRef = useRef2(null);
|
|
11707
11950
|
const disposeEditorRef = useRef2(null);
|
|
11951
|
+
const pendingAttachRef = useRef2(null);
|
|
11708
11952
|
const getEditor = useStableCallback(() => {
|
|
11709
11953
|
if (createEditor == null) throw new Error("FileDiff: EditContext is not attached");
|
|
11710
11954
|
return createEditor("file-diff", editorOptions ?? {}, editStateKey);
|
|
@@ -11728,7 +11972,6 @@ function useFileDiffInstance({ fileDiff, oldFile, newFile, options, editorOption
|
|
|
11728
11972
|
onEditComplete,
|
|
11729
11973
|
options
|
|
11730
11974
|
}), !disableWorkerPool ? poolManager : void 0, true);
|
|
11731
|
-
if (edit && disposeEditorRef.current == null) disposeEditorRef.current = applyEdit(instanceRef.current, getEditor);
|
|
11732
11975
|
instanceRef.current.hydrate({
|
|
11733
11976
|
fileDiff: effectiveFileDiff,
|
|
11734
11977
|
fileContainer,
|
|
@@ -11737,6 +11980,7 @@ function useFileDiffInstance({ fileDiff, oldFile, newFile, options, editorOption
|
|
|
11737
11980
|
});
|
|
11738
11981
|
} else {
|
|
11739
11982
|
if (instanceRef.current == null) throw new Error("useFileDiffInstance: A FileDiff instance should exist when unmounting");
|
|
11983
|
+
pendingAttachRef.current = null;
|
|
11740
11984
|
instanceRef.current.cleanUp();
|
|
11741
11985
|
instanceRef.current = null;
|
|
11742
11986
|
disposeEditorRef.current = null;
|
|
@@ -11755,10 +11999,13 @@ function useFileDiffInstance({ fileDiff, oldFile, newFile, options, editorOption
|
|
|
11755
11999
|
});
|
|
11756
12000
|
const forceRender = newOptions !== void 0 && !areOptionsEqual(instance.options, newOptions);
|
|
11757
12001
|
instance.setOptions(newOptions);
|
|
11758
|
-
if (!edit
|
|
11759
|
-
|
|
11760
|
-
disposeEditorRef.current
|
|
11761
|
-
|
|
12002
|
+
if (!edit) {
|
|
12003
|
+
pendingAttachRef.current = null;
|
|
12004
|
+
if (disposeEditorRef.current != null) {
|
|
12005
|
+
const { current: disposeEditor } = disposeEditorRef;
|
|
12006
|
+
disposeEditorRef.current = null;
|
|
12007
|
+
disposeEditor();
|
|
12008
|
+
}
|
|
11762
12009
|
}
|
|
11763
12010
|
const resolved = resolveAcceptedValues(effectiveFileDiff, lineAnnotations, acceptedCache);
|
|
11764
12011
|
instance.render({
|
|
@@ -11767,17 +12014,66 @@ function useFileDiffInstance({ fileDiff, oldFile, newFile, options, editorOption
|
|
|
11767
12014
|
lineAnnotations: resolved.lineAnnotations
|
|
11768
12015
|
});
|
|
11769
12016
|
if (selectedLines !== void 0) instance.setSelectedLines(selectedLines);
|
|
11770
|
-
if (edit
|
|
12017
|
+
if (!edit || disposeEditorRef.current != null) return;
|
|
12018
|
+
if (createEditor == null) throw new Error("FileDiff: EditContext is not attached");
|
|
12019
|
+
const attach = () => {
|
|
12020
|
+
if (instanceRef.current !== instance || disposeEditorRef.current != null || !instance.__canAttachEditor()) return;
|
|
12021
|
+
disposeEditorRef.current = applyEdit(instance, getEditor);
|
|
12022
|
+
};
|
|
12023
|
+
if (instance.__canAttachEditor()) {
|
|
12024
|
+
pendingAttachRef.current = null;
|
|
12025
|
+
attach();
|
|
12026
|
+
return;
|
|
12027
|
+
}
|
|
12028
|
+
const promise = instance.__prepareForEditing();
|
|
12029
|
+
if (promise == null) {
|
|
12030
|
+
pendingAttachRef.current = null;
|
|
12031
|
+
return;
|
|
12032
|
+
}
|
|
12033
|
+
if (pendingAttachRef.current?.promise === promise) return;
|
|
12034
|
+
const pending = { promise };
|
|
12035
|
+
pendingAttachRef.current = pending;
|
|
12036
|
+
promise.then(() => {
|
|
12037
|
+
if (pendingAttachRef.current !== pending) return;
|
|
12038
|
+
attach();
|
|
12039
|
+
pendingAttachRef.current = null;
|
|
12040
|
+
}).catch((error) => {
|
|
12041
|
+
if (pendingAttachRef.current === pending) {
|
|
12042
|
+
pendingAttachRef.current = null;
|
|
12043
|
+
setAsyncAttachError(error);
|
|
12044
|
+
}
|
|
12045
|
+
});
|
|
11771
12046
|
});
|
|
12047
|
+
const getHoveredLine = useCallback3(() => {
|
|
12048
|
+
return instanceRef.current?.getHoveredLine();
|
|
12049
|
+
}, []);
|
|
12050
|
+
const getAnnotationSlotName2 = useCallback3((annotation) => instanceRef.current?.getAnnotationSlotName(annotation) ?? getLineAnnotationName(annotation), []);
|
|
12051
|
+
if (asyncAttachError != null) throw asyncAttachError;
|
|
11772
12052
|
return {
|
|
11773
12053
|
fileDiff: effectiveFileDiff,
|
|
11774
12054
|
ref,
|
|
11775
|
-
getHoveredLine
|
|
11776
|
-
|
|
11777
|
-
}, []),
|
|
11778
|
-
getAnnotationSlotName: useCallback3((annotation) => instanceRef.current?.getAnnotationSlotName(annotation) ?? getLineAnnotationName(annotation), [])
|
|
12055
|
+
getHoveredLine,
|
|
12056
|
+
getAnnotationSlotName: getAnnotationSlotName2
|
|
11779
12057
|
};
|
|
11780
12058
|
}
|
|
12059
|
+
function useEffectiveFileDiff({ acceptedCache, fileDiff, newFile, oldFile, parseDiffOptions }) {
|
|
12060
|
+
return useMemo(() => {
|
|
12061
|
+
if (fileDiff != null) return fileDiff;
|
|
12062
|
+
const { current: accepted } = acceptedCache;
|
|
12063
|
+
const filePair = accepted?.filePair;
|
|
12064
|
+
if (accepted != null && filePair != null) {
|
|
12065
|
+
if (isSameFilePair(oldFile, newFile, filePair.stale) || isSameFilePair(oldFile, newFile, filePair.installed)) return filePair.fileDiff;
|
|
12066
|
+
accepted.filePair = null;
|
|
12067
|
+
}
|
|
12068
|
+
return parseDiffFromFile(oldFile ?? null, newFile ?? null, parseDiffOptions);
|
|
12069
|
+
}, [
|
|
12070
|
+
acceptedCache,
|
|
12071
|
+
fileDiff,
|
|
12072
|
+
oldFile,
|
|
12073
|
+
newFile,
|
|
12074
|
+
parseDiffOptions
|
|
12075
|
+
]);
|
|
12076
|
+
}
|
|
11781
12077
|
function isSameFilePair(oldFile, newFile, filePair) {
|
|
11782
12078
|
return areFileTargetsEqual(oldFile ?? void 0, filePair.oldFile ?? void 0) && areFileTargetsEqual(newFile ?? void 0, filePair.newFile ?? void 0);
|
|
11783
12079
|
}
|
|
@@ -11789,11 +12085,15 @@ function resolveAcceptedValues(fileDiff, lineAnnotations, acceptedCache) {
|
|
|
11789
12085
|
};
|
|
11790
12086
|
const { fileDiff: acceptedDiff, annotations: acceptedAnnotations } = accepted;
|
|
11791
12087
|
let resolvedFileDiff = fileDiff;
|
|
11792
|
-
if (acceptedDiff != null)
|
|
11793
|
-
|
|
12088
|
+
if (acceptedDiff != null) {
|
|
12089
|
+
if (areDiffTargetsEqual(fileDiff, acceptedDiff.stale)) resolvedFileDiff = acceptedDiff.installed;
|
|
12090
|
+
else accepted.fileDiff = null;
|
|
12091
|
+
}
|
|
11794
12092
|
let resolvedAnnotations = lineAnnotations;
|
|
11795
|
-
if (acceptedAnnotations != null)
|
|
11796
|
-
|
|
12093
|
+
if (acceptedAnnotations != null) {
|
|
12094
|
+
if (lineAnnotations === acceptedAnnotations.stale) resolvedAnnotations = acceptedAnnotations.installed;
|
|
12095
|
+
else accepted.annotations = null;
|
|
12096
|
+
}
|
|
11797
12097
|
if (accepted.fileDiff == null && accepted.annotations == null && accepted.filePair == null) acceptedCache.current = null;
|
|
11798
12098
|
return {
|
|
11799
12099
|
fileDiff: resolvedFileDiff,
|
|
@@ -11821,7 +12121,7 @@ function applyEdit(instance, getEditor) {
|
|
|
11821
12121
|
}
|
|
11822
12122
|
}
|
|
11823
12123
|
|
|
11824
|
-
// node_modules/.pnpm/@pierre+diffs@1.
|
|
12124
|
+
// node_modules/.pnpm/@pierre+diffs@1.5.1_@shikijs+themes@4.4.3_react-dom@19.3.0_react@19.3.0__react@19.3.0/node_modules/@pierre/diffs/dist/react/MultiFileDiff.js
|
|
11825
12125
|
import { jsx as jsx6 } from "react/jsx-runtime";
|
|
11826
12126
|
function MultiFileDiff({ oldFile, newFile, options, editorOptions, editStateKey, metrics, lineAnnotations, selectedLines, className, style, prerenderedHTML, renderAnnotation, renderCustomHeader, renderHeaderPrefix, renderHeaderFilenameSuffix, renderHeaderMetadata, renderGutterUtility, disableWorkerPool = false, edit = false, onEditChange, onEditComplete }) {
|
|
11827
12127
|
const { fileDiff, ref, getHoveredLine, getAnnotationSlotName: getAnnotationSlotName2 } = useFileDiffInstance({
|
|
@@ -11841,26 +12141,27 @@ function MultiFileDiff({ oldFile, newFile, options, editorOptions, editStateKey,
|
|
|
11841
12141
|
onEditChange,
|
|
11842
12142
|
onEditComplete
|
|
11843
12143
|
});
|
|
12144
|
+
const children = renderDiffChildren({
|
|
12145
|
+
fileDiff,
|
|
12146
|
+
renderCustomHeader,
|
|
12147
|
+
renderHeaderPrefix,
|
|
12148
|
+
renderHeaderFilenameSuffix,
|
|
12149
|
+
renderHeaderMetadata,
|
|
12150
|
+
renderAnnotation,
|
|
12151
|
+
lineAnnotations,
|
|
12152
|
+
renderGutterUtility,
|
|
12153
|
+
getHoveredLine,
|
|
12154
|
+
getAnnotationSlotName: getAnnotationSlotName2
|
|
12155
|
+
});
|
|
11844
12156
|
return /* @__PURE__ */ jsx6(DIFFS_TAG_NAME, {
|
|
11845
12157
|
ref,
|
|
11846
12158
|
className,
|
|
11847
12159
|
style,
|
|
11848
|
-
children: templateRender(
|
|
11849
|
-
fileDiff,
|
|
11850
|
-
renderCustomHeader,
|
|
11851
|
-
renderHeaderPrefix,
|
|
11852
|
-
renderHeaderFilenameSuffix,
|
|
11853
|
-
renderHeaderMetadata,
|
|
11854
|
-
renderAnnotation,
|
|
11855
|
-
lineAnnotations,
|
|
11856
|
-
renderGutterUtility,
|
|
11857
|
-
getHoveredLine,
|
|
11858
|
-
getAnnotationSlotName: getAnnotationSlotName2
|
|
11859
|
-
}), prerenderedHTML)
|
|
12160
|
+
children: templateRender(children, prerenderedHTML)
|
|
11860
12161
|
});
|
|
11861
12162
|
}
|
|
11862
12163
|
|
|
11863
|
-
// web/app/dist/server/assets/session-tool-renderer-
|
|
12164
|
+
// web/app/dist/server/assets/session-tool-renderer-TiFeeJEc.js
|
|
11864
12165
|
var STATUS_TEXT = {
|
|
11865
12166
|
queued: "Waiting to generate",
|
|
11866
12167
|
generating: "Generating image",
|
|
@@ -12394,7 +12695,7 @@ function TodoList({ items, title = "To-dos", open, defaultOpen = true, onOpenCha
|
|
|
12394
12695
|
const contentId = `${baseId}-content`;
|
|
12395
12696
|
const viewportRef = useRef3(null);
|
|
12396
12697
|
const previousComplete = useRef3(false);
|
|
12397
|
-
const [internalOpen, setInternalOpen] =
|
|
12698
|
+
const [internalOpen, setInternalOpen] = useState4(defaultOpen);
|
|
12398
12699
|
const currentOpen = open ?? internalOpen;
|
|
12399
12700
|
const completed = items.filter((item) => item.status === "completed").length;
|
|
12400
12701
|
const allComplete = items.length > 0 && completed === items.length;
|
|
@@ -12576,7 +12877,7 @@ function ToolApproval({ tool, title = "Allow this tool to run?", description, pa
|
|
|
12576
12877
|
const reduce = useReducedMotion() ?? false;
|
|
12577
12878
|
const detailsId = `${useId()}-details`;
|
|
12578
12879
|
const previousStatus = useRef3(status);
|
|
12579
|
-
const [internalOpen, setInternalOpen] =
|
|
12880
|
+
const [internalOpen, setInternalOpen] = useState4(defaultOpen);
|
|
12580
12881
|
const currentOpen = open ?? internalOpen;
|
|
12581
12882
|
const setOpen = useCallback4((next) => {
|
|
12582
12883
|
if (open === void 0) setInternalOpen(next);
|
|
@@ -13051,9 +13352,9 @@ function QuestionPrompt({ questions, questionIndex = 1, totalQuestions, onPrevio
|
|
|
13051
13352
|
const clampedIndex = Math.max(1, Math.min(questionIndex, resolvedTotal));
|
|
13052
13353
|
const activeQuestion = questions[clampedIndex - 1];
|
|
13053
13354
|
const customEnabled = activeQuestion?.allowCustom ?? false;
|
|
13054
|
-
const [selectedIds, setSelectedIds] =
|
|
13055
|
-
const [customText, setCustomText] =
|
|
13056
|
-
const [textValue, setTextValue] =
|
|
13355
|
+
const [selectedIds, setSelectedIds] = useState4(() => seedPromptState(initialAnswer, activeQuestion?.kind, customEnabled).selectedIds);
|
|
13356
|
+
const [customText, setCustomText] = useState4(() => seedPromptState(initialAnswer, activeQuestion?.kind, customEnabled).customText);
|
|
13357
|
+
const [textValue, setTextValue] = useState4(() => seedPromptState(initialAnswer, activeQuestion?.kind, customEnabled).textValue);
|
|
13057
13358
|
const showNav = resolvedTotal > 1 && (!!onPreviousQuestion || !!onNextQuestion);
|
|
13058
13359
|
const canGoPrev = clampedIndex > 1;
|
|
13059
13360
|
const canGoNext = clampedIndex < resolvedTotal;
|
|
@@ -13224,20 +13525,20 @@ function formatAnswer(answer) {
|
|
|
13224
13525
|
return ids || "Answered";
|
|
13225
13526
|
}
|
|
13226
13527
|
function QuestionTool({ part }) {
|
|
13227
|
-
const [localIndex, setLocalIndex] =
|
|
13528
|
+
const [localIndex, setLocalIndex] = useState4(part.input?.questionIndex ?? 1);
|
|
13228
13529
|
const questions = part.input?.questions ?? [];
|
|
13229
13530
|
const totalQuestions = part.input?.totalQuestions ?? questions.length;
|
|
13230
13531
|
const isControlled = typeof part.input?.questionIndex === "number";
|
|
13231
13532
|
const questionIndex = isControlled ? part.input?.questionIndex ?? 1 : questions.length > 0 ? localIndex : part.input?.questionIndex ?? 1;
|
|
13232
13533
|
const clampedIndex = Math.max(1, Math.min(questionIndex, totalQuestions));
|
|
13233
13534
|
const question = questions[clampedIndex - 1];
|
|
13234
|
-
const [localAnswers, setLocalAnswers] =
|
|
13235
|
-
const [prevQuestionIndex, setPrevQuestionIndex] =
|
|
13535
|
+
const [localAnswers, setLocalAnswers] = useState4({});
|
|
13536
|
+
const [prevQuestionIndex, setPrevQuestionIndex] = useState4(part.input?.questionIndex);
|
|
13236
13537
|
if (part.input?.questionIndex !== prevQuestionIndex) {
|
|
13237
13538
|
setPrevQuestionIndex(part.input?.questionIndex);
|
|
13238
13539
|
if (typeof part.input?.questionIndex === "number") setLocalIndex(part.input.questionIndex);
|
|
13239
13540
|
}
|
|
13240
|
-
const [prevToolCallId, setPrevToolCallId] =
|
|
13541
|
+
const [prevToolCallId, setPrevToolCallId] = useState4(part.toolCallId);
|
|
13241
13542
|
if (part.toolCallId !== prevToolCallId) {
|
|
13242
13543
|
setPrevToolCallId(part.toolCallId);
|
|
13243
13544
|
setLocalAnswers({});
|
|
@@ -13966,11 +14267,11 @@ function getPlanFileName(plan) {
|
|
|
13966
14267
|
var PlanTool = memo(function PlanTool2({ part, chatStatus }) {
|
|
13967
14268
|
const { isPending } = getToolStatus(part, chatStatus);
|
|
13968
14269
|
const plan = part.input?.plan;
|
|
13969
|
-
const [isExpanded, setIsExpanded] =
|
|
13970
|
-
const [isApproved, setIsApproved] =
|
|
13971
|
-
const [isActing, setIsActing] =
|
|
13972
|
-
const [isRefining, setIsRefining] =
|
|
13973
|
-
const [refineText, setRefineText] =
|
|
14270
|
+
const [isExpanded, setIsExpanded] = useState4(false);
|
|
14271
|
+
const [isApproved, setIsApproved] = useState4(false);
|
|
14272
|
+
const [isActing, setIsActing] = useState4(null);
|
|
14273
|
+
const [isRefining, setIsRefining] = useState4(false);
|
|
14274
|
+
const [refineText, setRefineText] = useState4("");
|
|
13974
14275
|
if (!plan) return null;
|
|
13975
14276
|
const fileName = getPlanFileName(plan);
|
|
13976
14277
|
const summary = plan.summary?.trim() ?? "";
|
|
@@ -14255,7 +14556,7 @@ var TodoTool = memo(function TodoTool2({ part }) {
|
|
|
14255
14556
|
});
|
|
14256
14557
|
}, areToolPropsEqual);
|
|
14257
14558
|
function useElapsedTime(startedAt, isPending) {
|
|
14258
|
-
const [elapsedMs, setElapsedMs] =
|
|
14559
|
+
const [elapsedMs, setElapsedMs] = useState4(0);
|
|
14259
14560
|
useEffect3(() => {
|
|
14260
14561
|
if (isPending && startedAt) {
|
|
14261
14562
|
setElapsedMs(Date.now() - startedAt);
|
|
@@ -14663,8 +14964,8 @@ function formatStreamCounts(fileCount, searchCount) {
|
|
|
14663
14964
|
var ToolGroup = memo(function ToolGroup2({ part, nestedTools = EMPTY_NESTED_TOOLS, chatStatus, completeLabel, shimmerLabel, interruptedLabel, maxVisibleTools = 5, defaultOpen, showElapsed = true }) {
|
|
14664
14965
|
const { isPending, isInterrupted } = getToolStatus(part, chatStatus);
|
|
14665
14966
|
const description = part.input?.description || "";
|
|
14666
|
-
const [expanded, setExpanded] =
|
|
14667
|
-
const [visibleCount, setVisibleCount] =
|
|
14967
|
+
const [expanded, setExpanded] = useState4(defaultOpen ?? false);
|
|
14968
|
+
const [visibleCount, setVisibleCount] = useState4(0);
|
|
14668
14969
|
const startedAt = part.callProviderMetadata?.custom?.startedAt ?? part.startedAt;
|
|
14669
14970
|
const hasNestedTools = nestedTools.length > 0;
|
|
14670
14971
|
const streamKey = part.toolCallId ?? part.id ?? "";
|