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.
Files changed (2) hide show
  1. package/lib/client.js +27 -53
  2. 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-bottom {
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("button", {
433
- type: "button",
434
- className: "cnvnav-toggle" + (snap.open ? " cnvnav-toggle-on" : ""),
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
- }, React.createElement(ToggleIcon), "导航");
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("button", {
577
- type: "button",
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("button", {
585
- type: "button",
586
- className: "cnvnav-bottom",
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("button", {
592
- type: "button",
593
- className: "cnvnav-bottom",
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("button", {
609
- type: "button",
610
- className: "cnvnav-bottom",
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("button", {
620
- type: "button",
621
- className: "cnvnav-bottom",
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
  }, "▼ 全部折叠"),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dsh-conversation-navigator",
3
- "version": "0.1.3",
3
+ "version": "0.1.4",
4
4
  "description": "Codex 风格的 DSH(DeepSeek Harness)会话导航插件:按轮折叠的对话大纲面板,支持节点点击跳转、滚动位置高亮与轨迹视图同款配色。",
5
5
  "keywords": [
6
6
  "dsh",