@ahggg/dsh-side-chat 0.6.0 → 0.6.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/README.md +14 -3
- package/README.zh-CN.md +14 -3
- package/lib/client/rc6/Rc6SideChatOverlay.d.ts.map +1 -1
- package/lib/client/rc6/Rc6SideChatOverlay.js +116 -25
- package/lib/client/rc6/Rc6SideChatOverlay.js.map +1 -1
- package/lib/client/selection/SelectionActions.d.ts +12 -1
- package/lib/client/selection/SelectionActions.d.ts.map +1 -1
- package/lib/client/selection/SelectionActions.js +121 -19
- package/lib/client/selection/SelectionActions.js.map +1 -1
- package/lib/client.js +234 -39
- package/lib/client.js.map +1 -1
- package/package.json +28 -27
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Ask a focused follow-up about selected text without leaving your current DeepSeek Harness conversation.
|
|
4
4
|
|
|
5
|
-
> Compatibility: this release targets `@deepseek-ai/dsh@0.1.0-rc.
|
|
5
|
+
> Compatibility: this release targets `@deepseek-ai/dsh@0.1.0-rc.7` exactly.
|
|
6
6
|
|
|
7
7
|
[简体中文](README.zh-CN.md)
|
|
8
8
|
|
|
@@ -10,10 +10,10 @@ Ask a focused follow-up about selected text without leaving your current DeepSee
|
|
|
10
10
|
|
|
11
11
|
## Install
|
|
12
12
|
|
|
13
|
-
Install DSH rc.
|
|
13
|
+
Install DSH rc.7 if it is not already available. Refresh only this package's registry metadata before adding it, so pnpm cannot reuse an older `latest` value immediately after a release:
|
|
14
14
|
|
|
15
15
|
```powershell
|
|
16
|
-
npm install --global @deepseek-ai/dsh@0.1.0-rc.
|
|
16
|
+
npm install --global @deepseek-ai/dsh@0.1.0-rc.7
|
|
17
17
|
pnpm cache delete "@ahggg/dsh-side-chat"
|
|
18
18
|
dsh plugin --profile web add @ahggg/dsh-side-chat@latest
|
|
19
19
|
```
|
|
@@ -27,8 +27,19 @@ dsh web --port 3080
|
|
|
27
27
|
|
|
28
28
|
Open the URL printed by DSH. The plugin loads automatically in the Web client.
|
|
29
29
|
|
|
30
|
+
### Local linked development
|
|
31
|
+
|
|
32
|
+
When `dsh plugin --profile web list` shows the plugin coming from a `link:` workspace, DSH loads the Git-ignored `lib/client.js`, not `src/`. Rebuild after switching branches or changing client source, then restart the `dsh web` process:
|
|
33
|
+
|
|
34
|
+
```powershell
|
|
35
|
+
pnpm install --frozen-lockfile
|
|
36
|
+
pnpm build
|
|
37
|
+
```
|
|
38
|
+
|
|
30
39
|
## Use Side Chat
|
|
31
40
|
|
|
41
|
+
On phones and tablets, long-press text in a completed message to select it. The Side Chat action bar appears below the selection when there is room, leaving the browser's native selection bar above it. Use `Add to chat`, `More details`, or `Ask in side chat` directly from the touch action bar.
|
|
42
|
+
|
|
32
43
|
1. Complete at least one turn in the main conversation.
|
|
33
44
|
2. Select text inside one completed user or assistant message.
|
|
34
45
|
3. Click `Add to chat` to add an optional comment before attaching the passage to the main composer, `More details` to send an explanation request immediately, or `Ask in side chat` to write a focused question.
|
package/README.zh-CN.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
在不离开当前 DeepSeek Harness 主会话的情况下,针对选中的文本发起一个独立的侧边对话。
|
|
4
4
|
|
|
5
|
-
> 兼容性:当前版本仅适配 `@deepseek-ai/dsh@0.1.0-rc.
|
|
5
|
+
> 兼容性:当前版本仅适配 `@deepseek-ai/dsh@0.1.0-rc.7`。
|
|
6
6
|
|
|
7
7
|
[English](README.md)
|
|
8
8
|
|
|
@@ -10,10 +10,10 @@
|
|
|
10
10
|
|
|
11
11
|
## 安装
|
|
12
12
|
|
|
13
|
-
如果尚未安装 DSH rc.
|
|
13
|
+
如果尚未安装 DSH rc.7,先安装它。添加插件前只刷新这个包的 registry metadata,避免刚发布新版本时 pnpm 仍复用旧的 `latest`:
|
|
14
14
|
|
|
15
15
|
```powershell
|
|
16
|
-
npm install --global @deepseek-ai/dsh@0.1.0-rc.
|
|
16
|
+
npm install --global @deepseek-ai/dsh@0.1.0-rc.7
|
|
17
17
|
pnpm cache delete "@ahggg/dsh-side-chat"
|
|
18
18
|
dsh plugin --profile web add @ahggg/dsh-side-chat@latest
|
|
19
19
|
```
|
|
@@ -27,8 +27,19 @@ dsh web --port 3080
|
|
|
27
27
|
|
|
28
28
|
打开 DSH 输出的网址,插件会自动加载到 Web 客户端中。
|
|
29
29
|
|
|
30
|
+
### 本地链接调试
|
|
31
|
+
|
|
32
|
+
当 `dsh plugin --profile web list` 显示插件来自 `link:` 工作区时,DSH 加载的是被 Git 忽略的 `lib/client.js`,而不是 `src/`。切换分支或修改客户端源码后,需要重新构建并重启 `dsh web` 进程:
|
|
33
|
+
|
|
34
|
+
```powershell
|
|
35
|
+
pnpm install --frozen-lockfile
|
|
36
|
+
pnpm build
|
|
37
|
+
```
|
|
38
|
+
|
|
30
39
|
## 使用 Side Chat
|
|
31
40
|
|
|
41
|
+
在手机或平板上,可以长按已完成消息中的文字进行选中。有足够空间时,Side Chat 操作条会显示在选区下方,把浏览器系统选文菜单留在上方。你可以直接在触摸操作条中使用 `Add to chat`、`More details` 或 `Ask in side chat`。
|
|
42
|
+
|
|
32
43
|
1. 在主会话中至少完成一轮对话。
|
|
33
44
|
2. 在一条已完成的用户或助手消息内选中文字。
|
|
34
45
|
3. 点击 `Add to chat` 可以先填写一条可选批注,再把引用加入主会话输入框;点击 `More details` 可以立即发送详细解释请求;点击 `Ask in side chat` 可以自己输入聚焦问题。
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Rc6SideChatOverlay.d.ts","sourceRoot":"","sources":["../../../src/client/rc6/Rc6SideChatOverlay.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AAOpE,OAAO,EAAE,mBAAmB,EAAuB,MAAM,uBAAuB,CAAA;
|
|
1
|
+
{"version":3,"file":"Rc6SideChatOverlay.d.ts","sourceRoot":"","sources":["../../../src/client/rc6/Rc6SideChatOverlay.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AAOpE,OAAO,EAAE,mBAAmB,EAAuB,MAAM,uBAAuB,CAAA;AA2ChF,iGAAiG;AACjG,wBAAgB,kBAAkB,CAAC,EACjC,UAAU,EACV,QAAQ,GACT,EAAE;IACD,QAAQ,CAAC,UAAU,EAAE,kBAAkB,CAAA;IACvC,QAAQ,CAAC,QAAQ,EAAE,mBAAmB,CAAA;CACvC,2CA2VA"}
|
|
@@ -9,6 +9,8 @@ import { SelectionActions } from '../selection/SelectionActions.js';
|
|
|
9
9
|
import { ArchivedConversation } from './ArchivedConversation.js';
|
|
10
10
|
import { Rc6SideChatSessions, selectionDescriptor } from './sessions-adapter.js';
|
|
11
11
|
const MORE_DETAILS_PROMPT = 'Please explain the selected passage in more detail.';
|
|
12
|
+
const TOUCH_SELECTION_SETTLE_MS = 300;
|
|
13
|
+
const TOUCH_ACTIVATION_SUPPRESS_MS = 750;
|
|
12
14
|
function captureEvent(event) {
|
|
13
15
|
if (event instanceof KeyboardEvent && event.key === 'Escape')
|
|
14
16
|
return false;
|
|
@@ -47,12 +49,15 @@ export function Rc6SideChatOverlay({ controller, sessions, }) {
|
|
|
47
49
|
const currentSessionId = useSyncExternalStore(sessions.subscribeList, () => sessions.currentSessionId(), () => sessions.currentSessionId());
|
|
48
50
|
const composerInput = useSyncExternalStore(sessions.subscribeConversationInput, sessions.currentConversationInputSnapshot, sessions.currentConversationInputSnapshot);
|
|
49
51
|
const annotations = useMemo(() => composerInput === undefined ? [] : conversationSelectionAnnotations(composerInput), [composerInput]);
|
|
50
|
-
const [
|
|
52
|
+
const [activeSelection, setActiveSelection] = useState(null);
|
|
51
53
|
const [editingAnnotation, setEditingAnnotation] = useState(null);
|
|
52
54
|
const captureGeneration = useRef(0);
|
|
55
|
+
const captureTimer = useRef(undefined);
|
|
53
56
|
const mouseDownPoint = useRef(null);
|
|
54
57
|
const annotationEditing = useRef(false);
|
|
55
|
-
const
|
|
58
|
+
const touchInteraction = useRef(false);
|
|
59
|
+
const suppressTouchCaptureUntil = useRef(0);
|
|
60
|
+
const capture = useCallback(async (touch) => {
|
|
56
61
|
const generation = ++captureGeneration.current;
|
|
57
62
|
const parentSessionId = sessions.currentSessionId();
|
|
58
63
|
const face = parentSessionId === undefined ? undefined : sessions.face(parentSessionId);
|
|
@@ -64,7 +69,7 @@ export function Rc6SideChatOverlay({ controller, sessions, }) {
|
|
|
64
69
|
|| browserSelection === null
|
|
65
70
|
|| browserSelection.isCollapsed) {
|
|
66
71
|
if (generation === captureGeneration.current)
|
|
67
|
-
|
|
72
|
+
setActiveSelection(null);
|
|
68
73
|
return;
|
|
69
74
|
}
|
|
70
75
|
const snapshot = face.getSnapshot();
|
|
@@ -80,75 +85,148 @@ export function Rc6SideChatOverlay({ controller, sessions, }) {
|
|
|
80
85
|
},
|
|
81
86
|
},
|
|
82
87
|
});
|
|
83
|
-
if (generation === captureGeneration.current)
|
|
84
|
-
|
|
88
|
+
if (generation === captureGeneration.current) {
|
|
89
|
+
setActiveSelection({ value: captured, touch });
|
|
90
|
+
}
|
|
85
91
|
}
|
|
86
92
|
catch {
|
|
87
93
|
if (generation === captureGeneration.current)
|
|
88
|
-
|
|
94
|
+
setActiveSelection(null);
|
|
89
95
|
}
|
|
90
96
|
}, [sessions]);
|
|
97
|
+
const cancelScheduledCapture = useCallback(() => {
|
|
98
|
+
if (captureTimer.current === undefined)
|
|
99
|
+
return;
|
|
100
|
+
window.clearTimeout(captureTimer.current);
|
|
101
|
+
captureTimer.current = undefined;
|
|
102
|
+
}, []);
|
|
103
|
+
const scheduleTouchCapture = useCallback(() => {
|
|
104
|
+
cancelScheduledCapture();
|
|
105
|
+
const generation = ++captureGeneration.current;
|
|
106
|
+
captureTimer.current = window.setTimeout(() => {
|
|
107
|
+
captureTimer.current = undefined;
|
|
108
|
+
if (generation !== captureGeneration.current || annotationEditing.current)
|
|
109
|
+
return;
|
|
110
|
+
void capture(true);
|
|
111
|
+
}, TOUCH_SELECTION_SETTLE_MS);
|
|
112
|
+
}, [cancelScheduledCapture, capture]);
|
|
91
113
|
useEffect(() => {
|
|
114
|
+
const clearSelection = () => {
|
|
115
|
+
cancelScheduledCapture();
|
|
116
|
+
mouseDownPoint.current = null;
|
|
117
|
+
annotationEditing.current = false;
|
|
118
|
+
++captureGeneration.current;
|
|
119
|
+
setActiveSelection(null);
|
|
120
|
+
setEditingAnnotation(null);
|
|
121
|
+
};
|
|
122
|
+
const touchCaptureSuppressed = () => Date.now() < suppressTouchCaptureUntil.current;
|
|
123
|
+
const onPointerDown = (event) => {
|
|
124
|
+
if (!captureEvent(event))
|
|
125
|
+
return;
|
|
126
|
+
if (event.pointerType === 'touch' && touchCaptureSuppressed())
|
|
127
|
+
return;
|
|
128
|
+
if (event.pointerType !== 'touch')
|
|
129
|
+
suppressTouchCaptureUntil.current = 0;
|
|
130
|
+
touchInteraction.current = event.pointerType === 'touch';
|
|
131
|
+
if (touchInteraction.current)
|
|
132
|
+
clearSelection();
|
|
133
|
+
};
|
|
134
|
+
const onTouchStart = (event) => {
|
|
135
|
+
if (!captureEvent(event) || touchCaptureSuppressed())
|
|
136
|
+
return;
|
|
137
|
+
touchInteraction.current = true;
|
|
138
|
+
clearSelection();
|
|
139
|
+
};
|
|
140
|
+
const onTouchEnd = (event) => {
|
|
141
|
+
if (!captureEvent(event) || touchCaptureSuppressed())
|
|
142
|
+
return;
|
|
143
|
+
touchInteraction.current = true;
|
|
144
|
+
scheduleTouchCapture();
|
|
145
|
+
};
|
|
92
146
|
const onMouseDown = (event) => {
|
|
147
|
+
if (touchInteraction.current || touchCaptureSuppressed()) {
|
|
148
|
+
mouseDownPoint.current = null;
|
|
149
|
+
return;
|
|
150
|
+
}
|
|
93
151
|
if (!captureEvent(event)) {
|
|
94
152
|
mouseDownPoint.current = null;
|
|
95
153
|
return;
|
|
96
154
|
}
|
|
155
|
+
cancelScheduledCapture();
|
|
97
156
|
mouseDownPoint.current = { x: event.clientX, y: event.clientY };
|
|
98
157
|
annotationEditing.current = false;
|
|
99
158
|
++captureGeneration.current;
|
|
100
|
-
|
|
159
|
+
setActiveSelection(null);
|
|
101
160
|
setEditingAnnotation(null);
|
|
102
161
|
};
|
|
103
162
|
const onMouseUp = (event) => {
|
|
104
163
|
const start = mouseDownPoint.current;
|
|
105
164
|
mouseDownPoint.current = null;
|
|
106
|
-
if (!captureEvent(event))
|
|
165
|
+
if (!captureEvent(event) || touchCaptureSuppressed())
|
|
107
166
|
return;
|
|
167
|
+
if (touchInteraction.current) {
|
|
168
|
+
scheduleTouchCapture();
|
|
169
|
+
return;
|
|
170
|
+
}
|
|
108
171
|
const moved = start === null
|
|
109
172
|
|| Math.abs(event.clientX - start.x) > 2
|
|
110
173
|
|| Math.abs(event.clientY - start.y) > 2;
|
|
111
174
|
if (moved || event.detail > 1 || event.shiftKey)
|
|
112
|
-
void capture();
|
|
175
|
+
void capture(false);
|
|
113
176
|
};
|
|
114
177
|
const onSelectionChange = () => {
|
|
115
178
|
if (annotationEditing.current)
|
|
116
179
|
return;
|
|
180
|
+
if (touchInteraction.current) {
|
|
181
|
+
scheduleTouchCapture();
|
|
182
|
+
return;
|
|
183
|
+
}
|
|
117
184
|
const browserSelection = window.getSelection();
|
|
118
185
|
if (browserSelection !== null && !browserSelection.isCollapsed)
|
|
119
186
|
return;
|
|
187
|
+
cancelScheduledCapture();
|
|
120
188
|
++captureGeneration.current;
|
|
121
|
-
|
|
189
|
+
setActiveSelection(null);
|
|
122
190
|
};
|
|
123
191
|
const onKeyUp = (event) => {
|
|
192
|
+
touchInteraction.current = false;
|
|
193
|
+
cancelScheduledCapture();
|
|
124
194
|
if (event.key === 'Escape') {
|
|
125
195
|
++captureGeneration.current;
|
|
126
196
|
annotationEditing.current = false;
|
|
127
|
-
|
|
197
|
+
setActiveSelection(null);
|
|
128
198
|
setEditingAnnotation(null);
|
|
129
199
|
void controller.close();
|
|
130
200
|
return;
|
|
131
201
|
}
|
|
132
202
|
if (captureEvent(event))
|
|
133
|
-
void capture();
|
|
203
|
+
void capture(false);
|
|
134
204
|
};
|
|
205
|
+
document.addEventListener('pointerdown', onPointerDown);
|
|
206
|
+
document.addEventListener('touchstart', onTouchStart, { passive: true });
|
|
207
|
+
document.addEventListener('touchend', onTouchEnd, { passive: true });
|
|
135
208
|
document.addEventListener('mousedown', onMouseDown);
|
|
136
209
|
document.addEventListener('mouseup', onMouseUp);
|
|
137
210
|
document.addEventListener('selectionchange', onSelectionChange);
|
|
138
211
|
document.addEventListener('keyup', onKeyUp);
|
|
139
212
|
return () => {
|
|
213
|
+
cancelScheduledCapture();
|
|
214
|
+
document.removeEventListener('pointerdown', onPointerDown);
|
|
215
|
+
document.removeEventListener('touchstart', onTouchStart);
|
|
216
|
+
document.removeEventListener('touchend', onTouchEnd);
|
|
140
217
|
document.removeEventListener('mousedown', onMouseDown);
|
|
141
218
|
document.removeEventListener('mouseup', onMouseUp);
|
|
142
219
|
document.removeEventListener('selectionchange', onSelectionChange);
|
|
143
220
|
document.removeEventListener('keyup', onKeyUp);
|
|
144
221
|
};
|
|
145
|
-
}, [capture, controller]);
|
|
222
|
+
}, [cancelScheduledCapture, capture, controller, scheduleTouchCapture]);
|
|
146
223
|
useEffect(() => {
|
|
224
|
+
cancelScheduledCapture();
|
|
147
225
|
++captureGeneration.current;
|
|
148
226
|
annotationEditing.current = false;
|
|
149
|
-
|
|
227
|
+
setActiveSelection(null);
|
|
150
228
|
setEditingAnnotation(null);
|
|
151
|
-
}, [currentSessionId]);
|
|
229
|
+
}, [cancelScheduledCapture, currentSessionId]);
|
|
152
230
|
useEffect(() => {
|
|
153
231
|
if (composerInput !== undefined)
|
|
154
232
|
sessions.reconcileConversationAnnotationPersistence();
|
|
@@ -161,6 +239,16 @@ export function Rc6SideChatOverlay({ controller, sessions, }) {
|
|
|
161
239
|
annotationEditing.current = false;
|
|
162
240
|
setEditingAnnotation(null);
|
|
163
241
|
}, [annotations, editingAnnotation]);
|
|
242
|
+
const dismissActiveSelection = useCallback(() => {
|
|
243
|
+
cancelScheduledCapture();
|
|
244
|
+
if (touchInteraction.current) {
|
|
245
|
+
suppressTouchCaptureUntil.current = Date.now() + TOUCH_ACTIVATION_SUPPRESS_MS;
|
|
246
|
+
}
|
|
247
|
+
touchInteraction.current = false;
|
|
248
|
+
annotationEditing.current = false;
|
|
249
|
+
++captureGeneration.current;
|
|
250
|
+
setActiveSelection(null);
|
|
251
|
+
}, [cancelScheduledCapture]);
|
|
164
252
|
const askDisabledReason = state.phase === 'closed'
|
|
165
253
|
? undefined
|
|
166
254
|
: 'Close the current Side Chat before starting another one.';
|
|
@@ -183,10 +271,11 @@ export function Rc6SideChatOverlay({ controller, sessions, }) {
|
|
|
183
271
|
? {}
|
|
184
272
|
: { activeAnnotationIndex: editingAnnotation.annotationIndex }, onEdit: (annotation, restoredSelection) => {
|
|
185
273
|
annotationEditing.current = true;
|
|
274
|
+
cancelScheduledCapture();
|
|
186
275
|
++captureGeneration.current;
|
|
187
|
-
|
|
276
|
+
setActiveSelection(null);
|
|
188
277
|
setEditingAnnotation({ ...annotation, selection: restoredSelection });
|
|
189
|
-
} }),
|
|
278
|
+
} }), activeSelection !== null && (_jsx(SelectionActions, { selection: activeSelection.value, touchInteraction: activeSelection.touch, annotationNumber: sessions.nextConversationAnnotationNumber(), ...askDisabledReason === undefined ? {} : { askDisabledReason }, onAddToChat: (captured, comment) => {
|
|
190
279
|
try {
|
|
191
280
|
if (sessions.addSelectionToConversation(captured, comment))
|
|
192
281
|
focusParentComposer();
|
|
@@ -196,23 +285,25 @@ export function Rc6SideChatOverlay({ controller, sessions, }) {
|
|
|
196
285
|
catch {
|
|
197
286
|
sessions.notify({ kind: 'warning', text: 'Could not add the selection to the current chat.' });
|
|
198
287
|
}
|
|
199
|
-
|
|
200
|
-
}, onAnnotationEditorChange: (open) => {
|
|
288
|
+
dismissActiveSelection();
|
|
289
|
+
}, onAnnotationEditorChange: (open) => {
|
|
290
|
+
annotationEditing.current = open;
|
|
291
|
+
if (open && touchInteraction.current) {
|
|
292
|
+
suppressTouchCaptureUntil.current = Date.now() + TOUCH_ACTIVATION_SUPPRESS_MS;
|
|
293
|
+
}
|
|
294
|
+
}, onMoreDetails: (captured) => {
|
|
201
295
|
const opened = controller.openDraft({ selection: captured });
|
|
202
296
|
if (!opened.ok)
|
|
203
297
|
sessions.notify({ kind: 'warning', text: opened.error.message });
|
|
204
298
|
else
|
|
205
299
|
void controller.sendFirst(MORE_DETAILS_PROMPT);
|
|
206
|
-
|
|
300
|
+
dismissActiveSelection();
|
|
207
301
|
}, onAskInSideChat: (captured) => {
|
|
208
302
|
const opened = controller.openDraft({ selection: captured });
|
|
209
303
|
if (!opened.ok)
|
|
210
304
|
sessions.notify({ kind: 'warning', text: opened.error.message });
|
|
211
|
-
|
|
212
|
-
}, onDismiss:
|
|
213
|
-
annotationEditing.current = false;
|
|
214
|
-
setSelection(null);
|
|
215
|
-
} })), editingAnnotation !== null && (_jsx(SelectionActions, { selection: editingAnnotation.selection, annotationNumber: editingAnnotation.annotationIndex + 1, annotationEditor: {
|
|
305
|
+
dismissActiveSelection();
|
|
306
|
+
}, onDismiss: dismissActiveSelection })), editingAnnotation !== null && (_jsx(SelectionActions, { selection: editingAnnotation.selection, annotationNumber: editingAnnotation.annotationIndex + 1, annotationEditor: {
|
|
216
307
|
...(editingAnnotation.comment === undefined
|
|
217
308
|
? {}
|
|
218
309
|
: { initialComment: editingAnnotation.comment }),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Rc6SideChatOverlay.js","sourceRoot":"","sources":["../../../src/client/rc6/Rc6SideChatOverlay.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Rc6SideChatOverlay.js","sourceRoot":"","sources":["../../../src/client/rc6/Rc6SideChatOverlay.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { ConversationSelection } from '../../shared/contracts.js';
|
|
2
2
|
export interface SelectionActionsProps {
|
|
3
3
|
readonly selection: ConversationSelection;
|
|
4
|
+
readonly touchInteraction?: boolean;
|
|
4
5
|
readonly askDisabledReason?: string;
|
|
5
6
|
readonly annotationNumber?: number;
|
|
6
7
|
/** Opens only the comment editor, used when an existing marker is clicked. */
|
|
@@ -14,5 +15,15 @@ export interface SelectionActionsProps {
|
|
|
14
15
|
readonly onAnnotationEditorChange?: (open: boolean) => void;
|
|
15
16
|
readonly onDismiss: () => void;
|
|
16
17
|
}
|
|
17
|
-
export declare function
|
|
18
|
+
export declare function calculateSelectionActionsPosition(rect: ConversationSelection['rect'], size: {
|
|
19
|
+
readonly width: number;
|
|
20
|
+
readonly height: number;
|
|
21
|
+
}, touch: boolean, viewport?: {
|
|
22
|
+
readonly width: number;
|
|
23
|
+
readonly height: number;
|
|
24
|
+
}): {
|
|
25
|
+
readonly left: number;
|
|
26
|
+
readonly top: number;
|
|
27
|
+
};
|
|
28
|
+
export declare function SelectionActions({ selection, touchInteraction, askDisabledReason, annotationNumber, annotationEditor, onAddToChat, onMoreDetails, onAskInSideChat, onAnnotationEditorChange, onDismiss, }: SelectionActionsProps): import("react/jsx-runtime").JSX.Element;
|
|
18
29
|
//# sourceMappingURL=SelectionActions.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SelectionActions.d.ts","sourceRoot":"","sources":["../../../src/client/selection/SelectionActions.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"SelectionActions.d.ts","sourceRoot":"","sources":["../../../src/client/selection/SelectionActions.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAA;AAEtE,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,SAAS,EAAE,qBAAqB,CAAA;IACzC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAA;IACnC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAA;IACnC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAA;IAClC,8EAA8E;IAC9E,QAAQ,CAAC,gBAAgB,CAAC,EAAE;QAC1B,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAA;QAChC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAC9B,CAAA;IACD,QAAQ,CAAC,WAAW,EAAE,CAAC,SAAS,EAAE,qBAAqB,EAAE,OAAO,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;IAClF,QAAQ,CAAC,aAAa,EAAE,CAAC,SAAS,EAAE,qBAAqB,KAAK,IAAI,CAAA;IAClE,QAAQ,CAAC,eAAe,EAAE,CAAC,SAAS,EAAE,qBAAqB,KAAK,IAAI,CAAA;IACpE,QAAQ,CAAC,wBAAwB,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IAC3D,QAAQ,CAAC,SAAS,EAAE,MAAM,IAAI,CAAA;CAC/B;AAMD,wBAAgB,iCAAiC,CAC/C,IAAI,EAAE,qBAAqB,CAAC,MAAM,CAAC,EACnC,IAAI,EAAE;IAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EACzD,KAAK,EAAE,OAAO,EACd,QAAQ,GAAE;IAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAG1D,GACA;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CA4BjD;AAED,wBAAgB,gBAAgB,CAAC,EAC/B,SAAS,EACT,gBAAwB,EACxB,iBAAiB,EACjB,gBAAoB,EACpB,gBAAgB,EAChB,WAAW,EACX,aAAa,EACb,eAAe,EACf,wBAAwB,EACxB,SAAS,GACV,EAAE,qBAAqB,2CA+OvB"}
|
|
@@ -1,19 +1,55 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
-
import { useEffect, useRef, useState } from 'react';
|
|
2
|
+
import { useEffect, useLayoutEffect, useRef, useState } from 'react';
|
|
3
3
|
function clamp(value, minimum, maximum) {
|
|
4
4
|
return Math.min(Math.max(minimum, value), Math.max(minimum, maximum));
|
|
5
5
|
}
|
|
6
|
-
export function
|
|
6
|
+
export function calculateSelectionActionsPosition(rect, size, touch, viewport = {
|
|
7
|
+
width: rect.viewportWidth,
|
|
8
|
+
height: rect.viewportHeight,
|
|
9
|
+
}) {
|
|
10
|
+
const edge = 8;
|
|
11
|
+
const width = Math.max(0, size.width);
|
|
12
|
+
const height = Math.max(0, size.height);
|
|
13
|
+
const left = clamp(rect.x + rect.width / 2 - width / 2, edge, viewport.width - width - edge);
|
|
14
|
+
const belowGap = touch ? 12 : 8;
|
|
15
|
+
const aboveGap = touch ? 64 : 8;
|
|
16
|
+
const below = rect.y + rect.height + belowGap;
|
|
17
|
+
const above = rect.y - height - aboveGap;
|
|
18
|
+
const belowFits = below + height <= viewport.height - edge;
|
|
19
|
+
const aboveFits = above >= edge;
|
|
20
|
+
let top;
|
|
21
|
+
if (touch && belowFits)
|
|
22
|
+
top = below;
|
|
23
|
+
else if (aboveFits)
|
|
24
|
+
top = above;
|
|
25
|
+
else if (belowFits)
|
|
26
|
+
top = below;
|
|
27
|
+
else {
|
|
28
|
+
const roomAbove = rect.y - aboveGap - edge;
|
|
29
|
+
const roomBelow = viewport.height - edge - rect.y - rect.height - belowGap;
|
|
30
|
+
top = roomAbove >= roomBelow ? above : below;
|
|
31
|
+
}
|
|
32
|
+
return {
|
|
33
|
+
left,
|
|
34
|
+
top: clamp(top, edge, viewport.height - height - edge),
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
export function SelectionActions({ selection, touchInteraction = false, askDisabledReason, annotationNumber = 1, annotationEditor, onAddToChat, onMoreDetails, onAskInSideChat, onAnnotationEditorChange, onDismiss, }) {
|
|
7
38
|
const [editingAnnotation, setEditingAnnotation] = useState(annotationEditor !== undefined);
|
|
8
39
|
const [comment, setComment] = useState(annotationEditor?.initialComment ?? '');
|
|
40
|
+
const [toolbarGeometry, setToolbarGeometry] = useState(() => ({
|
|
41
|
+
width: 0,
|
|
42
|
+
height: 0,
|
|
43
|
+
viewportWidth: selection.rect.viewportWidth,
|
|
44
|
+
viewportHeight: selection.rect.viewportHeight,
|
|
45
|
+
}));
|
|
9
46
|
const commentRef = useRef(null);
|
|
10
|
-
const
|
|
47
|
+
const toolbarRef = useRef(null);
|
|
48
|
+
const touchActivationRef = useRef(null);
|
|
49
|
+
const toolbarPosition = calculateSelectionActionsPosition(selection.rect, toolbarGeometry, touchInteraction, { width: toolbarGeometry.viewportWidth, height: toolbarGeometry.viewportHeight });
|
|
11
50
|
const style = {
|
|
12
|
-
left:
|
|
13
|
-
top:
|
|
14
|
-
? selection.rect.y + selection.rect.height + 8
|
|
15
|
-
: selection.rect.y - 8,
|
|
16
|
-
transform: selection.rect.y < 56 ? 'translate(0, 0)' : 'translate(0, -100%)',
|
|
51
|
+
left: toolbarPosition.left,
|
|
52
|
+
top: toolbarPosition.top,
|
|
17
53
|
};
|
|
18
54
|
const editorWidth = Math.min(420, selection.rect.viewportWidth - 16);
|
|
19
55
|
const editorAbove = selection.rect.y - 118;
|
|
@@ -30,6 +66,43 @@ export function SelectionActions({ selection, askDisabledReason, annotationNumbe
|
|
|
30
66
|
};
|
|
31
67
|
const markerNumber = annotationNumber > 99 ? '99+' : String(annotationNumber);
|
|
32
68
|
const keepSelection = (event) => { event.preventDefault(); };
|
|
69
|
+
useLayoutEffect(() => {
|
|
70
|
+
if (editingAnnotation)
|
|
71
|
+
return;
|
|
72
|
+
const toolbar = toolbarRef.current;
|
|
73
|
+
if (toolbar === null)
|
|
74
|
+
return;
|
|
75
|
+
const measure = () => {
|
|
76
|
+
const bounds = toolbar.getBoundingClientRect();
|
|
77
|
+
const visualViewport = window.visualViewport;
|
|
78
|
+
const viewportWidth = visualViewport?.width ?? window.innerWidth ?? selection.rect.viewportWidth;
|
|
79
|
+
const viewportHeight = visualViewport?.height ?? window.innerHeight ?? selection.rect.viewportHeight;
|
|
80
|
+
const next = {
|
|
81
|
+
width: bounds.width,
|
|
82
|
+
height: bounds.height,
|
|
83
|
+
viewportWidth,
|
|
84
|
+
viewportHeight,
|
|
85
|
+
};
|
|
86
|
+
setToolbarGeometry(current => current.width === next.width
|
|
87
|
+
&& current.height === next.height
|
|
88
|
+
&& current.viewportWidth === next.viewportWidth
|
|
89
|
+
&& current.viewportHeight === next.viewportHeight
|
|
90
|
+
? current
|
|
91
|
+
: next);
|
|
92
|
+
};
|
|
93
|
+
measure();
|
|
94
|
+
const observer = typeof ResizeObserver === 'undefined' ? undefined : new ResizeObserver(measure);
|
|
95
|
+
observer?.observe(toolbar);
|
|
96
|
+
window.addEventListener('resize', measure);
|
|
97
|
+
window.visualViewport?.addEventListener('resize', measure);
|
|
98
|
+
window.visualViewport?.addEventListener('scroll', measure);
|
|
99
|
+
return () => {
|
|
100
|
+
observer?.disconnect();
|
|
101
|
+
window.removeEventListener('resize', measure);
|
|
102
|
+
window.visualViewport?.removeEventListener('resize', measure);
|
|
103
|
+
window.visualViewport?.removeEventListener('scroll', measure);
|
|
104
|
+
};
|
|
105
|
+
}, [editingAnnotation, selection, touchInteraction]);
|
|
33
106
|
useEffect(() => {
|
|
34
107
|
if (editingAnnotation)
|
|
35
108
|
commentRef.current?.focus();
|
|
@@ -63,21 +136,50 @@ export function SelectionActions({ selection, askDisabledReason, annotationNumbe
|
|
|
63
136
|
saveAnnotation();
|
|
64
137
|
}
|
|
65
138
|
};
|
|
139
|
+
const openAnnotationEditor = () => {
|
|
140
|
+
setEditingAnnotation(true);
|
|
141
|
+
onAnnotationEditorChange?.(true);
|
|
142
|
+
};
|
|
143
|
+
const showMoreDetails = () => {
|
|
144
|
+
onMoreDetails(selection);
|
|
145
|
+
onDismiss();
|
|
146
|
+
};
|
|
147
|
+
const askInSideChat = () => {
|
|
148
|
+
onAskInSideChat(selection);
|
|
149
|
+
onDismiss();
|
|
150
|
+
};
|
|
151
|
+
const activateOnTouch = (event, action) => {
|
|
152
|
+
if (!touchInteraction || event.pointerType !== 'touch' || event.currentTarget.disabled)
|
|
153
|
+
return;
|
|
154
|
+
event.preventDefault();
|
|
155
|
+
touchActivationRef.current = {
|
|
156
|
+
target: event.currentTarget,
|
|
157
|
+
timeStamp: event.timeStamp,
|
|
158
|
+
};
|
|
159
|
+
action();
|
|
160
|
+
};
|
|
161
|
+
const activateOnClick = (event, action) => {
|
|
162
|
+
const touchActivation = touchActivationRef.current;
|
|
163
|
+
touchActivationRef.current = null;
|
|
164
|
+
const elapsed = touchActivation === null ? Number.POSITIVE_INFINITY : event.timeStamp - touchActivation.timeStamp;
|
|
165
|
+
if (event.detail !== 0
|
|
166
|
+
&& touchActivation?.target === event.currentTarget
|
|
167
|
+
&& elapsed >= 0
|
|
168
|
+
&& elapsed < 1_000) {
|
|
169
|
+
event.preventDefault();
|
|
170
|
+
return;
|
|
171
|
+
}
|
|
172
|
+
action();
|
|
173
|
+
};
|
|
66
174
|
if (editingAnnotation) {
|
|
67
175
|
return (_jsxs(_Fragment, { children: [annotationEditor === undefined && (_jsx("span", { className: "dsh-side-chat-selection-marker", "aria-hidden": "true", "data-large": annotationNumber > 99 || undefined, style: markerStyle, children: markerNumber })), _jsxs("form", { className: "dsh-side-chat-selection-comment", role: "dialog", "aria-label": annotationEditor?.dialogLabel ?? 'Add annotation comment', style: editorStyle, onSubmit: submitAnnotation, onMouseDown: (event) => { event.stopPropagation(); }, onKeyUp: (event) => { event.stopPropagation(); }, children: [_jsx("textarea", { ref: commentRef, value: comment, rows: 2, "aria-label": "Optional annotation comment", placeholder: "Add an optional comment\u2026", onChange: (event) => { setComment(event.currentTarget.value); }, onKeyDown: annotationKeyDown }), _jsxs("div", { className: "dsh-side-chat-selection-comment-actions", children: [_jsx("button", { type: "button", onClick: closeEditor, children: "Cancel" }), _jsx("button", { type: "submit", className: "dsh-side-chat-selection-comment-save", children: "Save" })] })] })] }));
|
|
68
176
|
}
|
|
69
|
-
return (_jsxs("div", { className: "dsh-side-chat-selection-actions", role: "toolbar", "aria-label": "Selected conversation text actions", style: style, onMouseDown: keepSelection,
|
|
177
|
+
return (_jsxs("div", { ref: toolbarRef, className: "dsh-side-chat-selection-actions", role: "toolbar", "aria-label": "Selected conversation text actions", "data-touch": touchInteraction || undefined, style: style, onMouseDown: keepSelection, onPointerDown: (event) => {
|
|
178
|
+
if (touchInteraction && event.pointerType === 'touch')
|
|
179
|
+
event.preventDefault();
|
|
180
|
+
}, onKeyDown: (event) => {
|
|
70
181
|
if (event.key === 'Escape')
|
|
71
182
|
onDismiss();
|
|
72
|
-
}, children: [_jsx("button", { type: "button", onClick: () => {
|
|
73
|
-
setEditingAnnotation(true);
|
|
74
|
-
onAnnotationEditorChange?.(true);
|
|
75
|
-
}, children: "Add to chat" }), _jsx("button", { type: "button", disabled: askDisabledReason !== undefined, title: askDisabledReason, onClick: () => {
|
|
76
|
-
onMoreDetails(selection);
|
|
77
|
-
onDismiss();
|
|
78
|
-
}, children: "More details" }), _jsx("button", { type: "button", disabled: askDisabledReason !== undefined, title: askDisabledReason, onClick: () => {
|
|
79
|
-
onAskInSideChat(selection);
|
|
80
|
-
onDismiss();
|
|
81
|
-
}, children: "Ask in side chat" })] }));
|
|
183
|
+
}, children: [_jsx("button", { type: "button", onPointerDown: (event) => { activateOnTouch(event, openAnnotationEditor); }, onClick: (event) => { activateOnClick(event, openAnnotationEditor); }, children: "Add to chat" }), _jsx("button", { type: "button", disabled: askDisabledReason !== undefined, title: askDisabledReason, onPointerDown: (event) => { activateOnTouch(event, showMoreDetails); }, onClick: (event) => { activateOnClick(event, showMoreDetails); }, children: "More details" }), _jsx("button", { type: "button", disabled: askDisabledReason !== undefined, title: askDisabledReason, onPointerDown: (event) => { activateOnTouch(event, askInSideChat); }, onClick: (event) => { activateOnClick(event, askInSideChat); }, children: "Ask in side chat" })] }));
|
|
82
184
|
}
|
|
83
185
|
//# sourceMappingURL=SelectionActions.js.map
|