reflet-sdk 0.6.7 → 0.6.8
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 +10 -0
- package/dist/{devtools-layer-OjTo9_eb.js → devtools-layer-DyoBn6ys.js} +3 -3
- package/dist/{devtools-layer-OjTo9_eb.js.map → devtools-layer-DyoBn6ys.js.map} +1 -1
- package/dist/devtools-next.js +1 -1
- package/dist/devtools-vite.js +2 -2
- package/dist/feedback.js +4 -4
- package/dist/{handler-yA_knIf3.js → handler-DREUPKLQ.js} +2 -2
- package/dist/{handler-yA_knIf3.js.map → handler-DREUPKLQ.js.map} +1 -1
- package/dist/{protocol-vJhQHTcB.js → protocol-Cg_cI4xS.js} +2 -1
- package/dist/protocol-Cg_cI4xS.js.map +1 -0
- package/dist/{sessions-panel-CkxIekZX.js → sessions-panel-Dq5j1qcu.js} +87 -12
- package/dist/sessions-panel-Dq5j1qcu.js.map +1 -0
- package/dist/{submit-DZX0f2_0.js → submit-CafYVnCb.js} +2 -2
- package/dist/{submit-DZX0f2_0.js.map → submit-CafYVnCb.js.map} +1 -1
- package/dist/{team-layer-DyyGqmxs.js → team-layer-BdcTaSSZ.js} +3 -3
- package/dist/{team-layer-DyyGqmxs.js.map → team-layer-BdcTaSSZ.js.map} +1 -1
- package/package.json +1 -1
- package/dist/protocol-vJhQHTcB.js.map +0 -1
- package/dist/sessions-panel-CkxIekZX.js.map +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { a as EDITORS, c as handoffFileSchema, d as sessionEvidenceSchema, f as sessionHandoffSchema, g as sessionSummarySchema, h as sessionSegmentSchema, l as sessionApiErrorSchema, m as sessionProposalSchema, n as DEVTOOLS_REQUEST_HEADER, p as sessionIdentitySchema, r as DEVTOOLS_ROUTE_BASE, s as analysisStatusSchema, t as DEVTOOLS_ENDPOINTS, u as sessionDetailSchema } from "./protocol-
|
|
2
|
-
import { B as clip, D as MoreIcon, G as describeElement, K as getElementRect, M as TargetIcon, R as DEFAULT_WIDGET_LABELS, T as GripIcon, W as buildSelector, Y as redactUrl, Z as inspectReactElement, _ as matchesHotkey, a as uploadBlob, c as useFloatingPosition, g as isSubmitEnter, it as releaseCapture, j as Svg, l as onViewportChange, m as startsInWidget, o as ElementPicker, p as listenToKeydown, q as REDACT_ATTRIBUTE, tt as captureViewport, u as visibleViewport, w as CloseIcon } from "./submit-
|
|
1
|
+
import { a as EDITORS, c as handoffFileSchema, d as sessionEvidenceSchema, f as sessionHandoffSchema, g as sessionSummarySchema, h as sessionSegmentSchema, l as sessionApiErrorSchema, m as sessionProposalSchema, n as DEVTOOLS_REQUEST_HEADER, p as sessionIdentitySchema, r as DEVTOOLS_ROUTE_BASE, s as analysisStatusSchema, t as DEVTOOLS_ENDPOINTS, u as sessionDetailSchema } from "./protocol-Cg_cI4xS.js";
|
|
2
|
+
import { B as clip, D as MoreIcon, G as describeElement, K as getElementRect, M as TargetIcon, R as DEFAULT_WIDGET_LABELS, T as GripIcon, W as buildSelector, Y as redactUrl, Z as inspectReactElement, _ as matchesHotkey, a as uploadBlob, c as useFloatingPosition, g as isSubmitEnter, it as releaseCapture, j as Svg, l as onViewportChange, m as startsInWidget, o as ElementPicker, p as listenToKeydown, q as REDACT_ATTRIBUTE, tt as captureViewport, u as visibleViewport, w as CloseIcon } from "./submit-CafYVnCb.js";
|
|
3
3
|
import { t as REFLET_Z_INDEX } from "./z-index-CwokqVq_.js";
|
|
4
4
|
import { z } from "zod";
|
|
5
5
|
import { createContext, useContext, useEffect, useId, useLayoutEffect, useRef, useState, useSyncExternalStore } from "react";
|
|
@@ -136,6 +136,7 @@ function createReviewEndpoints({ get, post }) {
|
|
|
136
136
|
detail: (sessionId) => get("/api/v1/sessions/detail", sessionDetailSchema, { sessionId }),
|
|
137
137
|
identity: () => get("/api/v1/sessions/identity", sessionIdentitySchema),
|
|
138
138
|
list: async () => (await get("/api/v1/sessions/list", z.object({ sessions: z.array(sessionSummarySchema) }))).sessions,
|
|
139
|
+
removeEvidence: async (evidenceId) => (await post("/api/v1/sessions/evidence/remove", { evidenceId }, z.object({ evidence: sessionEvidenceSchema }))).evidence,
|
|
139
140
|
retrySegment: async (segmentId) => (await post("/api/v1/sessions/segments/retry", { segmentId }, segmentResponse)).segment,
|
|
140
141
|
update: async (body) => (await post("/api/v1/sessions/update", body, summaryResponse)).session
|
|
141
142
|
};
|
|
@@ -2070,7 +2071,6 @@ var LiveSession = class {
|
|
|
2070
2071
|
}
|
|
2071
2072
|
stop() {
|
|
2072
2073
|
this.stopCollecting();
|
|
2073
|
-
this.evidence.cancelPending();
|
|
2074
2074
|
this.events.stop();
|
|
2075
2075
|
}
|
|
2076
2076
|
stopCollecting() {
|
|
@@ -2078,6 +2078,7 @@ var LiveSession = class {
|
|
|
2078
2078
|
this.run = null;
|
|
2079
2079
|
this.stopListening?.abort();
|
|
2080
2080
|
this.stopListening = null;
|
|
2081
|
+
this.evidence.cancelPending();
|
|
2081
2082
|
window.clearInterval(this.tick);
|
|
2082
2083
|
this.events.flushAll();
|
|
2083
2084
|
}
|
|
@@ -4138,6 +4139,12 @@ function withSegment(detail, segment) {
|
|
|
4138
4139
|
segments: [...others, segment].sort((a, b) => a.startMs - b.startMs)
|
|
4139
4140
|
};
|
|
4140
4141
|
}
|
|
4142
|
+
function withEvidence(detail, evidence) {
|
|
4143
|
+
return {
|
|
4144
|
+
...detail,
|
|
4145
|
+
evidence: detail.evidence.map((item) => item.id === evidence.id ? evidence : item)
|
|
4146
|
+
};
|
|
4147
|
+
}
|
|
4141
4148
|
function isHidden() {
|
|
4142
4149
|
return typeof document !== "undefined" && document.visibilityState === "hidden";
|
|
4143
4150
|
}
|
|
@@ -5077,7 +5084,60 @@ function AttachLink({ detail, onDone, review }) {
|
|
|
5077
5084
|
});
|
|
5078
5085
|
}
|
|
5079
5086
|
//#endregion
|
|
5087
|
+
//#region src/sessions/ui/review/transcript/remove-evidence.tsx
|
|
5088
|
+
const REMOVE_COPY = "Remove this screenshot? The image is deleted for good. Briefs you already copied or exported can't be recalled.";
|
|
5089
|
+
function RemoveConfirmation({ evidence, onCancel, review }) {
|
|
5090
|
+
const { api } = useSessionWorkspace();
|
|
5091
|
+
const run = useSessionAction();
|
|
5092
|
+
const cancelRef = useRef(null);
|
|
5093
|
+
useEffect(() => {
|
|
5094
|
+
cancelRef.current?.focus();
|
|
5095
|
+
}, []);
|
|
5096
|
+
const remove = async () => {
|
|
5097
|
+
const removed = await run("The screenshot was not removed", () => api.removeEvidence(evidence.id));
|
|
5098
|
+
if (removed !== null) {
|
|
5099
|
+
review.patch((detail) => withEvidence(detail, removed));
|
|
5100
|
+
announce("Screenshot removed");
|
|
5101
|
+
}
|
|
5102
|
+
};
|
|
5103
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
5104
|
+
className: "dt-ses-banner",
|
|
5105
|
+
children: [/* @__PURE__ */ jsx("p", { children: REMOVE_COPY }), /* @__PURE__ */ jsxs("div", {
|
|
5106
|
+
className: "dt-actions",
|
|
5107
|
+
children: [/* @__PURE__ */ jsx("button", {
|
|
5108
|
+
className: "dt-btn",
|
|
5109
|
+
"data-variant": "danger",
|
|
5110
|
+
onClick: remove,
|
|
5111
|
+
type: "button",
|
|
5112
|
+
children: "Remove"
|
|
5113
|
+
}), /* @__PURE__ */ jsx("button", {
|
|
5114
|
+
className: "dt-btn",
|
|
5115
|
+
onClick: onCancel,
|
|
5116
|
+
ref: cancelRef,
|
|
5117
|
+
type: "button",
|
|
5118
|
+
children: "Cancel"
|
|
5119
|
+
})]
|
|
5120
|
+
})]
|
|
5121
|
+
});
|
|
5122
|
+
}
|
|
5123
|
+
function RemoveEvidence({ evidence, review }) {
|
|
5124
|
+
const [isConfirming, setIsConfirming] = useState(false);
|
|
5125
|
+
if (isConfirming) return /* @__PURE__ */ jsx(RemoveConfirmation, {
|
|
5126
|
+
evidence,
|
|
5127
|
+
onCancel: () => setIsConfirming(false),
|
|
5128
|
+
review
|
|
5129
|
+
});
|
|
5130
|
+
return /* @__PURE__ */ jsx("button", {
|
|
5131
|
+
"aria-label": `Remove screenshot at ${formatClock(evidence.atMs)}`,
|
|
5132
|
+
className: "dt-ses-link",
|
|
5133
|
+
onClick: () => setIsConfirming(true),
|
|
5134
|
+
type: "button",
|
|
5135
|
+
children: "Remove"
|
|
5136
|
+
});
|
|
5137
|
+
}
|
|
5138
|
+
//#endregion
|
|
5080
5139
|
//#region src/sessions/ui/review/transcript/evidence-tab.tsx
|
|
5140
|
+
const isViewable = (evidence) => evidence.status === "available" && Boolean(evidence.image?.url);
|
|
5081
5141
|
function LinkEvidenceItem({ link }) {
|
|
5082
5142
|
return /* @__PURE__ */ jsxs("li", {
|
|
5083
5143
|
className: "dt-card",
|
|
@@ -5100,10 +5160,10 @@ function LinkEvidenceItem({ link }) {
|
|
|
5100
5160
|
]
|
|
5101
5161
|
});
|
|
5102
5162
|
}
|
|
5103
|
-
function EvidenceItem({ evidence, onEnlarge }) {
|
|
5163
|
+
function EvidenceItem({ evidence, onEnlarge, removal }) {
|
|
5104
5164
|
const caption = `${formatClock(evidence.atMs)} · ${evidenceCaption(evidence)}`;
|
|
5105
5165
|
if (evidence.link) return /* @__PURE__ */ jsx(LinkEvidenceItem, { link: evidence.link });
|
|
5106
|
-
if (
|
|
5166
|
+
if (!isViewable(evidence)) return /* @__PURE__ */ jsxs("li", {
|
|
5107
5167
|
className: "dt-card",
|
|
5108
5168
|
children: [/* @__PURE__ */ jsx("p", {
|
|
5109
5169
|
className: "dt-meta",
|
|
@@ -5130,11 +5190,15 @@ function EvidenceItem({ evidence, onEnlarge }) {
|
|
|
5130
5190
|
evidence.note && /* @__PURE__ */ jsx("p", {
|
|
5131
5191
|
className: "dt-note-text",
|
|
5132
5192
|
children: evidence.note
|
|
5193
|
+
}),
|
|
5194
|
+
removal.canRemove && /* @__PURE__ */ jsx(RemoveEvidence, {
|
|
5195
|
+
evidence,
|
|
5196
|
+
review: removal.review
|
|
5133
5197
|
})
|
|
5134
5198
|
]
|
|
5135
5199
|
});
|
|
5136
5200
|
}
|
|
5137
|
-
function EnlargedEvidence({ evidence, onBack }) {
|
|
5201
|
+
function EnlargedEvidence({ evidence, onBack, removal }) {
|
|
5138
5202
|
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
5139
5203
|
/* @__PURE__ */ jsx("button", {
|
|
5140
5204
|
className: "dt-ses-link",
|
|
@@ -5153,10 +5217,14 @@ function EnlargedEvidence({ evidence, onBack }) {
|
|
|
5153
5217
|
" · ",
|
|
5154
5218
|
evidenceCaption(evidence)
|
|
5155
5219
|
]
|
|
5220
|
+
}),
|
|
5221
|
+
removal.canRemove && /* @__PURE__ */ jsx(RemoveEvidence, {
|
|
5222
|
+
evidence,
|
|
5223
|
+
review: removal.review
|
|
5156
5224
|
})
|
|
5157
5225
|
] });
|
|
5158
5226
|
}
|
|
5159
|
-
function EvidenceList({ evidence, onEnlarge }) {
|
|
5227
|
+
function EvidenceList({ evidence, onEnlarge, removal }) {
|
|
5160
5228
|
return /* @__PURE__ */ jsxs(Fragment, { children: [evidence.length === 0 && /* @__PURE__ */ jsx("p", {
|
|
5161
5229
|
className: "dt-empty",
|
|
5162
5230
|
children: "No screenshots or links in this session."
|
|
@@ -5164,21 +5232,28 @@ function EvidenceList({ evidence, onEnlarge }) {
|
|
|
5164
5232
|
className: "dt-ses-rows",
|
|
5165
5233
|
children: evidence.map((item) => /* @__PURE__ */ jsx(EvidenceItem, {
|
|
5166
5234
|
evidence: item,
|
|
5167
|
-
onEnlarge: () => onEnlarge(item.id)
|
|
5235
|
+
onEnlarge: () => onEnlarge(item.id),
|
|
5236
|
+
removal
|
|
5168
5237
|
}, item.id))
|
|
5169
5238
|
})] });
|
|
5170
5239
|
}
|
|
5171
5240
|
function EvidenceTab({ detail, review }) {
|
|
5172
5241
|
const [enlargedId, setEnlargedId] = useState(null);
|
|
5173
5242
|
const [isAttaching, setIsAttaching] = useState(false);
|
|
5174
|
-
const enlarged = detail.evidence.find((item) => item.id === enlargedId);
|
|
5243
|
+
const enlarged = detail.evidence.find((item) => item.id === enlargedId && isViewable(item));
|
|
5244
|
+
const removal = {
|
|
5245
|
+
canRemove: detail.session.canEdit,
|
|
5246
|
+
review
|
|
5247
|
+
};
|
|
5175
5248
|
if (enlarged) return /* @__PURE__ */ jsx(EnlargedEvidence, {
|
|
5176
5249
|
evidence: enlarged,
|
|
5177
|
-
onBack: () => setEnlargedId(null)
|
|
5250
|
+
onBack: () => setEnlargedId(null),
|
|
5251
|
+
removal
|
|
5178
5252
|
});
|
|
5179
5253
|
return /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(EvidenceList, {
|
|
5180
5254
|
evidence: detail.evidence,
|
|
5181
|
-
onEnlarge: setEnlargedId
|
|
5255
|
+
onEnlarge: setEnlargedId,
|
|
5256
|
+
removal
|
|
5182
5257
|
}), detail.session.canEdit && (isAttaching ? /* @__PURE__ */ jsx(AttachLink, {
|
|
5183
5258
|
detail,
|
|
5184
5259
|
onDone: () => setIsAttaching(false),
|
|
@@ -6007,4 +6082,4 @@ function SessionsPanel({ navigation, onStarted, onWriteNote }) {
|
|
|
6007
6082
|
//#endregion
|
|
6008
6083
|
export { announce as A, searchCode as C, openDatabase as D, describeStorageFailure as E, settle as O, probeDevRoute as S, committed as T, teamTransport as _, DevtoolsBar as a, fetchBoardFeedback as b, copyToClipboard as c, PersonIcon as d, SessionWorkspaceProvider as f, devtoolsTransport as g, purgeAccount as h, BarButton as i, reportFailure as j, Notices as k, SESSIONS_STYLES as l, useWorkspaceLoader as m, DEVTOOLS_STYLES as n, DevtoolsBarButtons as o, failureMessage as p, DevtoolsSheet as r, SessionsBarButton as s, SessionsPanel as t, RecordingLayer as u, callReflet as v, startBoardConnect as w, fetchSourceFile as x, disconnectBoard as y };
|
|
6009
6084
|
|
|
6010
|
-
//# sourceMappingURL=sessions-panel-
|
|
6085
|
+
//# sourceMappingURL=sessions-panel-Dq5j1qcu.js.map
|