@peasant-labs/fairtrade 0.0.7 → 0.0.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/InUseShell-ClWg74-v.js +3388 -0
- package/dist/lib/commons.js +54 -54
- package/dist/lib/components.css +1 -1
- package/dist/lib/graph.js +572 -376
- package/dist/lib/tokens.css +4 -0
- package/dist/lib/tokens.json +16 -0
- package/dist/lib/types/CommitGraph.d.ts +39 -1
- package/dist/lib/types/graph/GhostCommitNode.d.ts +20 -0
- package/dist/lib/types/graph/GhostGroup.d.ts +21 -0
- package/dist/lib/types/graph/HighlightEdge.d.ts +16 -0
- package/dist/lib/types/graph/InsightPanel.d.ts +25 -0
- package/dist/lib/types/graph/RankModeControl.d.ts +13 -0
- package/dist/lib/types/graph/RankedRow.d.ts +15 -0
- package/dist/lib/types/graph/ScentTag.d.ts +15 -0
- package/dist/lib/types/graph/SessionLane.d.ts +29 -0
- package/dist/lib/types/graph/SessionOverflowDisclosure.d.ts +23 -0
- package/dist/lib/types/graph/TouchedFileCluster.d.ts +17 -0
- package/dist/lib/types/graph/codeMapState.d.ts +105 -1
- package/dist/lib/types/graph/graphContractPolicy.d.ts +24 -0
- package/dist/lib/types/graph/index.d.ts +22 -2
- package/dist/lib/types/graph/ranking.d.ts +222 -0
- package/dist/lib/{ui-CKqVB4x2.js → ui-FKKOy92_.js} +1387 -1541
- package/dist/lib/ui.js +3 -3
- package/package.json +18 -3
- package/dist/lib/InUseShell-VRWaysXY.js +0 -2488
package/dist/lib/graph.js
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { useMemo as
|
|
3
|
-
import { Fragment as
|
|
4
|
-
import { Box as
|
|
5
|
-
import { AllChangeBindings as
|
|
1
|
+
import { $ as e, A as t, B as n, C as r, D as i, E as a, F as o, G as s, H as c, I as l, J as u, K as d, L as f, M as p, N as m, O as h, P as g, Q as _, R as v, S as y, T as b, U as x, V as S, W as C, X as w, Y as T, Z as E, _ as D, at as O, b as k, ct as A, d as j, et as ee, f as M, g as N, h as P, j as F, k as I, l as te, m as L, n as R, p as z, q as B, r as ne, s as re, t as ie, tt as ae, u as oe, ut as se, v as ce, w as le, x as ue, y as de, z as fe } from "./InUseShell-ClWg74-v.js";
|
|
2
|
+
import { useCallback as pe, useEffect as me, useMemo as V, useRef as H, useState as U } from "react";
|
|
3
|
+
import { Fragment as he, jsx as W, jsxs as G } from "react/jsx-runtime";
|
|
4
|
+
import { Box as ge, Check as _e, ChevronDown as ve, ChevronRight as K, Coins as ye, CornerDownRight as be, FileCode as xe, FileDiff as Se, FileText as Ce, Folder as we, GitMerge as Te, Hash as Ee, Map as De, MessageSquare as Oe, RotateCw as ke, Search as Ae, Share2 as je, Tag as Me, TriangleAlert as Ne, X as Pe } from "lucide-react";
|
|
5
|
+
import { AllChangeBindings as Fe, AllDiffLineKinds as Ie, AllEdgeViolationKinds as Le, AllFileChangeStatuses as Re, AllInsightKinds as ze, AllInsightProvenances as Be, AllMapNodeKinds as Ve, AllReadAttributionStates as He, AllReadStateGrades as Ue, ChangeBinding as We, DiffLineKind as Ge, EdgeViolationKind as Ke, FileChangeStatus as qe, InsightKind as Je, InsightProvenance as Ye, MapNodeKind as Xe, ReadAttributionState as Ze, ReadStateGrade as Qe, isChangeBinding as $e, isDiffLineKind as et, isEdgeViolationKind as tt, isFileChangeStatus as nt, isInsightKind as rt, isInsightProvenance as it, isMapNodeKind as at, isReadAttributionState as ot, isReadStateGrade as st } from "@peasant-labs/schema";
|
|
6
6
|
//#region src/ui/graph/changeGraph.js
|
|
7
|
-
var
|
|
8
|
-
function
|
|
7
|
+
var ct = 6e4, q = 60 * ct, J = 24 * q, lt = 7 * J;
|
|
8
|
+
function Y(e, t) {
|
|
9
9
|
if (e == null) return "";
|
|
10
10
|
let n = Math.max(0, t - e);
|
|
11
|
-
return n <
|
|
11
|
+
return n < q ? `${Math.max(1, Math.floor(n / ct))}m ago` : n < J ? `${Math.floor(n / q)}h ago` : n < lt ? `${Math.floor(n / J)}d ago` : `${Math.floor(n / lt)}wk ago`;
|
|
12
12
|
}
|
|
13
|
-
function
|
|
14
|
-
let n = e.recentCommits ?? [], r = e.changes ?? [], i = e.defaultBranch, a = e.sessions ?? [], o = new Map(a.map((e) => [e.sessionId, e])), s = new Set(n.flatMap((e) => e.sessionIds ?? [])), c = r.filter((e) => !e.merged).slice().sort((e, t) =>
|
|
13
|
+
function ut(e, { nowMs: t }) {
|
|
14
|
+
let n = e.recentCommits ?? [], r = e.changes ?? [], i = e.defaultBranch, a = e.sessions ?? [], o = new Map(a.map((e) => [e.sessionId, e])), s = new Set(n.flatMap((e) => e.sessionIds ?? [])), c = r.filter((e) => !e.merged).slice().sort((e, t) => dt(t) - dt(e) || e.branch.localeCompare(t.branch)), l = r.filter((e) => e.merged && !e.reverted), u = r.filter((e) => e.merged && e.reverted), d = new Map(l.filter((e) => e.mergeCommitHash).map((e) => [e.mergeCommitHash, e])), f = c.map((e, t) => ({
|
|
15
15
|
change: e,
|
|
16
16
|
lane: t + 1,
|
|
17
17
|
baseHash: e.baseHash,
|
|
@@ -31,7 +31,7 @@ function ve(e, { nowMs: t }) {
|
|
|
31
31
|
branch: i.branch,
|
|
32
32
|
session: (i.sessionCount ?? 0) > 0,
|
|
33
33
|
tip: !0,
|
|
34
|
-
time:
|
|
34
|
+
time: Y(n.tipMs, t)
|
|
35
35
|
});
|
|
36
36
|
}
|
|
37
37
|
};
|
|
@@ -50,13 +50,13 @@ function ve(e, { nowMs: t }) {
|
|
|
50
50
|
return t ? [t] : [];
|
|
51
51
|
}),
|
|
52
52
|
merged: c ? !0 : void 0,
|
|
53
|
-
time:
|
|
53
|
+
time: Y(e.timeMs, t)
|
|
54
54
|
});
|
|
55
55
|
}), h(-Infinity);
|
|
56
56
|
let g = u.map((e) => ({
|
|
57
57
|
branch: e.branch,
|
|
58
58
|
mergedAtMs: e.mergedAtMs ?? null,
|
|
59
|
-
when:
|
|
59
|
+
when: Y(e.mergedAtMs, t)
|
|
60
60
|
})), _ = a.filter((e) => e.hasCommitBinding === !0 && !s.has(e.sessionId));
|
|
61
61
|
return {
|
|
62
62
|
commits: p,
|
|
@@ -67,108 +67,122 @@ function ve(e, { nowMs: t }) {
|
|
|
67
67
|
outsideWindowSessions: _
|
|
68
68
|
};
|
|
69
69
|
}
|
|
70
|
-
function
|
|
70
|
+
function dt(e) {
|
|
71
71
|
return e.tipCommitMs ?? Infinity;
|
|
72
72
|
}
|
|
73
73
|
//#endregion
|
|
74
74
|
//#region src/ui/graph/Changes.jsx
|
|
75
|
-
function
|
|
76
|
-
let
|
|
77
|
-
|
|
75
|
+
function ft({ payload: e, projectLabel: t, selectedId: n, onNavigate: r, onSelectChange: i, onOpenMap: a, hasMore: o = !1, onShowOlder: s, onOpenSession: c, nowMs: l }) {
|
|
76
|
+
let u = l ?? Date.now(), { commits: d, reverted: f, unlinkedSessions: p, outsideWindowSessions: m, openCount: h, mergedCount: g } = V(() => ut(e, { nowMs: u }), [e, u]), _ = e.defaultBranch, v = V(() => new Set(d.filter((e) => (e.sessionRefs?.length ?? 0) > 2).map((e) => e.id)), [d]), [y, b] = U([]);
|
|
77
|
+
me(() => {
|
|
78
|
+
b((e) => {
|
|
79
|
+
let t = e.filter((e) => v.has(e));
|
|
80
|
+
return t.length === e.length ? e : t;
|
|
81
|
+
});
|
|
82
|
+
}, [v]);
|
|
83
|
+
let x = pe((e) => {
|
|
84
|
+
v.has(e) && b((t) => {
|
|
85
|
+
let n = new Set(t);
|
|
86
|
+
return n.has(e) ? n.delete(e) : n.add(e), [...n];
|
|
87
|
+
});
|
|
88
|
+
}, [v]);
|
|
89
|
+
return /* @__PURE__ */ G("div", {
|
|
78
90
|
className: "gmp-root gmp-changes-root",
|
|
79
|
-
children: [/* @__PURE__ */
|
|
91
|
+
children: [/* @__PURE__ */ G("div", {
|
|
80
92
|
className: "gmp-changes-head",
|
|
81
|
-
children: [/* @__PURE__ */
|
|
93
|
+
children: [/* @__PURE__ */ G("div", { children: [t && /* @__PURE__ */ G("span", {
|
|
82
94
|
className: "label",
|
|
83
|
-
children: ["lines of work · ",
|
|
84
|
-
}), /* @__PURE__ */
|
|
95
|
+
children: ["lines of work · ", t]
|
|
96
|
+
}), /* @__PURE__ */ G("div", {
|
|
85
97
|
className: "gmp-changes-sub mono",
|
|
86
98
|
children: [
|
|
87
|
-
|
|
88
|
-
|
|
99
|
+
_ ? `default branch ${_} · ` : "",
|
|
100
|
+
h,
|
|
89
101
|
" open · ",
|
|
90
|
-
|
|
102
|
+
g,
|
|
91
103
|
" merged"
|
|
92
104
|
]
|
|
93
|
-
})] }), /* @__PURE__ */
|
|
105
|
+
})] }), /* @__PURE__ */ G("button", {
|
|
94
106
|
type: "button",
|
|
95
107
|
className: "btn btn-secondary btn-sm",
|
|
96
108
|
onClick: () => {
|
|
97
|
-
|
|
109
|
+
r ? r({ type: "open-map" }) : a?.();
|
|
98
110
|
},
|
|
99
|
-
children: [/* @__PURE__ */
|
|
111
|
+
children: [/* @__PURE__ */ W(ge, {
|
|
100
112
|
size: 14,
|
|
101
113
|
"aria-hidden": "true"
|
|
102
114
|
}), " open the map"]
|
|
103
115
|
})]
|
|
104
|
-
}), /* @__PURE__ */
|
|
116
|
+
}), /* @__PURE__ */ G("div", {
|
|
105
117
|
className: "gmp-changes-body",
|
|
106
118
|
children: [
|
|
107
|
-
/* @__PURE__ */
|
|
119
|
+
/* @__PURE__ */ W(T, {
|
|
108
120
|
className: "gmp-cg",
|
|
109
|
-
commits:
|
|
110
|
-
selectedId:
|
|
121
|
+
commits: d,
|
|
122
|
+
selectedId: n,
|
|
111
123
|
label: "default-branch commit history",
|
|
112
|
-
onNavigate:
|
|
113
|
-
onSelect: (e) =>
|
|
114
|
-
onOpenSession:
|
|
115
|
-
hasMore:
|
|
116
|
-
onShowOlder:
|
|
124
|
+
onNavigate: r,
|
|
125
|
+
onSelect: (e) => i?.(e),
|
|
126
|
+
onOpenSession: c,
|
|
127
|
+
hasMore: o,
|
|
128
|
+
onShowOlder: s,
|
|
129
|
+
expandedCommitSessions: y,
|
|
130
|
+
onToggleCommitSessions: x
|
|
117
131
|
}),
|
|
118
|
-
|
|
132
|
+
p.length > 0 && /* @__PURE__ */ G("section", {
|
|
119
133
|
className: "gmp-unlinked-sessions",
|
|
120
134
|
"aria-labelledby": "gmp-unlinked-sessions-heading",
|
|
121
|
-
children: [/* @__PURE__ */
|
|
135
|
+
children: [/* @__PURE__ */ W("h2", {
|
|
122
136
|
id: "gmp-unlinked-sessions-heading",
|
|
123
137
|
className: "sb-head gmp-unlinked-sessions-head",
|
|
124
138
|
children: "sessions not linked to a commit"
|
|
125
|
-
}), /* @__PURE__ */
|
|
139
|
+
}), /* @__PURE__ */ W("div", {
|
|
126
140
|
className: "gmp-unlinked-sessions-list",
|
|
127
|
-
children:
|
|
141
|
+
children: p.map((e) => /* @__PURE__ */ G("button", {
|
|
128
142
|
type: "button",
|
|
129
143
|
className: "gmp-unlinked-session",
|
|
130
144
|
onClick: () => {
|
|
131
|
-
|
|
145
|
+
r ? r({
|
|
132
146
|
type: "open-session",
|
|
133
|
-
sessionId:
|
|
147
|
+
sessionId: e.sessionId,
|
|
134
148
|
source: { kind: "unlinked" }
|
|
135
|
-
}) :
|
|
149
|
+
}) : c?.(e.sessionId);
|
|
136
150
|
},
|
|
137
|
-
children: [/* @__PURE__ */
|
|
138
|
-
},
|
|
151
|
+
children: [/* @__PURE__ */ W(O, { harness: e.harness }), /* @__PURE__ */ W("span", { children: e.title || e.sessionId })]
|
|
152
|
+
}, e.sessionId))
|
|
139
153
|
})]
|
|
140
154
|
}),
|
|
141
|
-
|
|
155
|
+
m.length > 0 && /* @__PURE__ */ G("section", {
|
|
142
156
|
className: "gmp-unlinked-sessions",
|
|
143
157
|
"aria-labelledby": "gmp-outside-window-sessions-heading",
|
|
144
|
-
children: [/* @__PURE__ */
|
|
158
|
+
children: [/* @__PURE__ */ W("h2", {
|
|
145
159
|
id: "gmp-outside-window-sessions-heading",
|
|
146
160
|
className: "sb-head gmp-unlinked-sessions-head",
|
|
147
161
|
children: "sessions linked outside this visible commit window"
|
|
148
|
-
}), /* @__PURE__ */
|
|
162
|
+
}), /* @__PURE__ */ W("div", {
|
|
149
163
|
className: "gmp-unlinked-sessions-list",
|
|
150
|
-
children:
|
|
164
|
+
children: m.map((e) => /* @__PURE__ */ G("button", {
|
|
151
165
|
type: "button",
|
|
152
166
|
className: "gmp-unlinked-session",
|
|
153
167
|
onClick: () => {
|
|
154
|
-
|
|
168
|
+
r ? r({
|
|
155
169
|
type: "open-session",
|
|
156
|
-
sessionId:
|
|
170
|
+
sessionId: e.sessionId,
|
|
157
171
|
source: { kind: "outside-window" }
|
|
158
|
-
}) :
|
|
172
|
+
}) : c?.(e.sessionId);
|
|
159
173
|
},
|
|
160
|
-
children: [/* @__PURE__ */
|
|
161
|
-
},
|
|
174
|
+
children: [/* @__PURE__ */ W(O, { harness: e.harness }), /* @__PURE__ */ W("span", { children: e.title || e.sessionId })]
|
|
175
|
+
}, e.sessionId))
|
|
162
176
|
})]
|
|
163
177
|
}),
|
|
164
|
-
|
|
178
|
+
f.length > 0 && /* @__PURE__ */ G("div", {
|
|
165
179
|
className: "gmp-merged-sec",
|
|
166
|
-
children: [/* @__PURE__ */
|
|
180
|
+
children: [/* @__PURE__ */ W("div", {
|
|
167
181
|
className: "sb-head gmp-merged-head",
|
|
168
182
|
children: "already merged in"
|
|
169
|
-
}), /* @__PURE__ */
|
|
183
|
+
}), /* @__PURE__ */ W("div", {
|
|
170
184
|
className: "gmp-merged-list",
|
|
171
|
-
children:
|
|
185
|
+
children: f.map((e) => /* @__PURE__ */ G("button", {
|
|
172
186
|
type: "button",
|
|
173
187
|
className: "gmp-merged-chip gmp-merged-revert",
|
|
174
188
|
onClick: () => {
|
|
@@ -176,16 +190,16 @@ function be({ payload: t, projectLabel: r, selectedId: i, onNavigate: a, onSelec
|
|
|
176
190
|
id: `revert:${e.branch}`,
|
|
177
191
|
branch: e.branch
|
|
178
192
|
};
|
|
179
|
-
|
|
193
|
+
r ? r({
|
|
180
194
|
type: "open-change",
|
|
181
195
|
change: {
|
|
182
196
|
id: t.id,
|
|
183
197
|
branch: t.branch
|
|
184
198
|
}
|
|
185
|
-
}) :
|
|
199
|
+
}) : i?.(t);
|
|
186
200
|
},
|
|
187
201
|
children: [
|
|
188
|
-
/* @__PURE__ */
|
|
202
|
+
/* @__PURE__ */ W(Te, {
|
|
189
203
|
size: 13,
|
|
190
204
|
"aria-hidden": "true"
|
|
191
205
|
}),
|
|
@@ -197,12 +211,12 @@ function be({ payload: t, projectLabel: r, selectedId: i, onNavigate: a, onSelec
|
|
|
197
211
|
}, e.branch))
|
|
198
212
|
})]
|
|
199
213
|
}),
|
|
200
|
-
/* @__PURE__ */
|
|
214
|
+
/* @__PURE__ */ G("div", {
|
|
201
215
|
className: "gmp-changes-legend",
|
|
202
216
|
children: [
|
|
203
|
-
/* @__PURE__ */
|
|
217
|
+
/* @__PURE__ */ G("span", {
|
|
204
218
|
className: "gmp-legend-item",
|
|
205
|
-
children: [/* @__PURE__ */
|
|
219
|
+
children: [/* @__PURE__ */ W("span", {
|
|
206
220
|
className: "cg-dot cg-dot-filled",
|
|
207
221
|
style: {
|
|
208
222
|
width: 9,
|
|
@@ -211,9 +225,9 @@ function be({ payload: t, projectLabel: r, selectedId: i, onNavigate: a, onSelec
|
|
|
211
225
|
"aria-hidden": "true"
|
|
212
226
|
}), " commit with a recorded session"]
|
|
213
227
|
}),
|
|
214
|
-
/* @__PURE__ */
|
|
228
|
+
/* @__PURE__ */ G("span", {
|
|
215
229
|
className: "gmp-legend-item",
|
|
216
|
-
children: [/* @__PURE__ */
|
|
230
|
+
children: [/* @__PURE__ */ W("span", {
|
|
217
231
|
className: "cg-dot cg-dot-hollow",
|
|
218
232
|
style: {
|
|
219
233
|
width: 9,
|
|
@@ -222,7 +236,7 @@ function be({ payload: t, projectLabel: r, selectedId: i, onNavigate: a, onSelec
|
|
|
222
236
|
"aria-hidden": "true"
|
|
223
237
|
}), " no session captured"]
|
|
224
238
|
}),
|
|
225
|
-
/* @__PURE__ */
|
|
239
|
+
/* @__PURE__ */ W("span", {
|
|
226
240
|
className: "gmp-legend-item gmp-legend-dim",
|
|
227
241
|
children: "a filled dot also flies a sparkle · select a commit to open it"
|
|
228
242
|
})
|
|
@@ -234,29 +248,29 @@ function be({ payload: t, projectLabel: r, selectedId: i, onNavigate: a, onSelec
|
|
|
234
248
|
}
|
|
235
249
|
//#endregion
|
|
236
250
|
//#region src/ui/graph/ChangeDetail.jsx
|
|
237
|
-
var
|
|
251
|
+
var pt = {
|
|
238
252
|
M: "changed",
|
|
239
253
|
A: "added",
|
|
240
254
|
D: "deleted",
|
|
241
255
|
R: "renamed"
|
|
242
|
-
},
|
|
256
|
+
}, mt = {
|
|
243
257
|
A: "chip-ok",
|
|
244
258
|
M: "",
|
|
245
259
|
D: "chip-err",
|
|
246
260
|
R: "chip-warn"
|
|
247
|
-
},
|
|
261
|
+
}, ht = {
|
|
248
262
|
context: "ctx",
|
|
249
263
|
add: "add",
|
|
250
264
|
del: "del"
|
|
251
265
|
};
|
|
252
|
-
function
|
|
266
|
+
function gt(e) {
|
|
253
267
|
let t = (e.split("/").pop() ?? e).replace(/[-_]+/g, " ").trim();
|
|
254
268
|
return t.charAt(0).toUpperCase() + t.slice(1);
|
|
255
269
|
}
|
|
256
|
-
var
|
|
257
|
-
function
|
|
270
|
+
var _t = (e) => e >= 1e3 ? `≈${(e / 1e3).toFixed(1)}k` : String(e);
|
|
271
|
+
function vt(e) {
|
|
258
272
|
let t = e.oldStart, n = e.newStart, r = e.lines.map((e) => {
|
|
259
|
-
let r =
|
|
273
|
+
let r = ht[e.kind] ?? "ctx";
|
|
260
274
|
return r === "add" ? {
|
|
261
275
|
type: r,
|
|
262
276
|
newNo: n++,
|
|
@@ -277,103 +291,103 @@ function Ee(e) {
|
|
|
277
291
|
lines: r
|
|
278
292
|
};
|
|
279
293
|
}
|
|
280
|
-
function
|
|
281
|
-
|
|
282
|
-
let
|
|
283
|
-
return /* @__PURE__ */
|
|
294
|
+
function yt({ file: e, diff: t, open: n, onToggle: r }) {
|
|
295
|
+
t && d(t);
|
|
296
|
+
let i = e.status, a = t ? new Set(t.hunks.map((e) => e.sessionId).filter(Boolean)).size : null;
|
|
297
|
+
return /* @__PURE__ */ G("div", {
|
|
284
298
|
className: "gmp-file",
|
|
285
|
-
children: [/* @__PURE__ */
|
|
299
|
+
children: [/* @__PURE__ */ G("button", {
|
|
286
300
|
type: "button",
|
|
287
301
|
className: "gmp-file-head",
|
|
288
|
-
"aria-expanded":
|
|
289
|
-
onClick:
|
|
302
|
+
"aria-expanded": n,
|
|
303
|
+
onClick: r,
|
|
290
304
|
children: [
|
|
291
|
-
|
|
305
|
+
W(n ? ve : K, {
|
|
292
306
|
size: 14,
|
|
293
307
|
"aria-hidden": "true"
|
|
294
308
|
}),
|
|
295
|
-
/* @__PURE__ */
|
|
309
|
+
/* @__PURE__ */ W("span", {
|
|
296
310
|
className: "mono gmp-file-path",
|
|
297
311
|
children: e.path
|
|
298
312
|
}),
|
|
299
|
-
/* @__PURE__ */
|
|
300
|
-
className: "chip gmp-file-status " + (
|
|
301
|
-
children:
|
|
313
|
+
/* @__PURE__ */ W("span", {
|
|
314
|
+
className: "chip gmp-file-status " + (mt[i] ?? ""),
|
|
315
|
+
children: pt[i] ?? i
|
|
302
316
|
}),
|
|
303
|
-
|
|
317
|
+
a != null && a > 0 && /* @__PURE__ */ G("span", {
|
|
304
318
|
className: "gmp-file-convos metaitem",
|
|
305
319
|
children: [
|
|
306
|
-
/* @__PURE__ */
|
|
320
|
+
/* @__PURE__ */ W(Oe, {
|
|
307
321
|
size: 13,
|
|
308
322
|
"aria-hidden": "true"
|
|
309
323
|
}),
|
|
310
324
|
" ",
|
|
311
|
-
/* @__PURE__ */
|
|
325
|
+
/* @__PURE__ */ W("span", {
|
|
312
326
|
className: "tnum",
|
|
313
|
-
children:
|
|
327
|
+
children: a
|
|
314
328
|
})
|
|
315
329
|
]
|
|
316
330
|
})
|
|
317
331
|
]
|
|
318
|
-
}),
|
|
332
|
+
}), n && /* @__PURE__ */ W("div", {
|
|
319
333
|
className: "gmp-file-body",
|
|
320
|
-
children:
|
|
334
|
+
children: t ? t.error ? /* @__PURE__ */ W("p", {
|
|
321
335
|
className: "gmp-diff-state gmp-diff-error mono",
|
|
322
|
-
children:
|
|
323
|
-
}) :
|
|
336
|
+
children: t.error
|
|
337
|
+
}) : t.binary ? /* @__PURE__ */ W("p", {
|
|
324
338
|
className: "gmp-diff-state mono",
|
|
325
339
|
children: "binary file — no textual diff."
|
|
326
|
-
}) :
|
|
340
|
+
}) : t.hunks.length === 0 ? /* @__PURE__ */ W("p", {
|
|
327
341
|
className: "gmp-diff-state mono",
|
|
328
342
|
children: "no line changes."
|
|
329
|
-
}) :
|
|
343
|
+
}) : t.hunks.map((e, n) => /* @__PURE__ */ G("div", {
|
|
330
344
|
className: "gmp-hunk",
|
|
331
345
|
children: [
|
|
332
|
-
e.sessionTitle && /* @__PURE__ */
|
|
346
|
+
e.sessionTitle && /* @__PURE__ */ G("div", {
|
|
333
347
|
className: "gmp-hunk-attrib",
|
|
334
348
|
children: [
|
|
335
|
-
/* @__PURE__ */
|
|
349
|
+
/* @__PURE__ */ W(be, {
|
|
336
350
|
size: 13,
|
|
337
351
|
"aria-hidden": "true"
|
|
338
352
|
}),
|
|
339
|
-
/* @__PURE__ */
|
|
353
|
+
/* @__PURE__ */ W("span", {
|
|
340
354
|
className: "gmp-hunk-from",
|
|
341
355
|
children: "from"
|
|
342
356
|
}),
|
|
343
|
-
/* @__PURE__ */
|
|
357
|
+
/* @__PURE__ */ W("span", {
|
|
344
358
|
className: "gmp-hunk-link",
|
|
345
359
|
children: e.sessionTitle
|
|
346
360
|
}),
|
|
347
|
-
e.sessionId && /* @__PURE__ */
|
|
361
|
+
e.sessionId && /* @__PURE__ */ W("span", {
|
|
348
362
|
className: "mono gmp-hunk-hash",
|
|
349
363
|
children: e.sessionId.slice(0, 7)
|
|
350
364
|
})
|
|
351
365
|
]
|
|
352
366
|
}),
|
|
353
|
-
/* @__PURE__ */
|
|
367
|
+
/* @__PURE__ */ W(u, {
|
|
354
368
|
file: "",
|
|
355
|
-
hunks: [
|
|
369
|
+
hunks: [vt(e)],
|
|
356
370
|
className: "gmp-hunk-diff"
|
|
357
371
|
}),
|
|
358
|
-
|
|
372
|
+
t.truncated && n === t.hunks.length - 1 && /* @__PURE__ */ W("p", {
|
|
359
373
|
className: "gmp-diff-state mono",
|
|
360
374
|
children: "diff truncated (file exceeds the size cap)."
|
|
361
375
|
})
|
|
362
376
|
]
|
|
363
|
-
},
|
|
377
|
+
}, n)) : /* @__PURE__ */ W("p", {
|
|
364
378
|
className: "gmp-diff-state mono",
|
|
365
379
|
children: "loading diff…"
|
|
366
380
|
})
|
|
367
381
|
})]
|
|
368
382
|
});
|
|
369
383
|
}
|
|
370
|
-
function
|
|
371
|
-
|
|
372
|
-
let [d, f] =
|
|
384
|
+
function bt({ payload: e, getDiff: t, title: n, annotation: r = "", onSaveAnnotation: i, onRemoveAnnotation: a, onOpenMap: o, onShare: c, onCopyRecap: l, initialOpenFiles: u = {} }) {
|
|
385
|
+
s(e);
|
|
386
|
+
let [d, f] = U(u), [p, m] = U(null), [h, g] = U(!1), [_, v] = U(""), y = H({}), b = H(null), x = n ?? gt(e.branch), S = e.work.length, C = e.newEdges.length, w = e.removedEdges.length, T = (e) => f((t) => ({
|
|
373
387
|
...t,
|
|
374
388
|
[e]: !t[e]
|
|
375
389
|
}));
|
|
376
|
-
function
|
|
390
|
+
function E(e, t) {
|
|
377
391
|
if (m(e), t) {
|
|
378
392
|
f((e) => ({
|
|
379
393
|
...e,
|
|
@@ -389,106 +403,106 @@ function Oe({ payload: e, getDiff: t, title: n, annotation: i = "", onSaveAnnota
|
|
|
389
403
|
}
|
|
390
404
|
}
|
|
391
405
|
}
|
|
392
|
-
function
|
|
406
|
+
function D(e) {
|
|
393
407
|
e.preventDefault();
|
|
394
408
|
let t = _.trim();
|
|
395
|
-
t &&
|
|
409
|
+
t && i?.(t), g(!1), v("");
|
|
396
410
|
}
|
|
397
|
-
let
|
|
398
|
-
return /* @__PURE__ */
|
|
411
|
+
let O = e.files[0]?.path;
|
|
412
|
+
return /* @__PURE__ */ G("div", {
|
|
399
413
|
className: "gmp-root gmp-detail-root",
|
|
400
414
|
ref: b,
|
|
401
415
|
children: [
|
|
402
|
-
/* @__PURE__ */
|
|
416
|
+
/* @__PURE__ */ G("div", {
|
|
403
417
|
className: "gmp-detail-head",
|
|
404
418
|
children: [
|
|
405
|
-
/* @__PURE__ */
|
|
419
|
+
/* @__PURE__ */ G("div", {
|
|
406
420
|
className: "crumb",
|
|
407
421
|
children: [
|
|
408
422
|
"review ",
|
|
409
|
-
/* @__PURE__ */
|
|
423
|
+
/* @__PURE__ */ W(K, {
|
|
410
424
|
size: 13,
|
|
411
425
|
"aria-hidden": "true"
|
|
412
426
|
}),
|
|
413
427
|
" ",
|
|
414
428
|
e.defaultBranch,
|
|
415
429
|
" ",
|
|
416
|
-
/* @__PURE__ */
|
|
430
|
+
/* @__PURE__ */ W(K, {
|
|
417
431
|
size: 13,
|
|
418
432
|
"aria-hidden": "true"
|
|
419
433
|
}),
|
|
420
434
|
" ",
|
|
421
|
-
/* @__PURE__ */
|
|
435
|
+
/* @__PURE__ */ W("span", {
|
|
422
436
|
className: "cur",
|
|
423
437
|
children: e.branch
|
|
424
438
|
})
|
|
425
439
|
]
|
|
426
440
|
}),
|
|
427
|
-
/* @__PURE__ */
|
|
441
|
+
/* @__PURE__ */ W("div", {
|
|
428
442
|
className: "gmp-detail-title",
|
|
429
443
|
children: x
|
|
430
444
|
}),
|
|
431
|
-
/* @__PURE__ */
|
|
445
|
+
/* @__PURE__ */ G("p", {
|
|
432
446
|
className: "gmp-caption",
|
|
433
447
|
children: [
|
|
434
448
|
"this line of work touched",
|
|
435
449
|
" ",
|
|
436
|
-
/* @__PURE__ */
|
|
450
|
+
/* @__PURE__ */ G("button", {
|
|
437
451
|
type: "button",
|
|
438
452
|
className: "gmp-frag" + (p === "files" ? " gmp-frag-on" : ""),
|
|
439
|
-
onClick: () =>
|
|
453
|
+
onClick: () => E("files", O),
|
|
440
454
|
children: [e.filesChanged, " files"]
|
|
441
455
|
}),
|
|
442
456
|
" ",
|
|
443
457
|
"across",
|
|
444
458
|
" ",
|
|
445
|
-
/* @__PURE__ */
|
|
459
|
+
/* @__PURE__ */ G("button", {
|
|
446
460
|
type: "button",
|
|
447
461
|
className: "gmp-frag" + (p === "conversations" ? " gmp-frag-on" : ""),
|
|
448
|
-
onClick: () =>
|
|
462
|
+
onClick: () => E("conversations"),
|
|
449
463
|
children: [S, " conversations"]
|
|
450
464
|
}),
|
|
451
465
|
", reshaping",
|
|
452
466
|
" ",
|
|
453
|
-
/* @__PURE__ */
|
|
467
|
+
/* @__PURE__ */ G("button", {
|
|
454
468
|
type: "button",
|
|
455
469
|
className: "gmp-frag" + (p === "conn" ? " gmp-frag-on" : ""),
|
|
456
|
-
onClick: () =>
|
|
470
|
+
onClick: () => E("conn"),
|
|
457
471
|
children: [
|
|
458
472
|
"+",
|
|
459
473
|
C,
|
|
460
474
|
"/−",
|
|
461
|
-
|
|
475
|
+
w,
|
|
462
476
|
" connections"
|
|
463
477
|
]
|
|
464
478
|
}),
|
|
465
479
|
"."
|
|
466
480
|
]
|
|
467
481
|
}),
|
|
468
|
-
/* @__PURE__ */
|
|
482
|
+
/* @__PURE__ */ W("span", {
|
|
469
483
|
className: "gmp-caption-hint mono",
|
|
470
484
|
children: "click any number to jump to its proof"
|
|
471
485
|
})
|
|
472
486
|
]
|
|
473
487
|
}),
|
|
474
|
-
(e.frictions.length > 0 || e.violations.length > 0) && /* @__PURE__ */
|
|
488
|
+
(e.frictions.length > 0 || e.violations.length > 0) && /* @__PURE__ */ G("div", {
|
|
475
489
|
className: "gmp-signals",
|
|
476
|
-
children: [e.frictions.map((e, t) => /* @__PURE__ */
|
|
490
|
+
children: [e.frictions.map((e, t) => /* @__PURE__ */ G("span", {
|
|
477
491
|
className: "gmp-signal",
|
|
478
492
|
children: [
|
|
479
|
-
/* @__PURE__ */
|
|
493
|
+
/* @__PURE__ */ W(ke, {
|
|
480
494
|
size: 14,
|
|
481
495
|
"aria-hidden": "true"
|
|
482
496
|
}),
|
|
483
497
|
" ",
|
|
484
498
|
e.label,
|
|
485
499
|
" · ",
|
|
486
|
-
/* @__PURE__ */
|
|
500
|
+
/* @__PURE__ */ W("span", {
|
|
487
501
|
className: "mono",
|
|
488
502
|
children: e.file
|
|
489
503
|
}),
|
|
490
504
|
" ",
|
|
491
|
-
/* @__PURE__ */
|
|
505
|
+
/* @__PURE__ */ G("b", {
|
|
492
506
|
className: "tnum",
|
|
493
507
|
children: [e.count, "×"]
|
|
494
508
|
}),
|
|
@@ -496,15 +510,15 @@ function Oe({ payload: e, getDiff: t, title: n, annotation: i = "", onSaveAnnota
|
|
|
496
510
|
e.sessions,
|
|
497
511
|
" conversations"
|
|
498
512
|
]
|
|
499
|
-
}, t)), e.violations.length > 0 && /* @__PURE__ */
|
|
513
|
+
}, t)), e.violations.length > 0 && /* @__PURE__ */ G("span", {
|
|
500
514
|
className: "gmp-signal gmp-signal-warn",
|
|
501
515
|
children: [
|
|
502
|
-
/* @__PURE__ */
|
|
516
|
+
/* @__PURE__ */ W(Ne, {
|
|
503
517
|
size: 14,
|
|
504
518
|
"aria-hidden": "true"
|
|
505
519
|
}),
|
|
506
520
|
" ",
|
|
507
|
-
/* @__PURE__ */
|
|
521
|
+
/* @__PURE__ */ W("b", {
|
|
508
522
|
className: "tnum",
|
|
509
523
|
children: e.violations.length
|
|
510
524
|
}),
|
|
@@ -512,13 +526,13 @@ function Oe({ payload: e, getDiff: t, title: n, annotation: i = "", onSaveAnnota
|
|
|
512
526
|
]
|
|
513
527
|
})]
|
|
514
528
|
}),
|
|
515
|
-
/* @__PURE__ */
|
|
529
|
+
/* @__PURE__ */ G("div", {
|
|
516
530
|
className: "gmp-totals",
|
|
517
531
|
children: [
|
|
518
|
-
/* @__PURE__ */
|
|
532
|
+
/* @__PURE__ */ G("span", {
|
|
519
533
|
className: "metaitem tnum",
|
|
520
534
|
children: [
|
|
521
|
-
/* @__PURE__ */
|
|
535
|
+
/* @__PURE__ */ W(Se, {
|
|
522
536
|
size: 14,
|
|
523
537
|
"aria-hidden": "true"
|
|
524
538
|
}),
|
|
@@ -527,37 +541,37 @@ function Oe({ payload: e, getDiff: t, title: n, annotation: i = "", onSaveAnnota
|
|
|
527
541
|
" files touched"
|
|
528
542
|
]
|
|
529
543
|
}),
|
|
530
|
-
/* @__PURE__ */
|
|
544
|
+
/* @__PURE__ */ G("span", {
|
|
531
545
|
className: "metaitem tnum",
|
|
532
546
|
children: [
|
|
533
|
-
/* @__PURE__ */
|
|
547
|
+
/* @__PURE__ */ G("span", {
|
|
534
548
|
className: "gmp-add",
|
|
535
549
|
children: ["+", C]
|
|
536
550
|
}),
|
|
537
551
|
"/",
|
|
538
|
-
/* @__PURE__ */
|
|
552
|
+
/* @__PURE__ */ G("span", {
|
|
539
553
|
className: "gmp-del",
|
|
540
|
-
children: ["−",
|
|
554
|
+
children: ["−", w]
|
|
541
555
|
}),
|
|
542
556
|
" connections"
|
|
543
557
|
]
|
|
544
558
|
}),
|
|
545
|
-
/* @__PURE__ */
|
|
559
|
+
/* @__PURE__ */ G("span", {
|
|
546
560
|
className: "metaitem tnum",
|
|
547
561
|
children: [
|
|
548
|
-
/* @__PURE__ */
|
|
562
|
+
/* @__PURE__ */ W(Ee, {
|
|
549
563
|
size: 14,
|
|
550
564
|
"aria-hidden": "true"
|
|
551
565
|
}),
|
|
552
566
|
" ai wrote ",
|
|
553
|
-
|
|
567
|
+
_t(Number(e.outputTokens)),
|
|
554
568
|
" tokens"
|
|
555
569
|
]
|
|
556
570
|
}),
|
|
557
|
-
e.costUsd != null && /* @__PURE__ */
|
|
571
|
+
e.costUsd != null && /* @__PURE__ */ G("span", {
|
|
558
572
|
className: "metaitem tnum",
|
|
559
573
|
children: [
|
|
560
|
-
/* @__PURE__ */
|
|
574
|
+
/* @__PURE__ */ W(ye, {
|
|
561
575
|
size: 14,
|
|
562
576
|
"aria-hidden": "true"
|
|
563
577
|
}),
|
|
@@ -567,78 +581,78 @@ function Oe({ payload: e, getDiff: t, title: n, annotation: i = "", onSaveAnnota
|
|
|
567
581
|
})
|
|
568
582
|
]
|
|
569
583
|
}),
|
|
570
|
-
/* @__PURE__ */
|
|
584
|
+
/* @__PURE__ */ G("div", {
|
|
571
585
|
className: "gmp-detail-sec",
|
|
572
|
-
children: [/* @__PURE__ */
|
|
586
|
+
children: [/* @__PURE__ */ W("div", {
|
|
573
587
|
className: "sb-head gmp-detail-sechead",
|
|
574
588
|
children: "files changed · click a path to open its diff"
|
|
575
|
-
}), /* @__PURE__ */
|
|
589
|
+
}), /* @__PURE__ */ W("div", {
|
|
576
590
|
className: "gmp-files",
|
|
577
|
-
children: e.files.map((e) => /* @__PURE__ */
|
|
591
|
+
children: e.files.map((e) => /* @__PURE__ */ W("div", {
|
|
578
592
|
ref: (t) => {
|
|
579
593
|
y.current[e.path] = t;
|
|
580
594
|
},
|
|
581
|
-
children: /* @__PURE__ */
|
|
595
|
+
children: /* @__PURE__ */ W(yt, {
|
|
582
596
|
file: e,
|
|
583
597
|
diff: d[e.path] ? t?.(e) : void 0,
|
|
584
598
|
open: !!d[e.path],
|
|
585
|
-
onToggle: () =>
|
|
599
|
+
onToggle: () => T(e.path)
|
|
586
600
|
})
|
|
587
601
|
}, e.path))
|
|
588
602
|
})]
|
|
589
603
|
}),
|
|
590
|
-
/* @__PURE__ */
|
|
604
|
+
/* @__PURE__ */ G("div", {
|
|
591
605
|
className: "gmp-detail-sec",
|
|
592
|
-
children: [/* @__PURE__ */
|
|
606
|
+
children: [/* @__PURE__ */ W("div", {
|
|
593
607
|
className: "sb-head gmp-detail-sechead",
|
|
594
608
|
children: "your annotation"
|
|
595
|
-
}), /* @__PURE__ */
|
|
609
|
+
}), /* @__PURE__ */ G("div", {
|
|
596
610
|
className: "gmp-annot",
|
|
597
611
|
children: [
|
|
598
|
-
|
|
612
|
+
r && /* @__PURE__ */ G("span", {
|
|
599
613
|
className: "gmp-label-chip gmp-annot-chip",
|
|
600
614
|
children: [
|
|
601
|
-
/* @__PURE__ */
|
|
615
|
+
/* @__PURE__ */ W(Me, {
|
|
602
616
|
size: 12,
|
|
603
617
|
"aria-hidden": "true"
|
|
604
618
|
}),
|
|
605
619
|
" ",
|
|
606
|
-
|
|
607
|
-
/* @__PURE__ */
|
|
620
|
+
r,
|
|
621
|
+
/* @__PURE__ */ W("button", {
|
|
608
622
|
type: "button",
|
|
609
623
|
className: "gmp-annot-x",
|
|
610
624
|
"aria-label": "remove annotation",
|
|
611
|
-
onClick: () =>
|
|
612
|
-
children: /* @__PURE__ */
|
|
625
|
+
onClick: () => a?.(),
|
|
626
|
+
children: /* @__PURE__ */ W(Pe, {
|
|
613
627
|
size: 11,
|
|
614
628
|
"aria-hidden": "true"
|
|
615
629
|
})
|
|
616
630
|
})
|
|
617
631
|
]
|
|
618
632
|
}),
|
|
619
|
-
/* @__PURE__ */
|
|
633
|
+
/* @__PURE__ */ G("button", {
|
|
620
634
|
type: "button",
|
|
621
635
|
className: "gmp-annot-add",
|
|
622
636
|
"aria-expanded": h,
|
|
623
637
|
onClick: () => g((e) => !e),
|
|
624
638
|
children: [
|
|
625
|
-
/* @__PURE__ */
|
|
639
|
+
/* @__PURE__ */ W(Me, {
|
|
626
640
|
size: 13,
|
|
627
641
|
"aria-hidden": "true"
|
|
628
642
|
}),
|
|
629
643
|
" ",
|
|
630
|
-
|
|
644
|
+
r ? "change label" : "add a label"
|
|
631
645
|
]
|
|
632
646
|
}),
|
|
633
|
-
h && /* @__PURE__ */
|
|
647
|
+
h && /* @__PURE__ */ G("form", {
|
|
634
648
|
className: "gmp-annot-pop",
|
|
635
|
-
onSubmit:
|
|
649
|
+
onSubmit: D,
|
|
636
650
|
children: [
|
|
637
|
-
/* @__PURE__ */
|
|
651
|
+
/* @__PURE__ */ W("span", {
|
|
638
652
|
className: "label",
|
|
639
653
|
children: "user.custom_label"
|
|
640
654
|
}),
|
|
641
|
-
/* @__PURE__ */
|
|
655
|
+
/* @__PURE__ */ W("input", {
|
|
642
656
|
className: "input",
|
|
643
657
|
type: "text",
|
|
644
658
|
autoFocus: !0,
|
|
@@ -647,17 +661,17 @@ function Oe({ payload: e, getDiff: t, title: n, annotation: i = "", onSaveAnnota
|
|
|
647
661
|
placeholder: "e.g. good handoff",
|
|
648
662
|
"aria-label": "annotation value"
|
|
649
663
|
}),
|
|
650
|
-
/* @__PURE__ */
|
|
664
|
+
/* @__PURE__ */ G("div", {
|
|
651
665
|
className: "gmp-annot-pop-foot",
|
|
652
|
-
children: [/* @__PURE__ */
|
|
666
|
+
children: [/* @__PURE__ */ W("button", {
|
|
653
667
|
type: "button",
|
|
654
668
|
className: "btn btn-ghost btn-sm",
|
|
655
669
|
onClick: () => g(!1),
|
|
656
670
|
children: "cancel"
|
|
657
|
-
}), /* @__PURE__ */
|
|
671
|
+
}), /* @__PURE__ */ G("button", {
|
|
658
672
|
type: "submit",
|
|
659
673
|
className: "btn btn-primary btn-sm",
|
|
660
|
-
children: [/* @__PURE__ */
|
|
674
|
+
children: [/* @__PURE__ */ W(_e, {
|
|
661
675
|
size: 13,
|
|
662
676
|
"aria-hidden": "true"
|
|
663
677
|
}), " save"]
|
|
@@ -668,24 +682,24 @@ function Oe({ payload: e, getDiff: t, title: n, annotation: i = "", onSaveAnnota
|
|
|
668
682
|
]
|
|
669
683
|
})]
|
|
670
684
|
}),
|
|
671
|
-
/* @__PURE__ */
|
|
685
|
+
/* @__PURE__ */ G("div", {
|
|
672
686
|
className: "gmp-exits",
|
|
673
687
|
children: [
|
|
674
|
-
/* @__PURE__ */
|
|
688
|
+
/* @__PURE__ */ G("button", {
|
|
675
689
|
type: "button",
|
|
676
690
|
className: "btn btn-secondary btn-sm",
|
|
677
|
-
onClick: () =>
|
|
678
|
-
children: [/* @__PURE__ */
|
|
691
|
+
onClick: () => o?.(),
|
|
692
|
+
children: [/* @__PURE__ */ W(ge, {
|
|
679
693
|
size: 14,
|
|
680
694
|
"aria-hidden": "true"
|
|
681
695
|
}), " see this work on the code map"]
|
|
682
696
|
}),
|
|
683
|
-
/* @__PURE__ */
|
|
697
|
+
/* @__PURE__ */ G("button", {
|
|
684
698
|
type: "button",
|
|
685
699
|
className: "btn btn-secondary btn-sm",
|
|
686
700
|
onClick: () => c?.(),
|
|
687
701
|
children: [
|
|
688
|
-
/* @__PURE__ */
|
|
702
|
+
/* @__PURE__ */ W(je, {
|
|
689
703
|
size: 14,
|
|
690
704
|
"aria-hidden": "true"
|
|
691
705
|
}),
|
|
@@ -694,16 +708,16 @@ function Oe({ payload: e, getDiff: t, title: n, annotation: i = "", onSaveAnnota
|
|
|
694
708
|
" conversations…"
|
|
695
709
|
]
|
|
696
710
|
}),
|
|
697
|
-
/* @__PURE__ */
|
|
711
|
+
/* @__PURE__ */ G("button", {
|
|
698
712
|
type: "button",
|
|
699
713
|
className: "btn btn-secondary btn-sm",
|
|
700
714
|
onClick: () => l?.(),
|
|
701
|
-
children: [/* @__PURE__ */
|
|
715
|
+
children: [/* @__PURE__ */ W(Ce, {
|
|
702
716
|
size: 14,
|
|
703
717
|
"aria-hidden": "true"
|
|
704
718
|
}), " copy recap"]
|
|
705
719
|
}),
|
|
706
|
-
/* @__PURE__ */
|
|
720
|
+
/* @__PURE__ */ G("code", {
|
|
707
721
|
className: "gmp-gitdiff mono",
|
|
708
722
|
children: [
|
|
709
723
|
"git diff ",
|
|
@@ -714,7 +728,7 @@ function Oe({ payload: e, getDiff: t, title: n, annotation: i = "", onSaveAnnota
|
|
|
714
728
|
})
|
|
715
729
|
]
|
|
716
730
|
}),
|
|
717
|
-
/* @__PURE__ */
|
|
731
|
+
/* @__PURE__ */ W("p", {
|
|
718
732
|
className: "gmp-boundary mono",
|
|
719
733
|
children: "shows what changed and the recorded work behind it, not whether the change is correct or secure."
|
|
720
734
|
})
|
|
@@ -723,77 +737,77 @@ function Oe({ payload: e, getDiff: t, title: n, annotation: i = "", onSaveAnnota
|
|
|
723
737
|
}
|
|
724
738
|
//#endregion
|
|
725
739
|
//#region src/ui/graph/CodeMap.jsx
|
|
726
|
-
var
|
|
740
|
+
var xt = Object.freeze({
|
|
727
741
|
project: "overview",
|
|
728
742
|
package: "folders",
|
|
729
743
|
file: "files"
|
|
730
|
-
}),
|
|
744
|
+
}), St = Object.freeze({
|
|
731
745
|
overview: "project",
|
|
732
746
|
folders: "package",
|
|
733
747
|
files: "file"
|
|
734
748
|
});
|
|
735
|
-
function
|
|
736
|
-
let
|
|
749
|
+
function Ct({ payload: e, zoom: t, onZoomChange: n, selectedId: r, onSelect: i, onExpand: a, highlightedIds: o, nodeDeltas: s, structureEdgeDeltas: c, height: l = 520, ariaLabel: u = "code map", className: d = "", viewport: f, onViewportChange: p, state: m, onStateChange: h }) {
|
|
750
|
+
let g = V(() => {
|
|
737
751
|
let t = /* @__PURE__ */ new Map();
|
|
738
752
|
for (let n of e?.nodes ?? []) t.set(n.id, n);
|
|
739
753
|
return t;
|
|
740
|
-
}, [e?.nodes]),
|
|
754
|
+
}, [e?.nodes]), _ = V(() => m === void 0 ? null : z(m), [m]), v = V(() => _ ? L(e, _) : null, [e, _]), y = V(() => wt(e && {
|
|
741
755
|
...e,
|
|
742
|
-
nodes:
|
|
743
|
-
}), [e,
|
|
744
|
-
|
|
745
|
-
function
|
|
746
|
-
if (!
|
|
747
|
-
let t =
|
|
748
|
-
|
|
756
|
+
nodes: v?.canvas.allNodes ?? e.nodes
|
|
757
|
+
}), [e, v?.canvas.allNodes]), b = v ? xt[v.canvas.grain] ?? "folders" : xt[t?.level ?? "package"], x = v?.canvas.expandedIds ?? t?.expanded, S = H(b);
|
|
758
|
+
S.current = b;
|
|
759
|
+
function C(e) {
|
|
760
|
+
if (!_) return;
|
|
761
|
+
let t = D(_, e);
|
|
762
|
+
M(_, t) || h?.(t);
|
|
749
763
|
}
|
|
750
|
-
return /* @__PURE__ */
|
|
751
|
-
data:
|
|
752
|
-
grain:
|
|
753
|
-
expandedIds:
|
|
754
|
-
visibleIds:
|
|
755
|
-
hierarchy:
|
|
756
|
-
selectedId:
|
|
764
|
+
return /* @__PURE__ */ W(te, {
|
|
765
|
+
data: y,
|
|
766
|
+
grain: b,
|
|
767
|
+
expandedIds: x,
|
|
768
|
+
visibleIds: v?.canvas.visibleIds,
|
|
769
|
+
hierarchy: v?.canvas.hierarchy,
|
|
770
|
+
selectedId: v ? v.canvas.selectedId : r,
|
|
757
771
|
highlightedIds: o,
|
|
758
772
|
nodeDeltas: s,
|
|
759
|
-
edgeDeltas:
|
|
773
|
+
edgeDeltas: c,
|
|
760
774
|
onSelect: (e) => {
|
|
761
|
-
i?.(e, e ?
|
|
775
|
+
i?.(e, e ? g.get(e) ?? null : null);
|
|
762
776
|
},
|
|
763
777
|
onExpand: a,
|
|
764
778
|
onGrainChange: (e) => {
|
|
765
|
-
|
|
766
|
-
level:
|
|
779
|
+
S.current = e, n?.({
|
|
780
|
+
level: St[e] ?? "package",
|
|
767
781
|
expanded: []
|
|
768
782
|
});
|
|
769
783
|
},
|
|
770
784
|
onExpandedIdsChange: (e) => {
|
|
771
785
|
n?.({
|
|
772
|
-
level:
|
|
786
|
+
level: St[S.current] ?? "package",
|
|
773
787
|
expanded: e
|
|
774
788
|
});
|
|
775
789
|
},
|
|
776
|
-
height:
|
|
777
|
-
ariaLabel:
|
|
778
|
-
className:
|
|
779
|
-
viewport:
|
|
790
|
+
height: l,
|
|
791
|
+
ariaLabel: u,
|
|
792
|
+
className: d,
|
|
793
|
+
viewport: v ? v.canvas.viewport : f,
|
|
780
794
|
onViewportChange: (e) => {
|
|
781
|
-
|
|
795
|
+
p?.(e);
|
|
782
796
|
},
|
|
783
|
-
onStateAction:
|
|
784
|
-
canonicalControlled:
|
|
797
|
+
onStateAction: _ ? C : void 0,
|
|
798
|
+
canonicalControlled: _ !== null
|
|
785
799
|
});
|
|
786
800
|
}
|
|
787
|
-
function
|
|
788
|
-
e &&
|
|
789
|
-
let t = e?.nodes ?? [], n =
|
|
801
|
+
function wt(e) {
|
|
802
|
+
e && B(e);
|
|
803
|
+
let t = e?.nodes ?? [], n = Et(e?.violations ?? []);
|
|
790
804
|
return {
|
|
791
805
|
nodes: t.map((e) => ({
|
|
792
806
|
id: e.id,
|
|
793
807
|
label: e.name || e.id,
|
|
794
808
|
kind: e.kind === "file" ? "file" : "folder",
|
|
795
809
|
loc: e.loc ?? 0,
|
|
796
|
-
coverage:
|
|
810
|
+
coverage: Tt(e.recordedFiles, e.totalFiles),
|
|
797
811
|
parent: e.parent || void 0,
|
|
798
812
|
violations: n.get(e.id) ?? 0,
|
|
799
813
|
layer: e.layer,
|
|
@@ -807,96 +821,96 @@ function Me(e) {
|
|
|
807
821
|
}))
|
|
808
822
|
};
|
|
809
823
|
}
|
|
810
|
-
function
|
|
824
|
+
function Tt(e, t) {
|
|
811
825
|
let n = Number(t) || 0;
|
|
812
826
|
if (n <= 0) return 0;
|
|
813
827
|
let r = Math.max(0, Math.min(1, (Number(e) || 0) / n));
|
|
814
828
|
return Math.max(0, Math.min(4, Math.round(r * 4)));
|
|
815
829
|
}
|
|
816
|
-
function
|
|
830
|
+
function Et(e) {
|
|
817
831
|
let t = /* @__PURE__ */ new Map();
|
|
818
|
-
for (let n of e)
|
|
832
|
+
for (let n of e) Dt(t, n.from), Dt(t, n.to);
|
|
819
833
|
return t;
|
|
820
834
|
}
|
|
821
|
-
function
|
|
835
|
+
function Dt(e, t) {
|
|
822
836
|
t && e.set(t, (e.get(t) ?? 0) + 1);
|
|
823
837
|
}
|
|
824
838
|
//#endregion
|
|
825
839
|
//#region src/ui/graph/CodeMapNavigator.jsx
|
|
826
|
-
function
|
|
827
|
-
let [
|
|
840
|
+
function Ot({ payload: e, grain: t = "package", expandedIds: n, onExpandedIdsChange: r, selectedId: i = null, onSelect: a, focusedId: o, onFocusChange: s, filter: c = "", onFilterChange: l, onOpenMap: u, onStateAction: d, ariaLabel: f = "code map navigator" }) {
|
|
841
|
+
let [p, m] = U(() => /* @__PURE__ */ new Set()), [h, g] = U(null), _ = n === void 0 ? p : new Set(n), v = o === void 0 ? h : o, y = H(/* @__PURE__ */ new Map()), b = V(() => L(e, z({
|
|
828
842
|
grain: t,
|
|
829
|
-
expandedIds: Array.from(
|
|
843
|
+
expandedIds: Array.from(_),
|
|
830
844
|
selectedId: i,
|
|
831
|
-
navigatorFocusedId:
|
|
845
|
+
navigatorFocusedId: v,
|
|
832
846
|
navigatorFilter: c
|
|
833
847
|
})), [
|
|
834
848
|
e,
|
|
835
849
|
t,
|
|
836
|
-
|
|
850
|
+
At(_),
|
|
837
851
|
i,
|
|
838
|
-
|
|
852
|
+
v,
|
|
839
853
|
c
|
|
840
|
-
]),
|
|
841
|
-
function
|
|
842
|
-
n === void 0 &&
|
|
854
|
+
]), x = b.rows, S = b.focusedId, C = b.selected, w = C ? x.find((e) => e.node.id === C.id) : null, T = !!w?.canExpand && !w.forcedOpen;
|
|
855
|
+
function E(e) {
|
|
856
|
+
n === void 0 && m(e), d?.({
|
|
843
857
|
type: "set-expanded",
|
|
844
858
|
ids: Array.from(e)
|
|
845
859
|
}), r?.(Array.from(e));
|
|
846
860
|
}
|
|
847
|
-
function
|
|
848
|
-
let t = new Set(
|
|
849
|
-
t.has(e) ? t.delete(e) : t.add(e),
|
|
861
|
+
function D(e) {
|
|
862
|
+
let t = new Set(_);
|
|
863
|
+
t.has(e) ? t.delete(e) : t.add(e), E(t);
|
|
850
864
|
}
|
|
851
|
-
function
|
|
852
|
-
o === void 0 &&
|
|
865
|
+
function O(e) {
|
|
866
|
+
o === void 0 && g(e), d?.({
|
|
853
867
|
type: "focus",
|
|
854
868
|
id: e
|
|
855
|
-
}), s?.(e),
|
|
869
|
+
}), s?.(e), y.current.get(e)?.focus();
|
|
856
870
|
}
|
|
857
|
-
function
|
|
858
|
-
o === void 0 &&
|
|
871
|
+
function k(e) {
|
|
872
|
+
o === void 0 && g(e.id), y.current.get(e.id)?.focus(), d?.({
|
|
859
873
|
type: "select",
|
|
860
874
|
id: e.id
|
|
861
875
|
}), s?.(e.id), a?.(e.id, e);
|
|
862
876
|
}
|
|
863
|
-
function
|
|
864
|
-
let n =
|
|
877
|
+
function A(e, t) {
|
|
878
|
+
let n = x[t];
|
|
865
879
|
if (!n) return;
|
|
866
880
|
let { node: r } = n, i = null;
|
|
867
|
-
if (e.key === "ArrowDown") i =
|
|
868
|
-
else if (e.key === "ArrowUp") i =
|
|
869
|
-
else if (e.key === "Home") i =
|
|
870
|
-
else if (e.key === "End") i =
|
|
871
|
-
else if (e.key === "ArrowRight" && (n.canExpand || n.forcedOpen)) n.forcedOpen || n.expanded ? i = n.childIds[0] ?? null :
|
|
872
|
-
else if (e.key === "ArrowLeft") !n.forcedOpen && n.canExpand && n.expanded ?
|
|
881
|
+
if (e.key === "ArrowDown") i = x[Math.min(t + 1, x.length - 1)]?.node.id;
|
|
882
|
+
else if (e.key === "ArrowUp") i = x[Math.max(t - 1, 0)]?.node.id;
|
|
883
|
+
else if (e.key === "Home") i = x[0]?.node.id;
|
|
884
|
+
else if (e.key === "End") i = x[x.length - 1]?.node.id;
|
|
885
|
+
else if (e.key === "ArrowRight" && (n.canExpand || n.forcedOpen)) n.forcedOpen || n.expanded ? i = n.childIds[0] ?? null : _.has(r.id) || D(r.id);
|
|
886
|
+
else if (e.key === "ArrowLeft") !n.forcedOpen && n.canExpand && n.expanded ? D(r.id) : i = n.parentId;
|
|
873
887
|
else if (e.key === "Enter" || e.key === " ") {
|
|
874
|
-
|
|
888
|
+
k(r), e.preventDefault();
|
|
875
889
|
return;
|
|
876
890
|
} else return;
|
|
877
|
-
e.preventDefault(), i &&
|
|
891
|
+
e.preventDefault(), i && O(i);
|
|
878
892
|
}
|
|
879
|
-
return /* @__PURE__ */
|
|
893
|
+
return /* @__PURE__ */ G("section", {
|
|
880
894
|
className: "gmp-navigator",
|
|
881
|
-
"aria-label":
|
|
895
|
+
"aria-label": f,
|
|
882
896
|
children: [
|
|
883
|
-
/* @__PURE__ */
|
|
897
|
+
/* @__PURE__ */ G("header", {
|
|
884
898
|
className: "gmp-navigator-head",
|
|
885
|
-
children: [/* @__PURE__ */
|
|
899
|
+
children: [/* @__PURE__ */ G("div", { children: [/* @__PURE__ */ W("p", {
|
|
886
900
|
className: "gmp-navigator-kicker",
|
|
887
901
|
children: "browse the codebase"
|
|
888
|
-
}), /* @__PURE__ */
|
|
902
|
+
}), /* @__PURE__ */ W("p", {
|
|
889
903
|
className: "gmp-navigator-note",
|
|
890
904
|
children: "choose an area for its recorded work, then open the spatial map when relationships matter"
|
|
891
|
-
})] }), /* @__PURE__ */
|
|
905
|
+
})] }), /* @__PURE__ */ G("label", {
|
|
892
906
|
className: "gmp-navigator-search",
|
|
893
907
|
children: [
|
|
894
|
-
/* @__PURE__ */
|
|
895
|
-
/* @__PURE__ */
|
|
908
|
+
/* @__PURE__ */ W(Ae, { "aria-hidden": "true" }),
|
|
909
|
+
/* @__PURE__ */ W("span", {
|
|
896
910
|
className: "mc-sr",
|
|
897
911
|
children: "filter code areas"
|
|
898
912
|
}),
|
|
899
|
-
/* @__PURE__ */
|
|
913
|
+
/* @__PURE__ */ W("input", {
|
|
900
914
|
value: c,
|
|
901
915
|
onChange: (e) => {
|
|
902
916
|
d?.({
|
|
@@ -909,13 +923,13 @@ function Ie({ payload: e, grain: t = "package", expandedIds: n, onExpandedIdsCha
|
|
|
909
923
|
]
|
|
910
924
|
})]
|
|
911
925
|
}),
|
|
912
|
-
|
|
926
|
+
b.staleSelectedId ? /* @__PURE__ */ G("p", {
|
|
913
927
|
className: "gmp-navigator-missing",
|
|
914
928
|
role: "status",
|
|
915
929
|
children: [
|
|
916
930
|
"the selected code area is not present in this map.",
|
|
917
931
|
" ",
|
|
918
|
-
/* @__PURE__ */
|
|
932
|
+
/* @__PURE__ */ W("button", {
|
|
919
933
|
type: "button",
|
|
920
934
|
onClick: () => {
|
|
921
935
|
d?.({ type: "clear-selection" }), a?.(null, null);
|
|
@@ -924,68 +938,68 @@ function Ie({ payload: e, grain: t = "package", expandedIds: n, onExpandedIdsCha
|
|
|
924
938
|
})
|
|
925
939
|
]
|
|
926
940
|
}) : null,
|
|
927
|
-
/* @__PURE__ */
|
|
941
|
+
/* @__PURE__ */ G("div", {
|
|
928
942
|
className: "gmp-navigator-body",
|
|
929
|
-
children: [/* @__PURE__ */
|
|
943
|
+
children: [/* @__PURE__ */ W("div", {
|
|
930
944
|
role: "tree",
|
|
931
945
|
"aria-label": "code areas",
|
|
932
946
|
className: "gmp-navigator-tree",
|
|
933
947
|
"data-grain": t,
|
|
934
|
-
children:
|
|
948
|
+
children: x.length === 0 ? /* @__PURE__ */ W("p", {
|
|
935
949
|
className: "gmp-navigator-empty",
|
|
936
950
|
role: "status",
|
|
937
951
|
children: "no code areas match this filter"
|
|
938
|
-
}) :
|
|
939
|
-
let n = e.canExpand || e.forcedOpen, r = e.expanded, a =
|
|
940
|
-
return /* @__PURE__ */
|
|
952
|
+
}) : x.map((e, t) => {
|
|
953
|
+
let n = e.canExpand || e.forcedOpen, r = e.expanded, a = S === e.node.id;
|
|
954
|
+
return /* @__PURE__ */ W(kt, {
|
|
941
955
|
row: e,
|
|
942
956
|
hasChildren: n,
|
|
943
957
|
isExpanded: r,
|
|
944
958
|
selected: i === e.node.id,
|
|
945
959
|
tabbable: a,
|
|
946
960
|
setRef: (t) => {
|
|
947
|
-
t ?
|
|
961
|
+
t ? y.current.set(e.node.id, t) : y.current.delete(e.node.id);
|
|
948
962
|
},
|
|
949
963
|
onFocus: () => {
|
|
950
|
-
o === void 0 &&
|
|
964
|
+
o === void 0 && g(e.node.id);
|
|
951
965
|
},
|
|
952
|
-
onSelect: () =>
|
|
966
|
+
onSelect: () => k(e.node),
|
|
953
967
|
onToggle: () => {
|
|
954
|
-
e.forcedOpen ||
|
|
968
|
+
e.forcedOpen || D(e.node.id);
|
|
955
969
|
},
|
|
956
|
-
onKeyDown: (e) =>
|
|
970
|
+
onKeyDown: (e) => A(e, t)
|
|
957
971
|
}, e.node.id);
|
|
958
972
|
})
|
|
959
|
-
}), /* @__PURE__ */
|
|
973
|
+
}), /* @__PURE__ */ W("aside", {
|
|
960
974
|
className: "gmp-navigator-actions",
|
|
961
975
|
"aria-label": "selected code area",
|
|
962
|
-
children:
|
|
963
|
-
/* @__PURE__ */
|
|
976
|
+
children: C ? /* @__PURE__ */ G(he, { children: [
|
|
977
|
+
/* @__PURE__ */ W("p", {
|
|
964
978
|
className: "gmp-navigator-selected",
|
|
965
|
-
children:
|
|
979
|
+
children: C.name || C.id
|
|
966
980
|
}),
|
|
967
|
-
/* @__PURE__ */
|
|
981
|
+
/* @__PURE__ */ W("p", {
|
|
968
982
|
className: "gmp-navigator-selected-path",
|
|
969
|
-
children:
|
|
983
|
+
children: C.id
|
|
970
984
|
}),
|
|
971
|
-
|
|
985
|
+
T ? /* @__PURE__ */ G("button", {
|
|
972
986
|
type: "button",
|
|
973
987
|
className: "gmp-navigator-action",
|
|
974
|
-
onClick: () =>
|
|
975
|
-
children: [/* @__PURE__ */
|
|
988
|
+
onClick: () => D(C.id),
|
|
989
|
+
children: [/* @__PURE__ */ W(K, { "aria-hidden": "true" }), _.has(C.id) ? "hide children" : "show children"]
|
|
976
990
|
}) : null,
|
|
977
|
-
/* @__PURE__ */
|
|
991
|
+
/* @__PURE__ */ G("button", {
|
|
978
992
|
type: "button",
|
|
979
993
|
className: "gmp-navigator-action gmp-navigator-action--primary",
|
|
980
994
|
onClick: () => {
|
|
981
995
|
d?.({
|
|
982
996
|
type: "open-in-map",
|
|
983
|
-
id:
|
|
984
|
-
}), u?.(
|
|
997
|
+
id: C.id
|
|
998
|
+
}), u?.(C.id);
|
|
985
999
|
},
|
|
986
|
-
children: [/* @__PURE__ */
|
|
1000
|
+
children: [/* @__PURE__ */ W(De, { "aria-hidden": "true" }), " open in map"]
|
|
987
1001
|
})
|
|
988
|
-
] }) : /* @__PURE__ */
|
|
1002
|
+
] }) : /* @__PURE__ */ W("p", {
|
|
989
1003
|
className: "gmp-navigator-empty",
|
|
990
1004
|
children: "select an area to see its recorded work and map context"
|
|
991
1005
|
})
|
|
@@ -994,13 +1008,13 @@ function Ie({ payload: e, grain: t = "package", expandedIds: n, onExpandedIdsCha
|
|
|
994
1008
|
]
|
|
995
1009
|
});
|
|
996
1010
|
}
|
|
997
|
-
function
|
|
998
|
-
return /* @__PURE__ */
|
|
1011
|
+
function kt({ row: e, hasChildren: t, isExpanded: n, selected: r, tabbable: i, setRef: a, onFocus: o, onSelect: s, onToggle: c, onKeyDown: l }) {
|
|
1012
|
+
return /* @__PURE__ */ G("div", {
|
|
999
1013
|
role: "none",
|
|
1000
1014
|
className: "gmp-navigator-row-wrap",
|
|
1001
1015
|
"data-selected": r,
|
|
1002
1016
|
style: { "--gmp-tree-depth": e.depth },
|
|
1003
|
-
children: [t ? /* @__PURE__ */
|
|
1017
|
+
children: [t ? /* @__PURE__ */ W("button", {
|
|
1004
1018
|
type: "button",
|
|
1005
1019
|
className: "gmp-navigator-disclosure",
|
|
1006
1020
|
tabIndex: -1,
|
|
@@ -1011,14 +1025,14 @@ function Le({ row: e, hasChildren: t, isExpanded: n, selected: r, tabbable: i, s
|
|
|
1011
1025
|
onClick: (t) => {
|
|
1012
1026
|
t.stopPropagation(), e.forcedOpen || c();
|
|
1013
1027
|
},
|
|
1014
|
-
children: /* @__PURE__ */
|
|
1028
|
+
children: /* @__PURE__ */ W(K, {
|
|
1015
1029
|
className: "gmp-navigator-chevron",
|
|
1016
1030
|
"aria-hidden": "true"
|
|
1017
1031
|
})
|
|
1018
|
-
}) : /* @__PURE__ */
|
|
1032
|
+
}) : /* @__PURE__ */ W("span", {
|
|
1019
1033
|
className: "gmp-navigator-disclosure-placeholder",
|
|
1020
1034
|
"aria-hidden": "true"
|
|
1021
|
-
}), /* @__PURE__ */
|
|
1035
|
+
}), /* @__PURE__ */ G("div", {
|
|
1022
1036
|
ref: a,
|
|
1023
1037
|
role: "treeitem",
|
|
1024
1038
|
"aria-level": e.depth + 1,
|
|
@@ -1033,154 +1047,154 @@ function Le({ row: e, hasChildren: t, isExpanded: n, selected: r, tabbable: i, s
|
|
|
1033
1047
|
},
|
|
1034
1048
|
onKeyDown: l,
|
|
1035
1049
|
children: [
|
|
1036
|
-
e.node.kind === "file" ? /* @__PURE__ */
|
|
1037
|
-
/* @__PURE__ */
|
|
1050
|
+
e.node.kind === "file" ? /* @__PURE__ */ W(xe, { "aria-hidden": "true" }) : /* @__PURE__ */ W(we, { "aria-hidden": "true" }),
|
|
1051
|
+
/* @__PURE__ */ W("span", {
|
|
1038
1052
|
className: "gmp-navigator-path",
|
|
1039
1053
|
children: e.node.name || e.node.id
|
|
1040
1054
|
}),
|
|
1041
|
-
/* @__PURE__ */
|
|
1055
|
+
/* @__PURE__ */ G("span", {
|
|
1042
1056
|
className: "gmp-navigator-meta",
|
|
1043
|
-
children: [/* @__PURE__ */
|
|
1057
|
+
children: [/* @__PURE__ */ G("span", { children: [jt(e.node.loc ?? 0), " lines"] }), /* @__PURE__ */ W("span", { children: Mt(e.node.recordedFiles, e.node.totalFiles) })]
|
|
1044
1058
|
})
|
|
1045
1059
|
]
|
|
1046
1060
|
})]
|
|
1047
1061
|
});
|
|
1048
1062
|
}
|
|
1049
|
-
function
|
|
1063
|
+
function At(e) {
|
|
1050
1064
|
return Array.from(e).sort().join("\0");
|
|
1051
1065
|
}
|
|
1052
|
-
function
|
|
1066
|
+
function jt(e) {
|
|
1053
1067
|
return new Intl.NumberFormat("en", {
|
|
1054
1068
|
notation: "compact",
|
|
1055
1069
|
maximumFractionDigits: 1
|
|
1056
1070
|
}).format(Number(e) || 0);
|
|
1057
1071
|
}
|
|
1058
|
-
function
|
|
1072
|
+
function Mt(e, t) {
|
|
1059
1073
|
let n = Number(t) || 0;
|
|
1060
1074
|
return n <= 0 ? "no coverage data" : `${Math.round((Number(e) || 0) / n * 100)}% recorded`;
|
|
1061
1075
|
}
|
|
1062
1076
|
//#endregion
|
|
1063
1077
|
//#region src/ui/graph/CodeMapComposition.jsx
|
|
1064
|
-
function
|
|
1065
|
-
let
|
|
1066
|
-
|
|
1067
|
-
|
|
1068
|
-
|
|
1069
|
-
]),
|
|
1070
|
-
function
|
|
1071
|
-
|
|
1078
|
+
function Nt({ payload: e, zoom: t, onZoomChange: n, selectedId: r, onSelect: i, onExpand: a, highlightedIds: o, nodeDeltas: s, structureEdgeDeltas: c, height: l = 480, ariaLabel: u = "code map", canvasSlot: d, rail: f, toolbar: p, sheetTitle: m = "code area", sheetMeta: h, railSide: g = "right", legend: _, canvasWrapperClassName: v = "", canvasWrapperStyle: y, className: b = "", presentation: x = "canvas", navigatorSlot: S, onPresentationChange: C, viewport: w, onViewportChange: T, state: E, defaultState: O, onStateChange: k }) {
|
|
1079
|
+
let A = E !== void 0 || O !== void 0, [j, ee] = U(() => z(O)), N = V(() => A ? z(E ?? j) : null, [
|
|
1080
|
+
A,
|
|
1081
|
+
E,
|
|
1082
|
+
j
|
|
1083
|
+
]), P = N?.presentation ?? x;
|
|
1084
|
+
function F(e, t) {
|
|
1085
|
+
E === void 0 && ee(e), k?.(e), t?.(e);
|
|
1072
1086
|
}
|
|
1073
|
-
function
|
|
1074
|
-
if (!
|
|
1075
|
-
let n =
|
|
1076
|
-
|
|
1087
|
+
function I(e, t) {
|
|
1088
|
+
if (!N) return;
|
|
1089
|
+
let n = D(N, e);
|
|
1090
|
+
M(N, n) || F(n, t);
|
|
1077
1091
|
}
|
|
1078
|
-
let te =
|
|
1092
|
+
let te = A || C ? /* @__PURE__ */ G(he, { children: [/* @__PURE__ */ G("div", {
|
|
1079
1093
|
className: "gmp-presentation-switch",
|
|
1080
1094
|
role: "group",
|
|
1081
1095
|
"aria-label": "code map view",
|
|
1082
|
-
children: [/* @__PURE__ */
|
|
1096
|
+
children: [/* @__PURE__ */ W("button", {
|
|
1083
1097
|
type: "button",
|
|
1084
|
-
"aria-pressed":
|
|
1085
|
-
onClick: () =>
|
|
1098
|
+
"aria-pressed": P === "navigator",
|
|
1099
|
+
onClick: () => A ? I({
|
|
1086
1100
|
type: "set-presentation",
|
|
1087
1101
|
presentation: "navigator"
|
|
1088
|
-
}, () =>
|
|
1089
|
-
children:
|
|
1090
|
-
}), /* @__PURE__ */
|
|
1102
|
+
}, () => C?.("navigator")) : C?.("navigator"),
|
|
1103
|
+
children: P === "canvas" ? "back to browse" : "browse"
|
|
1104
|
+
}), /* @__PURE__ */ W("button", {
|
|
1091
1105
|
type: "button",
|
|
1092
|
-
"aria-pressed":
|
|
1093
|
-
onClick: () =>
|
|
1106
|
+
"aria-pressed": P === "canvas",
|
|
1107
|
+
onClick: () => A ? I({
|
|
1094
1108
|
type: "set-presentation",
|
|
1095
1109
|
presentation: "canvas"
|
|
1096
|
-
}, () =>
|
|
1110
|
+
}, () => C?.("canvas")) : C?.("canvas"),
|
|
1097
1111
|
children: "spatial map"
|
|
1098
1112
|
})]
|
|
1099
|
-
}),
|
|
1113
|
+
}), p] }) : p, L = d ?? /* @__PURE__ */ W(Ct, {
|
|
1100
1114
|
payload: e,
|
|
1101
|
-
zoom:
|
|
1102
|
-
level:
|
|
1103
|
-
expanded:
|
|
1115
|
+
zoom: N ? {
|
|
1116
|
+
level: N.grain,
|
|
1117
|
+
expanded: N.expandedIds
|
|
1104
1118
|
} : t,
|
|
1105
1119
|
onZoomChange: n,
|
|
1106
|
-
selectedId:
|
|
1120
|
+
selectedId: N ? N.selectedId : r,
|
|
1107
1121
|
onSelect: i,
|
|
1108
1122
|
onExpand: a,
|
|
1109
1123
|
highlightedIds: o,
|
|
1110
1124
|
nodeDeltas: s,
|
|
1111
|
-
structureEdgeDeltas:
|
|
1112
|
-
height:
|
|
1113
|
-
ariaLabel:
|
|
1114
|
-
viewport:
|
|
1115
|
-
onViewportChange:
|
|
1116
|
-
state:
|
|
1117
|
-
onStateChange:
|
|
1118
|
-
}),
|
|
1125
|
+
structureEdgeDeltas: c,
|
|
1126
|
+
height: l,
|
|
1127
|
+
ariaLabel: u,
|
|
1128
|
+
viewport: N ? N.viewport ?? void 0 : w,
|
|
1129
|
+
onViewportChange: T,
|
|
1130
|
+
state: N ?? void 0,
|
|
1131
|
+
onStateChange: N ? (e) => F(e) : void 0
|
|
1132
|
+
}), R = S ?? (N && e ? /* @__PURE__ */ W(Ot, {
|
|
1119
1133
|
payload: e,
|
|
1120
|
-
grain:
|
|
1121
|
-
expandedIds:
|
|
1122
|
-
selectedId:
|
|
1123
|
-
focusedId:
|
|
1124
|
-
filter:
|
|
1125
|
-
onStateAction: (t) =>
|
|
1134
|
+
grain: N.grain,
|
|
1135
|
+
expandedIds: N.expandedIds,
|
|
1136
|
+
selectedId: N.selectedId,
|
|
1137
|
+
focusedId: N.navigatorFocusedId,
|
|
1138
|
+
filter: N.navigatorFilter,
|
|
1139
|
+
onStateAction: (t) => I(t, () => {
|
|
1126
1140
|
t.type === "select" ? i?.(t.id, e.nodes.find((e) => e.id === t.id) ?? null) : t.type === "clear-selection" ? i?.(null, null) : t.type === "set-expanded" ? n?.({
|
|
1127
|
-
level:
|
|
1141
|
+
level: N.grain,
|
|
1128
1142
|
expanded: Array.from(t.ids)
|
|
1129
|
-
}) : t.type === "open-in-map" && (i?.(t.id, e.nodes.find((e) => e.id === t.id) ?? null),
|
|
1143
|
+
}) : t.type === "open-in-map" && (i?.(t.id, e.nodes.find((e) => e.id === t.id) ?? null), C?.("canvas"));
|
|
1130
1144
|
}),
|
|
1131
|
-
ariaLabel: `browse ${
|
|
1132
|
-
}) : null),
|
|
1133
|
-
return /* @__PURE__ */
|
|
1134
|
-
className: ["gmp-root",
|
|
1135
|
-
children: /* @__PURE__ */
|
|
1145
|
+
ariaLabel: `browse ${u}`
|
|
1146
|
+
}) : null), B = P === "navigator" && R !== null;
|
|
1147
|
+
return /* @__PURE__ */ W("div", {
|
|
1148
|
+
className: ["gmp-root", b].filter(Boolean).join(" "),
|
|
1149
|
+
children: /* @__PURE__ */ G(re, {
|
|
1136
1150
|
toolbar: te,
|
|
1137
|
-
rail:
|
|
1138
|
-
sheetTitle:
|
|
1139
|
-
sheetMeta:
|
|
1140
|
-
railSide:
|
|
1141
|
-
children: [/* @__PURE__ */
|
|
1142
|
-
className: ["gmp-map-canvas-region",
|
|
1143
|
-
style:
|
|
1151
|
+
rail: f,
|
|
1152
|
+
sheetTitle: m,
|
|
1153
|
+
sheetMeta: h,
|
|
1154
|
+
railSide: g,
|
|
1155
|
+
children: [/* @__PURE__ */ W("div", {
|
|
1156
|
+
className: ["gmp-map-canvas-region", v].filter(Boolean).join(" "),
|
|
1157
|
+
style: y,
|
|
1144
1158
|
"data-testid": "gmp-map-canvas-region",
|
|
1145
|
-
children:
|
|
1146
|
-
}), !
|
|
1159
|
+
children: B ? R : L
|
|
1160
|
+
}), !B && _ !== !1 && (_ ?? /* @__PURE__ */ W(Pt, {}))]
|
|
1147
1161
|
})
|
|
1148
1162
|
});
|
|
1149
1163
|
}
|
|
1150
|
-
function
|
|
1151
|
-
return /* @__PURE__ */
|
|
1164
|
+
function Pt() {
|
|
1165
|
+
return /* @__PURE__ */ G("p", {
|
|
1152
1166
|
className: "gmp-map-legend",
|
|
1153
1167
|
children: [
|
|
1154
|
-
/* @__PURE__ */
|
|
1168
|
+
/* @__PURE__ */ G("span", {
|
|
1155
1169
|
className: "gmp-legend-item",
|
|
1156
|
-
children: [/* @__PURE__ */
|
|
1170
|
+
children: [/* @__PURE__ */ W("span", {
|
|
1157
1171
|
className: "gmp-map-swatch",
|
|
1158
1172
|
"aria-hidden": "true"
|
|
1159
1173
|
}), " code area (folder or file)"]
|
|
1160
1174
|
}),
|
|
1161
|
-
/* @__PURE__ */
|
|
1175
|
+
/* @__PURE__ */ G("span", {
|
|
1162
1176
|
className: "gmp-legend-item gmp-legend-dim",
|
|
1163
|
-
children: [/* @__PURE__ */
|
|
1177
|
+
children: [/* @__PURE__ */ W("span", {
|
|
1164
1178
|
className: "gmp-map-swatch gmp-map-swatch--empty",
|
|
1165
1179
|
"aria-hidden": "true"
|
|
1166
1180
|
}), " no saved conversation behind it"]
|
|
1167
1181
|
}),
|
|
1168
|
-
/* @__PURE__ */
|
|
1182
|
+
/* @__PURE__ */ W("span", {
|
|
1169
1183
|
className: "gmp-legend-item gmp-legend-dim",
|
|
1170
1184
|
children: "brighter = more of it built with AI on record"
|
|
1171
1185
|
}),
|
|
1172
|
-
/* @__PURE__ */
|
|
1186
|
+
/* @__PURE__ */ G("span", {
|
|
1173
1187
|
className: "gmp-legend-item gmp-legend-dim",
|
|
1174
|
-
children: [/* @__PURE__ */
|
|
1188
|
+
children: [/* @__PURE__ */ W("span", {
|
|
1175
1189
|
className: "gmp-map-swatch gmp-map-swatch--edge",
|
|
1176
1190
|
"aria-hidden": "true"
|
|
1177
1191
|
}), " one area uses another"]
|
|
1178
1192
|
}),
|
|
1179
|
-
/* @__PURE__ */
|
|
1193
|
+
/* @__PURE__ */ W("span", {
|
|
1180
1194
|
className: "gmp-legend-item gmp-map-legend-danger",
|
|
1181
1195
|
children: "⚠ tangle — two areas that depend on each other"
|
|
1182
1196
|
}),
|
|
1183
|
-
/* @__PURE__ */
|
|
1197
|
+
/* @__PURE__ */ W("span", {
|
|
1184
1198
|
className: "gmp-legend-item gmp-legend-dim",
|
|
1185
1199
|
children: "double-click a folder to open its files"
|
|
1186
1200
|
})
|
|
@@ -1189,26 +1203,26 @@ function He() {
|
|
|
1189
1203
|
}
|
|
1190
1204
|
//#endregion
|
|
1191
1205
|
//#region src/ui/graph/timelineNavigation.js
|
|
1192
|
-
function
|
|
1206
|
+
function X(e) {
|
|
1193
1207
|
return typeof e == "object" && !!e && !Array.isArray(e);
|
|
1194
1208
|
}
|
|
1195
|
-
function
|
|
1209
|
+
function Z(e, t) {
|
|
1196
1210
|
let n = Object.keys(e).sort();
|
|
1197
1211
|
return n.length === t.length && t.slice().sort().every((e, t) => e === n[t]);
|
|
1198
1212
|
}
|
|
1199
|
-
function
|
|
1213
|
+
function Q(e) {
|
|
1200
1214
|
return typeof e == "string" && e.length > 0;
|
|
1201
1215
|
}
|
|
1202
|
-
function
|
|
1203
|
-
return e === null ||
|
|
1216
|
+
function Ft(e) {
|
|
1217
|
+
return e === null || Q(e);
|
|
1204
1218
|
}
|
|
1205
|
-
function
|
|
1219
|
+
function It(e) {
|
|
1206
1220
|
let t = !1;
|
|
1207
|
-
if (
|
|
1221
|
+
if (X(e) && typeof e.type == "string" && (e.type === "open-change" && Z(e, ["type", "change"]) && X(e.change) ? t = Z(e.change, ["id", "branch"]) && Q(e.change.id) && Ft(e.change.branch) : e.type === "open-session" && Z(e, [
|
|
1208
1222
|
"type",
|
|
1209
1223
|
"sessionId",
|
|
1210
1224
|
"source"
|
|
1211
|
-
]) &&
|
|
1225
|
+
]) && Q(e.sessionId) && X(e.source) ? e.source.kind === "commit" && Z(e.source, ["kind", "commit"]) && X(e.source.commit) ? t = Z(e.source.commit, ["id", "branch"]) && Q(e.source.commit.id) && Ft(e.source.commit.branch) : (e.source.kind === "unlinked" || e.source.kind === "outside-window") && Z(e.source, ["kind"]) && (t = !0) : (e.type === "open-map" || e.type === "show-older") && Z(e, ["type"]) && (t = !0)), !t) throw TypeError([
|
|
1212
1226
|
"Timeline navigation action rejected.",
|
|
1213
1227
|
"What went wrong: the value is not an exact supported TimelineNavigationAction.",
|
|
1214
1228
|
"Why it happened: an untyped caller supplied an unknown action, missing context, or extra fields.",
|
|
@@ -1219,4 +1233,186 @@ function We(e) {
|
|
|
1219
1233
|
].join("\n"));
|
|
1220
1234
|
}
|
|
1221
1235
|
//#endregion
|
|
1222
|
-
|
|
1236
|
+
//#region src/ui/graph/ScentTag.jsx
|
|
1237
|
+
function Lt({ tag: e, hoverText: t, active: n = !1, onToggle: r, className: i = "", ...a }) {
|
|
1238
|
+
if (!b.includes(e)) throw Error(`ScentTag render failed: what went wrong: unknown scent tag ${JSON.stringify(e)}; why: the value is not a member of the closed SCENT_TAGS set; where: src/ui/graph/ScentTag.jsx; when: rendering a ranked-list row; what it means: an upstream ranking derivation produced a value outside the frozen vocabulary; how to fix: only pass one of ${b.join(", ")}.`);
|
|
1239
|
+
return r ? /* @__PURE__ */ G("button", {
|
|
1240
|
+
type: "button",
|
|
1241
|
+
className: `tlp-scent tlp-scent-filter${n ? " tlp-scent-filter-active" : ""}${i ? ` ${i}` : ""}`,
|
|
1242
|
+
title: t || void 0,
|
|
1243
|
+
"aria-pressed": n,
|
|
1244
|
+
onClick: () => r(n ? null : e),
|
|
1245
|
+
...a,
|
|
1246
|
+
children: [e, /* @__PURE__ */ W("span", {
|
|
1247
|
+
className: "tlp-sr",
|
|
1248
|
+
role: "status",
|
|
1249
|
+
"aria-live": "polite",
|
|
1250
|
+
children: n ? `filtering by ${e}` : ""
|
|
1251
|
+
})]
|
|
1252
|
+
}) : /* @__PURE__ */ W("span", {
|
|
1253
|
+
className: `tlp-scent${i ? ` ${i}` : ""}`,
|
|
1254
|
+
title: t || void 0,
|
|
1255
|
+
...a,
|
|
1256
|
+
children: e
|
|
1257
|
+
});
|
|
1258
|
+
}
|
|
1259
|
+
//#endregion
|
|
1260
|
+
//#region src/ui/graph/RankedRow.jsx
|
|
1261
|
+
function Rt({ row: e, loc: t = 0, selected: n = !1, onSelect: r, className: i = "", ...a }) {
|
|
1262
|
+
return /* @__PURE__ */ G("button", {
|
|
1263
|
+
type: "button",
|
|
1264
|
+
className: [
|
|
1265
|
+
"tlp-ranked-row",
|
|
1266
|
+
n && "tlp-ranked-row-sel",
|
|
1267
|
+
i
|
|
1268
|
+
].filter(Boolean).join(" "),
|
|
1269
|
+
"aria-pressed": n,
|
|
1270
|
+
onClick: () => r?.(e.id),
|
|
1271
|
+
...a,
|
|
1272
|
+
children: [
|
|
1273
|
+
/* @__PURE__ */ W(A, {
|
|
1274
|
+
className: "tlp-ranked-doi-scope",
|
|
1275
|
+
children: /* @__PURE__ */ W(se, {
|
|
1276
|
+
label: e.name,
|
|
1277
|
+
loc: t,
|
|
1278
|
+
recorded: e.doi,
|
|
1279
|
+
total: 1,
|
|
1280
|
+
selected: n,
|
|
1281
|
+
as: "span",
|
|
1282
|
+
className: "tlp-ranked-doi"
|
|
1283
|
+
})
|
|
1284
|
+
}),
|
|
1285
|
+
/* @__PURE__ */ W("span", {
|
|
1286
|
+
className: "tlp-ranked-name",
|
|
1287
|
+
title: e.name,
|
|
1288
|
+
children: e.name
|
|
1289
|
+
}),
|
|
1290
|
+
/* @__PURE__ */ W("span", {
|
|
1291
|
+
className: "tlp-ranked-tags",
|
|
1292
|
+
"aria-label": "comprehension signals",
|
|
1293
|
+
children: e.scentTags.map((t) => /* @__PURE__ */ W(Lt, {
|
|
1294
|
+
tag: t,
|
|
1295
|
+
hoverText: t.startsWith("agent wrote:") ? e.hoverText ?? void 0 : void 0
|
|
1296
|
+
}, t))
|
|
1297
|
+
}),
|
|
1298
|
+
/* @__PURE__ */ W("span", {
|
|
1299
|
+
className: "tlp-ranked-doi-val tnum",
|
|
1300
|
+
"aria-hidden": "true",
|
|
1301
|
+
children: e.doi.toFixed(2)
|
|
1302
|
+
})
|
|
1303
|
+
]
|
|
1304
|
+
});
|
|
1305
|
+
}
|
|
1306
|
+
//#endregion
|
|
1307
|
+
//#region src/ui/graph/RankModeControl.jsx
|
|
1308
|
+
var $ = [
|
|
1309
|
+
"relevance",
|
|
1310
|
+
"debt",
|
|
1311
|
+
"churn"
|
|
1312
|
+
];
|
|
1313
|
+
function zt({ rankMode: e, onChange: t, className: n = "", ...r }) {
|
|
1314
|
+
let i = H([]), a = (e) => {
|
|
1315
|
+
let n = $[e];
|
|
1316
|
+
n && (t(n), i.current[e]?.focus());
|
|
1317
|
+
}, o = (e, t) => {
|
|
1318
|
+
let n;
|
|
1319
|
+
switch (e.key) {
|
|
1320
|
+
case "ArrowRight":
|
|
1321
|
+
case "ArrowDown":
|
|
1322
|
+
n = (t + 1) % $.length;
|
|
1323
|
+
break;
|
|
1324
|
+
case "ArrowLeft":
|
|
1325
|
+
case "ArrowUp":
|
|
1326
|
+
n = (t - 1 + $.length) % $.length;
|
|
1327
|
+
break;
|
|
1328
|
+
case "Home":
|
|
1329
|
+
n = 0;
|
|
1330
|
+
break;
|
|
1331
|
+
case "End":
|
|
1332
|
+
n = $.length - 1;
|
|
1333
|
+
break;
|
|
1334
|
+
default: return;
|
|
1335
|
+
}
|
|
1336
|
+
e.preventDefault(), a(n);
|
|
1337
|
+
};
|
|
1338
|
+
return /* @__PURE__ */ G("span", {
|
|
1339
|
+
className: `tlp-rank-mode${n ? ` ${n}` : ""}`,
|
|
1340
|
+
role: "radiogroup",
|
|
1341
|
+
"aria-label": "rank mode",
|
|
1342
|
+
...r,
|
|
1343
|
+
children: [$.map((n, r) => /* @__PURE__ */ W("button", {
|
|
1344
|
+
type: "button",
|
|
1345
|
+
role: "radio",
|
|
1346
|
+
"aria-checked": e === n,
|
|
1347
|
+
tabIndex: e === n ? 0 : -1,
|
|
1348
|
+
ref: (e) => {
|
|
1349
|
+
i.current[r] = e;
|
|
1350
|
+
},
|
|
1351
|
+
className: `tlp-rank-mode-btn${e === n ? " tlp-rank-mode-btn-active" : ""}`,
|
|
1352
|
+
onClick: () => t(n),
|
|
1353
|
+
onKeyDown: (e) => o(e, r),
|
|
1354
|
+
children: n
|
|
1355
|
+
}, n)), /* @__PURE__ */ W("span", {
|
|
1356
|
+
className: "tlp-sr",
|
|
1357
|
+
role: "status",
|
|
1358
|
+
"aria-live": "polite",
|
|
1359
|
+
children: `rank mode: ${e}`
|
|
1360
|
+
})]
|
|
1361
|
+
});
|
|
1362
|
+
}
|
|
1363
|
+
//#endregion
|
|
1364
|
+
//#region src/ui/graph/InsightPanel.jsx
|
|
1365
|
+
function Bt({ insights: e, onOpenEvidence: t, className: n = "", ...r }) {
|
|
1366
|
+
if (fe(e), e.length === 0) return /* @__PURE__ */ W("p", {
|
|
1367
|
+
className: `tlp-insight-empty${n ? ` ${n}` : ""}`,
|
|
1368
|
+
...r,
|
|
1369
|
+
children: "no insights recorded for this node yet."
|
|
1370
|
+
});
|
|
1371
|
+
let i = /* @__PURE__ */ new Map();
|
|
1372
|
+
for (let t of e) {
|
|
1373
|
+
let e = i.get(t.kind) ?? [];
|
|
1374
|
+
e.push(t), i.set(t.kind, e);
|
|
1375
|
+
}
|
|
1376
|
+
return /* @__PURE__ */ W("div", {
|
|
1377
|
+
className: `tlp-insight-panel${n ? ` ${n}` : ""}`,
|
|
1378
|
+
...r,
|
|
1379
|
+
children: [...i.entries()].map(([e, n]) => /* @__PURE__ */ G("section", {
|
|
1380
|
+
className: "tlp-insight-group",
|
|
1381
|
+
"aria-label": f[e],
|
|
1382
|
+
children: [/* @__PURE__ */ W("h3", {
|
|
1383
|
+
className: "tlp-insight-group-title",
|
|
1384
|
+
children: f[e]
|
|
1385
|
+
}), /* @__PURE__ */ W("ul", {
|
|
1386
|
+
className: "tlp-insight-list",
|
|
1387
|
+
children: n.map((e, n) => /* @__PURE__ */ G("li", {
|
|
1388
|
+
className: "tlp-insight-item",
|
|
1389
|
+
children: [
|
|
1390
|
+
/* @__PURE__ */ W("span", {
|
|
1391
|
+
className: `tlp-insight-provenance ${v[e.provenance].markerClass}`,
|
|
1392
|
+
"aria-hidden": "true"
|
|
1393
|
+
}),
|
|
1394
|
+
/* @__PURE__ */ W("span", {
|
|
1395
|
+
className: "tlp-insight-title",
|
|
1396
|
+
children: e.title
|
|
1397
|
+
}),
|
|
1398
|
+
e.summary && /* @__PURE__ */ W("span", {
|
|
1399
|
+
className: "tlp-insight-summary",
|
|
1400
|
+
children: e.summary
|
|
1401
|
+
}),
|
|
1402
|
+
/* @__PURE__ */ W("span", {
|
|
1403
|
+
className: "tlp-insight-evidence",
|
|
1404
|
+
children: e.evidence.map((e, n) => /* @__PURE__ */ W("button", {
|
|
1405
|
+
type: "button",
|
|
1406
|
+
className: "tlp-insight-evidence-link",
|
|
1407
|
+
onClick: () => t?.(e.sessionId),
|
|
1408
|
+
children: e.file || e.sessionId
|
|
1409
|
+
}, n))
|
|
1410
|
+
})
|
|
1411
|
+
]
|
|
1412
|
+
}, n))
|
|
1413
|
+
})]
|
|
1414
|
+
}, e))
|
|
1415
|
+
});
|
|
1416
|
+
}
|
|
1417
|
+
//#endregion
|
|
1418
|
+
export { Fe as AllChangeBindings, Ie as AllDiffLineKinds, Le as AllEdgeViolationKinds, Re as AllFileChangeStatuses, ze as AllInsightKinds, Be as AllInsightProvenances, Ve as AllMapNodeKinds, He as AllReadAttributionStates, Ue as AllReadStateGrades, n as CHANGE_BINDINGS, oe as CODE_MAP_STATE_VERSION, j as CODE_MAP_VIEWPORT_SCALE, de as COVERAGE_CAP, We as ChangeBinding, bt as ChangeDetail, ft as Changes, Ct as CodeMap, Nt as CodeMapComposition, Ot as CodeMapNavigator, k as DEBT_VIEWED, S as DIFF_LINE_KINDS, ue as DOI_WEIGHTS, Pt as DefaultMapLegend, Ge as DiffLineKind, c as EDGE_VIOLATION_KINDS, Ke as EdgeViolationKind, x as FILE_CHANGE_STATUSES, qe as FileChangeStatus, ie as GRAPH_APP_SECTIONS, ae as GhostCommitNode, e as GhostGroup, R as GraphAppShell, ne as GraphSectionNav, E as HighlightEdge, Je as InsightKind, Bt as InsightPanel, Ye as InsightProvenance, C as MAP_NODE_KINDS, Xe as MapNodeKind, y as RANK_CAP, r as RANK_FLOOR, le as RECENCY_HALF_LIFE_DAYS, zt as RankModeControl, Rt as RankedRow, Ze as ReadAttributionState, Qe as ReadStateGrade, b as SCENT_TAGS, Lt as ScentTag, ee as SessionLane, _ as SessionOverflowDisclosure, w as TouchedFileCluster, s as assertChangeDetailPayloadEnums, d as assertChangeDiffPayloadEnums, B as assertCodeMapPayloadEnums, It as assertTimelineNavigationAction, ut as buildChangesGraph, wt as codeMapPayloadToMapData, M as codeMapStatesEqual, a as coverage, z as createCodeMapState, i as debt, h as debtHoverText, I as debtState, L as deriveCodeMapView, t as deriveRankedRows, P as deriveTimelineHighlight, F as gateRankedRows, Y as humanizeAge, p as hunkClears, $e as isChangeBinding, N as isCodeMapViewportScale, et as isDiffLineKind, tt as isEdgeViolationKind, nt as isFileChangeStatus, rt as isInsightKind, it as isInsightProvenance, at as isMapNodeKind, ot as isReadAttributionState, st as isReadStateGrade, m as partialReadHoverText, g as rankMapNodes, o as rankMapNodesIntrinsic, D as reduceCodeMapState, ce as resolveEscapeAction, l as scentTagsFor };
|