dsh-conversation-navigator 0.1.3 → 0.1.4
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/lib/client.js +27 -53
- package/package.json +1 -1
package/lib/client.js
CHANGED
|
@@ -5,26 +5,10 @@ window.__ModuleLoader__.load({
|
|
|
5
5
|
var exports = module.exports;
|
|
6
6
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
7
7
|
const React = require("react");
|
|
8
|
+
const { Button } = require("@deepseek-ai/dsh-client-ui-primitives");
|
|
8
9
|
|
|
9
10
|
/* ---------- own stylesheet (static packages have no styles builtin) ---------- */
|
|
10
11
|
const CSS = `
|
|
11
|
-
.cnvnav-toggle {
|
|
12
|
-
display: inline-flex; align-items: center; gap: 6px;
|
|
13
|
-
height: 28px; padding: 0 10px; border-radius: 8px;
|
|
14
|
-
border: 1px solid var(--dsw-alias-border-l1, rgba(128,128,128,.35));
|
|
15
|
-
background: transparent;
|
|
16
|
-
color: var(--dsw-alias-label-secondary, #666);
|
|
17
|
-
font-size: 12px; line-height: 1; cursor: pointer;
|
|
18
|
-
}
|
|
19
|
-
.cnvnav-toggle:hover {
|
|
20
|
-
background: var(--dsw-alias-bg-layer-2, rgba(128,128,128,.12));
|
|
21
|
-
color: var(--dsw-alias-label-primary, #222);
|
|
22
|
-
}
|
|
23
|
-
.cnvnav-toggle-on {
|
|
24
|
-
color: var(--dsw-alias-brand-primary, #4f46e5);
|
|
25
|
-
border-color: var(--dsw-alias-brand-primary, #4f46e5);
|
|
26
|
-
}
|
|
27
|
-
.cnvnav-toggle svg { display: block; }
|
|
28
12
|
.cnvnav-panel {
|
|
29
13
|
position: fixed; z-index: 9999; width: 288px;
|
|
30
14
|
display: flex; flex-direction: column;
|
|
@@ -45,15 +29,7 @@ window.__ModuleLoader__.load({
|
|
|
45
29
|
}
|
|
46
30
|
.cnvnav-title { font-weight: 600; font-size: 13px; }
|
|
47
31
|
.cnvnav-count { color: var(--dsw-alias-label-secondary, #888); font-size: 11px; }
|
|
48
|
-
.cnvnav-close {
|
|
49
|
-
margin-left: auto; border: none; background: transparent;
|
|
50
|
-
color: var(--dsw-alias-label-secondary, #888); cursor: pointer;
|
|
51
|
-
font-size: 16px; line-height: 1; padding: 2px 7px; border-radius: 6px;
|
|
52
|
-
}
|
|
53
|
-
.cnvnav-close:hover {
|
|
54
|
-
background: var(--dsw-alias-bg-layer-2, rgba(128,128,128,.12));
|
|
55
|
-
color: var(--dsw-alias-label-primary, #222);
|
|
56
|
-
}
|
|
32
|
+
.cnvnav-close { margin-left: auto; }
|
|
57
33
|
.cnvnav-list {
|
|
58
34
|
overflow-y: auto; padding: 6px; min-height: 0;
|
|
59
35
|
display: flex; flex-direction: column; gap: 2px;
|
|
@@ -129,15 +105,7 @@ window.__ModuleLoader__.load({
|
|
|
129
105
|
.cnvnav-empty { padding: 18px 10px; text-align: center; color: var(--dsw-alias-label-secondary, #888); }
|
|
130
106
|
.cnvnav-topbar { display: flex; gap: 6px; margin: 6px 6px 0; }
|
|
131
107
|
.cnvnav-footer { display: flex; gap: 6px; margin: 0 6px 6px; }
|
|
132
|
-
.cnvnav-
|
|
133
|
-
flex: 1; padding: 7px; border-radius: 8px;
|
|
134
|
-
border: 1px solid var(--dsw-alias-border-l1, rgba(128,128,128,.35));
|
|
135
|
-
background: var(--dsw-alias-bg-layer-1, rgba(128,128,128,.06));
|
|
136
|
-
color: var(--dsw-alias-label-primary, #222); cursor: pointer; font-size: 12px;
|
|
137
|
-
}
|
|
138
|
-
.cnvnav-bottom:hover { border-color: var(--dsw-alias-brand-primary, #4f46e5); color: var(--dsw-alias-brand-primary, #4f46e5); }
|
|
139
|
-
.cnvnav-bottom:disabled { opacity: .45; cursor: default; border-color: var(--dsw-alias-border-l1, rgba(128,128,128,.35)); color: var(--dsw-alias-label-secondary, #888); }
|
|
140
|
-
.cnvnav-bottom:disabled:hover { border-color: var(--dsw-alias-border-l1, rgba(128,128,128,.35)); color: var(--dsw-alias-label-secondary, #888); }
|
|
108
|
+
.cnvnav-bar-btn { flex: 1; }
|
|
141
109
|
`;
|
|
142
110
|
|
|
143
111
|
function apply(ctx) {
|
|
@@ -429,13 +397,14 @@ window.__ModuleLoader__.load({
|
|
|
429
397
|
setState({ activeKey: null, expanded: {} });
|
|
430
398
|
}
|
|
431
399
|
}, [props.sessionId]);
|
|
432
|
-
return React.createElement(
|
|
433
|
-
|
|
434
|
-
|
|
400
|
+
return React.createElement(Button, {
|
|
401
|
+
variant: snap.open ? "primary" : "ghost",
|
|
402
|
+
size: "sm",
|
|
403
|
+
icon: React.createElement(ToggleIcon),
|
|
435
404
|
"aria-pressed": snap.open,
|
|
436
405
|
title: snap.open ? "收起会话导航" : "打开会话导航",
|
|
437
406
|
onClick: () => setState({ open: !snap.open }),
|
|
438
|
-
},
|
|
407
|
+
}, "导航");
|
|
439
408
|
}
|
|
440
409
|
|
|
441
410
|
/* ---------- floating navigator panel ---------- */
|
|
@@ -573,24 +542,27 @@ window.__ModuleLoader__.load({
|
|
|
573
542
|
React.createElement("div", { className: "cnvnav-head" },
|
|
574
543
|
React.createElement("span", { className: "cnvnav-title" }, "会话导航"),
|
|
575
544
|
React.createElement("span", { className: "cnvnav-count" }, String(count) + " 条"),
|
|
576
|
-
React.createElement(
|
|
577
|
-
|
|
545
|
+
React.createElement(Button, {
|
|
546
|
+
variant: "ghost",
|
|
547
|
+
size: "sm",
|
|
578
548
|
className: "cnvnav-close",
|
|
579
549
|
title: "收起",
|
|
580
550
|
onClick: () => setState({ open: false }),
|
|
581
551
|
}, "×"),
|
|
582
552
|
),
|
|
583
553
|
React.createElement("div", { className: "cnvnav-topbar" },
|
|
584
|
-
React.createElement(
|
|
585
|
-
|
|
586
|
-
|
|
554
|
+
React.createElement(Button, {
|
|
555
|
+
variant: "ghost",
|
|
556
|
+
size: "sm",
|
|
557
|
+
className: "cnvnav-bar-btn",
|
|
587
558
|
disabled: !snap.hasMore || snap.loadingOlder,
|
|
588
559
|
title: "加载更早的一批轮次",
|
|
589
560
|
onClick: () => loadOlderPage(),
|
|
590
561
|
}, "△ 加载更早"),
|
|
591
|
-
React.createElement(
|
|
592
|
-
|
|
593
|
-
|
|
562
|
+
React.createElement(Button, {
|
|
563
|
+
variant: "ghost",
|
|
564
|
+
size: "sm",
|
|
565
|
+
className: "cnvnav-bar-btn",
|
|
594
566
|
disabled: !snap.hasMore || snap.loadingOlder || snap.loadingAll,
|
|
595
567
|
title: "加载全部历史轮次",
|
|
596
568
|
onClick: () => loadAllPages(),
|
|
@@ -605,9 +577,10 @@ window.__ModuleLoader__.load({
|
|
|
605
577
|
: groupNodes,
|
|
606
578
|
),
|
|
607
579
|
React.createElement("div", { className: "cnvnav-footer" },
|
|
608
|
-
React.createElement(
|
|
609
|
-
|
|
610
|
-
|
|
580
|
+
React.createElement(Button, {
|
|
581
|
+
variant: "ghost",
|
|
582
|
+
size: "sm",
|
|
583
|
+
className: "cnvnav-bar-btn",
|
|
611
584
|
onClick: () => {
|
|
612
585
|
const gs = snap.outline !== null ? snap.outline.groups : [];
|
|
613
586
|
if (gs.length === 0) return;
|
|
@@ -616,9 +589,10 @@ window.__ModuleLoader__.load({
|
|
|
616
589
|
if (lastItem !== undefined) jumpTo(lastItem.key);
|
|
617
590
|
},
|
|
618
591
|
}, "↓ 回到最新"),
|
|
619
|
-
React.createElement(
|
|
620
|
-
|
|
621
|
-
|
|
592
|
+
React.createElement(Button, {
|
|
593
|
+
variant: "ghost",
|
|
594
|
+
size: "sm",
|
|
595
|
+
className: "cnvnav-bar-btn",
|
|
622
596
|
title: "折叠所有已展开的轮次",
|
|
623
597
|
onClick: () => setState({ expanded: {} }),
|
|
624
598
|
}, "▼ 全部折叠"),
|