dsh-conversation-navigator 0.1.8 → 0.1.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.
Files changed (2) hide show
  1. package/lib/client.js +87 -56
  2. package/package.json +1 -1
package/lib/client.js CHANGED
@@ -5,7 +5,7 @@ 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, IconCloseOutline16 } = require("@deepseek-ai/dsh-client-ui-primitives");
8
+ const { Button, Tooltip, IconCloseOutline16 } = require("@deepseek-ai/dsh-client-ui-primitives");
9
9
 
10
10
  /* ---------- custom icons (DSH outline style, unique to this panel) ---------- */
11
11
  function ToggleIcon() {
@@ -444,14 +444,19 @@ window.__ModuleLoader__.load({
444
444
  setState({ activeKey: null, expanded: {} });
445
445
  }
446
446
  }, [props.sessionId]);
447
- return React.createElement(Button, {
448
- variant: snap.open ? "primary" : "ghost",
449
- size: "sm",
450
- icon: React.createElement(ToggleIcon),
451
- "aria-pressed": snap.open,
452
- title: snap.open ? "收起会话导航" : "打开会话导航",
453
- onClick: () => setState({ open: !snap.open }),
454
- }, "导航");
447
+ return React.createElement(Tooltip, {
448
+ label: snap.open ? "收起会话导航" : "打开会话导航",
449
+ side: "bottom",
450
+ delayMs: 500,
451
+ },
452
+ React.createElement(Button, {
453
+ variant: snap.open ? "primary" : "ghost",
454
+ size: "sm",
455
+ icon: React.createElement(ToggleIcon),
456
+ "aria-pressed": snap.open,
457
+ onClick: () => setState({ open: !snap.open }),
458
+ }, "导航"),
459
+ );
455
460
  }
456
461
 
457
462
  /* ---------- floating navigator panel ---------- */
