@nsnanocat/preference-panes 0.8.0 → 0.9.0

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 CHANGED
@@ -4,6 +4,14 @@ PreferencePanes 负责具体模块的设置页、共享导航和本地持久化
4
4
 
5
5
  ## 通用 API(0.8.0 form 契约)
6
6
 
7
+ 嵌入的模块页跟随宿主根元素的 `data-theme`(light/dark)和 `--pp-keyboard-height`(CSS 长度),退出时释放观察器。独立页面使用网页自身/系统主题;通用包不再解析 Bilibili 的 User-Agent。
8
+
9
+ 默认表单使用 AppSettings 1.1.2 的原版 VToggle/FormRow CSS 和 b-style 4.0.1 主题,来源及 SHA-256 记录在 `src/browser/vendor/provenance.json`,原文件不做格式化或改写。原有手写开关、行样式和颜色表已删除。控件继续由 BoxJS 动态生成并即改即存;可选 CSS 不在默认样式层内,可覆盖默认外观。原版样式可通过 `@nsnanocat/preference-panes/styles/*` 解析、镜像或导出。
10
+
11
+ 宿主可监听 ModuleFrame 的 `confirm` 事件,调用 `preventDefault()` 接管确认框,再以 `event.detail.resolve(boolean)` 或 `reject(error)` 完成。未接管的独立网页使用浏览器对话框;模块离开后到达的确认结果不会继续写入。
12
+
13
+ 设置页顶部使用官方 VField 外观搜索当前字段的名称、说明、路径和选项标签。搜索只隐藏现有行,不重新生成控件、不追加网络读取;文本框、多行输入和下拉框也共用相同字段结构。
14
+
7
15
  业务模块安装同一个 `https://github.com/NSNanoCat/PreferencePanes/releases/latest/download/api.js`,不再生成绑定业务配置的读写脚本,也不需要额外安装独立设置插件。该文件由本仓库 Release 工作流发布,自动更新遵循代理工具的缓存周期。
8
16
 
9
17
  API 为 POST /api/get、/api/set、/api/delete。form 字段名是完整 `@root.path`;读取和删除的值留空,写入值可以是普通文本或 JSON。API 不鉴权,不下载 JSON,也不校验控件和枚举。
@@ -20,6 +28,8 @@ await fetch("/api/set", {
20
28
 
21
29
  ## 页面与输入
22
30
 
31
+ 主页状态行使用 `@nsnanocat/preference-panes/navigation` 的 `ModuleStatus`。组件只 HEAD 配置地址,失败显示“未安装”,成功读取 X-PreferencePanes-Version 显示业务模块版本;旧配置未提供版本头时显示“版本未知”。状态行始终占据第二行,不读取持久化设置。
32
+
23
33
  ```js
24
34
  import { mount } from "@nsnanocat/preference-panes/browser";
25
35
  const page = mount(boxjs, ".pp-panel { --pp-accent: #16866a; }");
@@ -47,6 +57,8 @@ ModuleFrame 在 iframe 元素上保存原请求上下文,HTML 原样加载,
47
57
 
48
58
  每次进入模块读取 JSON/CSS 和设置一次。二级多选返回复用内存缓存,修改立即写入;成功提示、失败回滚由公共组件处理。Caches 按需查看/清空,重置只删除指定模块子树。
49
59
 
60
+ 模块数据操作位于标题栏右侧三点菜单,页面不再平铺维护按钮。`ActionMenu` 为独立页和宿主常驻顶栏共用组件;宿主将 `frame.state.actions` 传给 `menu.update(actions, busy)`,选择时调用 `frame.perform(id)`。缓存查看进入可返回的缓存子页,清空和重置仍要求确认。菜单组件处理外部点击、Escape、方向键与 Tab,宿主不访问 iframe 内部 DOM。
61
+
50
62
  ## 构建与验证
51
63
 
52
64
  `npm run build` 生成无业务配置的 dist/api.js 和公共前端;Release 工作流上传 api.js、index.html、app.mjs、navigation.mjs。`build(boxjs, css?)` 仅用于生成模块前端文件,不再输出配置副本或模块绑定脚本。