imkingjh999/dsh-float-window0

dsh-float-window

共享浮窗外壳组件:为 DSH 网页插件提供支持拖拽、贴边、缩放、老板键及多窗口堆叠的 React 浮窗组件。

AI 分析

核心用途是为 DSH 插件开发者提供统一的浮窗交互框架。适合需要开发具有复杂 UI 交互的 DSH 网页端插件的开发者。

包名
dsh-float-window
版本
0.2.0
许可证
MIT
最近更新
2026年8月18日

安装

此插件尚未提供可验证的 bundle,或兼容性检查未通过。请先阅读仓库说明。 阅读完整 README ↗

dsh-float-window

DSH 插件共享浮窗外壳组件 —— 一份 React 组件,给所有 DeepSeek Harness web 插件提供行为一致的浮窗:dsh-shorts-walldsh-deepsea 共用同一实现。

English | 中文

能力

特性说明
三态窗口浮动(拖拽 / 右缘吸附贴边)/ 贴边竖栏 / 最小化
四角缩放nw/ne/sw/se 对角锚定;两模式共享矩形,切换零位移
最小化记忆记住最小化前模式与贴边展开态,还原精确回原布局
老板键默认 Alt+S;多窗自动分配互不冲突的组合(见下)
多窗共存双 z 带、启动按钮错位堆叠、恢复置顶、老板键按窗分配
内容永不重载模式切换只改容器样式,内容子树保持挂载
完全可定制标题 / 主题色 / 图标 / 边界 / 默认模式 / 文案全 props 化

用法

源码包(消费方 tsdown 直接内联,react 为 peerDependency):

import { FloatWindow } from 'dsh-float-window'

  {(visible, ctx) => }

要求:React 18+(peer),TypeScript bundler 解析 (tsdown/vite/tsc moduleResolution: bundler)。

多窗识别与老板键分配(≥0.2)

每个插件的 client bundle 各自内联本组件,模块态不共享, 协调走 window.__dshFloatWindows 全局注册表:

  • 识别floatWindowSnapshot() 返回当前文档挂载中的浮窗及各自老板键; 同一注册表也驱动 z 层叠与右下角启动按钮错位(bottom: 18 + n×52)。
  • 自动分配:未声明老板键的窗口按挂载顺序领取组合池 Alt+S → Alt+X → Alt+Z → Alt+C → Alt+V → Alt+B → Alt+Q → Alt+W (刻意避开 Chrome 占用的 Alt+D/E/F),超出后顺延 Alt+Shift+1…。 单窗行为与 0.1 完全一致(就是 Alt+S)。
  • 显式预留bossKey="Alt+D" 声明的组合会被注册表预留,自动窗永不落入; 同组合的自动窗会让位并即时刷新提示。两个显式同组合窗口则各自照常响应。
  • 完全自定义isBossKey 谓词且不传 bossKey 时保持 0.1 匿名行为—— 不参与协调,提示文案退化为「老板键」。
  • 提示联动:launcher / 贴边栏 tooltip 与标题栏 bossKeyText(支持 {key} 占位符)始终显示该窗当前实际响应的组合。

注意:协调要求同页所有浮窗都运行 ≥0.2 (0.1 实例不注册,仍各自默认 Alt+S)。

License

MIT