@@ -589,34 +594,49 @@ window.__ModuleLoader__.load({
589
594
  React.createElement("div", { className: "cnvnav-head" },
590
595
  React.createElement("span", { className: "cnvnav-title" }, "会话导航"),
591
596
  React.createElement("span", { className: "cnvnav-count" }, String(count) + " 条"),
592
- React.createElement(Button, {
593
- variant: "ghost",
594
- size: "sm",
595
- className: "cnvnav-close",
596
- icon: React.createElement(IconCloseOutline16, { size: 14 }),
597
- title: "收起",
598
- onClick: () => setState({ open: false }),
599
- }),
597
+ React.createElement(Tooltip, {
598
+ label: "收起面板",
599
+ side: "bottom",
600
+ delayMs: 500,
601
+ },
602
+ React.createElement(Button, {
603
+ variant: "ghost",
604
+ size: "sm",
605
+ className: "cnvnav-close",
606
+ icon: React.createElement(IconCloseOutline16, { size: 14 }),
607
+ onClick: () => setState({ open: false }),
608
+ }),
609
+ ),
600
610
  ),
601
611
  React.createElement("div", { className: "cnvnav-topbar" },
602
- React.createElement(Button, {
603
- variant: "ghost",
604
- size: "sm",
605
- className: "cnvnav-bar-btn",
606
- icon: React.createElement(LoadEarlierIcon),
607
- disabled: !snap.hasMore || snap.loadingOlder,
608
- title: "加载更早的一批轮次",
609
- onClick: () => loadOlderPage(),
610
- }, "加载更早"),
611
- React.createElement(Button, {
612
- variant: "ghost",
613
- size: "sm",
614
- className: "cnvnav-bar-btn",
615
- icon: React.createElement(LoadAllIcon),
616
- disabled: !snap.hasMore || snap.loadingOlder || snap.loadingAll,
617
- title: "加载全部历史轮次",
618
- onClick: () => loadAllPages(),
619
- }, "加载全部"),
612
+ React.createElement(Tooltip, {
613
+ label: "加载更早的一批轮次",
614
+ side: "bottom",
615
+ delayMs: 500,
616
+ },
617
+ React.createElement(Button, {
618
+ variant: "ghost",
619
+ size: "sm",
620
+ className: "cnvnav-bar-btn",
621
+ icon: React.createElement(LoadEarlierIcon),
622
+ disabled: !snap.hasMore || snap.loadingOlder,
623
+ onClick: () => loadOlderPage(),
624
+ }, "加载更早"),
625
+ ),
626
+ React.createElement(Tooltip, {
627
+ label: "加载全部历史轮次",
628
+ side: "bottom",
629
+ delayMs: 500,
630
+ },
631
+ React.createElement(Button, {
632
+ variant: "ghost",
633
+ size: "sm",
634
+ className: "cnvnav-bar-btn",
635
+ icon: React.createElement(LoadAllIcon),
636
+ disabled: !snap.hasMore || snap.loadingOlder || snap.loadingAll,
637
+ onClick: () => loadAllPages(),
638
+ }, "加载全部"),
639
+ ),
620
640
  ),
621
641
  React.createElement("div", {
622
642
  ref: (el) => { listEl = el; },
@@ -627,27 +647,38 @@ window.__ModuleLoader__.load({
627
647
  : groupNodes,
628
648
  ),
629
649
  React.createElement("div", { className: "cnvnav-footer" },
630
- React.createElement(Button, {
631
- variant: "ghost",
632
- size: "sm",
633
- className: "cnvnav-bar-btn",
634
- icon: React.createElement(JumpLatestIcon),
635
- onClick: () => {
636
- const gs = snap.outline !== null ? snap.outline.groups : [];
637
- if (gs.length === 0) return;
638
- const lastGroup = gs[gs.length - 1];
639
- const lastItem = lastGroup.items[lastGroup.items.length - 1];
640
- if (lastItem !== undefined) jumpTo(lastItem.key);
641
- },
642
- }, "回到最新"),
643
- React.createElement(Button, {
644
- variant: "ghost",
645
- size: "sm",
646
- className: "cnvnav-bar-btn",
647
- icon: React.createElement(CollapseAllIcon),
648
- title: "折叠所有已展开的轮次",
649
- onClick: () => setState({ expanded: {} }),
650
- }, "全部折叠"),
650
+ React.createElement(Tooltip, {
651
+ label: "回到对话最新位置",
652
+ side: "top",
653
+ delayMs: 500,
654
+ },
655
+ React.createElement(Button, {
656
+ variant: "ghost",
657
+ size: "sm",
658
+ className: "cnvnav-bar-btn",
659
+ icon: React.createElement(JumpLatestIcon),
660
+ onClick: () => {
661
+ const gs = snap.outline !== null ? snap.outline.groups : [];
662
+ if (gs.length === 0) return;
663
+ const lastGroup = gs[gs.length - 1];
664
+ const lastItem = lastGroup.items[lastGroup.items.length - 1];
665
+ if (lastItem !== undefined) jumpTo(lastItem.key);
666
+ },
667
+ }, "回到最新"),
668
+ ),
669
+ React.createElement(Tooltip, {
670
+ label: "折叠所有已展开的轮次",
671
+ side: "top",
672
+ delayMs: 500,
673
+ },
674
+ React.createElement(Button, {
675
+ variant: "ghost",
676
+ size: "sm",
677
+ className: "cnvnav-bar-btn",
678
+ icon: React.createElement(CollapseAllIcon),
679
+ onClick: () => setState({ expanded: {} }),
680
+ }, "全部折叠"),
681
+ ),
651
682
  ),
652
683
  );
653
684
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dsh-conversation-navigator",
3
- "version": "0.1.8",
3
+ "version": "0.1.9",
4
4
  "description": "Codex 风格的 DSH(DeepSeek Harness)会话导航插件:按轮折叠的对话大纲面板,支持节点点击跳转、滚动位置高亮与轨迹视图同款配色。",
5
5
  "keywords": [
6
6
  "dsh",