@iasiv5/dsh-skins 1.0.2 → 1.0.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/README.en.md +2 -2
- package/README.i18n.yaml +2 -2
- package/README.md +2 -2
- package/lib/client.js +57 -19
- package/package.json +8 -7
package/README.en.md
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
[](../../actions/workflows/ci.yml)
|
|
5
5
|
[](./LICENSE)
|
|
6
6
|
[](https://www.npmjs.com/package/@iasiv5/dsh-skins)
|
|
7
|
-
[](#faq)
|
|
8
8
|
|
|
9
9
|
English · [中文](./README.md)
|
|
10
10
|
|
|
@@ -179,7 +179,7 @@ Pick "DeepSeek Harness (Official)" in the skin switcher, or open `/?skin=officia
|
|
|
179
179
|
Updates follow a "back up first, then install" transaction: any verification failure automatically restores the previous version, and the popover shows the failure reason (in Chinese and English). If it still fails, update manually with `dsh plugin --profile web update @iasiv5/dsh-skins`.
|
|
180
180
|
|
|
181
181
|
**Which DSH Web versions are supported?**
|
|
182
|
-
Verified with DSH Web `0.1.
|
|
182
|
+
Verified with DSH Web `0.1.2-rc.1`. Later rc builds of the same series are expected to work, but unverified versions carry no promise.
|
|
183
183
|
|
|
184
184
|
**Does my appearance preference sync across browsers?**
|
|
185
185
|
In the browser on the DSH host machine (loopback), the preference is persisted by the DSH Host and shared naturally. Other remote browsers keep the preference in their own `localStorage` — independent per browser, never overwritten.
|
package/README.i18n.yaml
CHANGED
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
# last confirmed-consistent state. Both languages carry equal authority;
|
|
3
3
|
# after editing either side, bring the other along and re-record with:
|
|
4
4
|
# node scripts/verify-readme-pairing.mjs --write
|
|
5
|
-
README.md:
|
|
6
|
-
README.en.md:
|
|
5
|
+
README.md: c7707edb3153d695fe102d83fa78beb1ee3e6fa9
|
|
6
|
+
README.en.md: 9013e7c5796ac490e4e19eff59939f8267a66680
|
package/README.md
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
[](../../actions/workflows/ci.yml)
|
|
5
5
|
[](./LICENSE)
|
|
6
6
|
[](https://www.npmjs.com/package/@iasiv5/dsh-skins)
|
|
7
|
-
[](#faq)
|
|
8
8
|
|
|
9
9
|
[English](./README.en.md) · 中文
|
|
10
10
|
|
|
@@ -179,7 +179,7 @@ URL 也能切皮肤:`/?skin=official`、`/?skin=meirenzhi`、`/?skin=openbmc`
|
|
|
179
179
|
更新遵循「先备份、再安装」的事务流程,任何校验失败都会自动恢复原版本,弹层显示失败原因(中英双语)。仍失败时可用 `dsh plugin --profile web update @iasiv5/dsh-skins` 手动更新。
|
|
180
180
|
|
|
181
181
|
**支持哪些 DSH Web 版本?**
|
|
182
|
-
已使用 DSH Web `0.1.
|
|
182
|
+
已使用 DSH Web `0.1.2-rc.1` 验证。同系列 rc 版本理论上兼容,未经验证的版本不作承诺。
|
|
183
183
|
|
|
184
184
|
**外观偏好在不同的浏览器间同步吗?**
|
|
185
185
|
在 DSH 所在机器的浏览器(loopback)上,偏好由 DSH Host 持久化,天然共享。其他远程浏览器由插件将偏好存入本地 `localStorage`,各浏览器独立、互不覆盖。
|
package/lib/client.js
CHANGED
|
@@ -2757,11 +2757,17 @@ ${names}`);
|
|
|
2757
2757
|
// 暗=雾白底玄夜字。#12121A/#FAF9F6 与面板底色族同源。
|
|
2758
2758
|
`${SCOPE} .dsh-mrz-badge{display:inline-flex;align-items:center;background:#12121A;border-radius:4px;padding:0 5px;font-size:10px;line-height:16px;font-weight:600;letter-spacing:.08em;color:#FAF9F6}`,
|
|
2759
2759
|
`body[data-dsh-meirenzhi-skin][data-ds-dark-theme] .dsh-mrz-badge{background:#FAF9F6;color:#12121A}`,
|
|
2760
|
-
// 用户气泡描边 + 轻投影(openbmc
|
|
2761
|
-
//
|
|
2762
|
-
//
|
|
2763
|
-
|
|
2764
|
-
|
|
2760
|
+
// 用户气泡描边 + 轻投影(openbmc 同款泡泡边框:框出用户输入区)。挂接用
|
|
2761
|
+
// :is() 并集(精确哈希 ∪ 结构化,见 docs/adr/0006):哈希漂移与 DOM 结构
|
|
2762
|
+
// 变化两种单点故障各有一支兜底,钩子前提由 verify-upstream-hooks 守卫在
|
|
2763
|
+
// check 时钉住。失效仅影响描边装饰,token 填充不受影响。
|
|
2764
|
+
`${SCOPE} :is([class*="Sixlwa_bubble"], [class*="userStack"] > [class*="_bubble"]){border:1px solid rgba(184, 67, 63, 0.38);box-shadow:0 1px 4px rgba(184, 67, 63, 0.10)}`,
|
|
2765
|
+
`body[data-dsh-meirenzhi-skin][data-ds-dark-theme] :is([class*="Sixlwa_bubble"], [class*="userStack"] > [class*="_bubble"]){border-color:rgba(229, 138, 128, 0.38);box-shadow:0 1px 6px rgba(229, 138, 128, 0.10)}`,
|
|
2766
|
+
// 目标面板气泡(goal stack > bubble,与用户气泡同族描边)。ADR-0006 v1.0.4
|
|
2767
|
+
// amendment:主人目测 goal 无描边观感不佳,裁决扩入;同款并集策略,守卫
|
|
2768
|
+
// 清单已登记 goal 精确哈希与 _stack 结构前提。
|
|
2769
|
+
`${SCOPE} :is([class*="oRe1gG_bubble"], [class*="_stack"] > [class*="_bubble"]){border:1px solid rgba(184, 67, 63, 0.38);box-shadow:0 1px 4px rgba(184, 67, 63, 0.10)}`,
|
|
2770
|
+
`body[data-dsh-meirenzhi-skin][data-ds-dark-theme] :is([class*="oRe1gG_bubble"], [class*="_stack"] > [class*="_bubble"]){border-color:rgba(229, 138, 128, 0.38);box-shadow:0 1px 6px rgba(229, 138, 128, 0.10)}`,
|
|
2765
2771
|
// Ambient motion: a slow glow-breath riding the runtime's wallpaper ::before
|
|
2766
2772
|
// layer + two drifting fireflies on the #root pseudo budget (same shape and
|
|
2767
2773
|
// cost as the tgcf butterflies); prefers-reduced-motion kills all of it.
|
|
@@ -3106,13 +3112,27 @@ ${names}`);
|
|
|
3106
3112
|
body[data-dsh-openbmc-skin][data-ds-dark-theme] {
|
|
3107
3113
|
/* 暗色气泡填充由 ③ 暗色块的深冰蓝接管(rgba(20,41,60,.90)),此处不再重定义 */
|
|
3108
3114
|
}
|
|
3109
|
-
/* 用户气泡描边 +
|
|
3110
|
-
*
|
|
3111
|
-
|
|
3115
|
+
/* 用户气泡描边 + 轻投影(框出用户输入区)。挂接用 :is() 并集(精确哈希 ∪
|
|
3116
|
+
* 结构化,见 docs/adr/0006):哈希漂移与 DOM 结构变化两种单点故障各有一支
|
|
3117
|
+
* 兜底,钩子前提由 verify-upstream-hooks 守卫在 check 时钉住。失效仅影响
|
|
3118
|
+
* 描边装饰,token 填充仍然生效;结构分支不命中 goal 面板气泡(其容器
|
|
3119
|
+
* _stack 不含 userStack 子串,ADR-0006 实测),goal 维持不描边。 */
|
|
3120
|
+
body[data-dsh-openbmc-skin] :is([class*="Sixlwa_bubble"], [class*="userStack"] > [class*="_bubble"]) {
|
|
3112
3121
|
border: 1px solid rgba(0, 131, 176, 0.38);
|
|
3113
3122
|
box-shadow: 0 1px 4px rgba(0, 131, 176, 0.10);
|
|
3114
3123
|
}
|
|
3115
|
-
body[data-dsh-openbmc-skin][data-ds-dark-theme]
|
|
3124
|
+
body[data-dsh-openbmc-skin][data-ds-dark-theme] :is([class*="Sixlwa_bubble"], [class*="userStack"] > [class*="_bubble"]) {
|
|
3125
|
+
border-color: rgba(62, 193, 232, 0.38);
|
|
3126
|
+
box-shadow: 0 1px 6px rgba(62, 193, 232, 0.10);
|
|
3127
|
+
}
|
|
3128
|
+
/* 目标面板气泡(goal stack > bubble,与用户气泡同族描边)。ADR-0006
|
|
3129
|
+
* v1.0.4 amendment:主人目测 goal 无描边观感不佳,裁决扩入;同款并集
|
|
3130
|
+
* 策略,守卫清单已登记 goal 精确哈希与 _stack 结构前提。 */
|
|
3131
|
+
body[data-dsh-openbmc-skin] :is([class*="oRe1gG_bubble"], [class*="_stack"] > [class*="_bubble"]) {
|
|
3132
|
+
border: 1px solid rgba(0, 131, 176, 0.38);
|
|
3133
|
+
box-shadow: 0 1px 4px rgba(0, 131, 176, 0.10);
|
|
3134
|
+
}
|
|
3135
|
+
body[data-dsh-openbmc-skin][data-ds-dark-theme] :is([class*="oRe1gG_bubble"], [class*="_stack"] > [class*="_bubble"]) {
|
|
3116
3136
|
border-color: rgba(62, 193, 232, 0.38);
|
|
3117
3137
|
box-shadow: 0 1px 6px rgba(62, 193, 232, 0.10);
|
|
3118
3138
|
}
|
|
@@ -3302,14 +3322,26 @@ body[data-dsh-uefi-harness] [data-streaming] {
|
|
|
3302
3322
|
border-radius: 4px;
|
|
3303
3323
|
box-shadow: inset 3px 0 0 var(--dsw-alias-brand-primary);
|
|
3304
3324
|
}
|
|
3305
|
-
/* 用户气泡描边 + 轻投影(openbmc
|
|
3306
|
-
*
|
|
3307
|
-
*
|
|
3308
|
-
|
|
3325
|
+
/* 用户气泡描边 + 轻投影(openbmc 同款泡泡边框:框出用户输入区)。挂接用
|
|
3326
|
+
* :is() 并集(精确哈希 ∪ 结构化,见 docs/adr/0006):哈希漂移与 DOM 结构
|
|
3327
|
+
* 变化两种单点故障各有一支兜底,钩子前提由 verify-upstream-hooks 守卫在
|
|
3328
|
+
* check 时钉住。失效仅影响描边装饰,token 填充仍然生效。 */
|
|
3329
|
+
body[data-dsh-uefi-harness] :is([class*="Sixlwa_bubble"], [class*="userStack"] > [class*="_bubble"]) {
|
|
3330
|
+
border: 1px solid rgba(101, 83, 216, 0.38);
|
|
3331
|
+
box-shadow: 0 1px 4px rgba(101, 83, 216, 0.10);
|
|
3332
|
+
}
|
|
3333
|
+
body[data-dsh-uefi-harness][data-ds-dark-theme] :is([class*="Sixlwa_bubble"], [class*="userStack"] > [class*="_bubble"]) {
|
|
3334
|
+
border-color: rgba(169, 156, 255, 0.38);
|
|
3335
|
+
box-shadow: 0 1px 6px rgba(169, 156, 255, 0.10);
|
|
3336
|
+
}
|
|
3337
|
+
/* 目标面板气泡(goal stack > bubble,与用户气泡同族描边)。ADR-0006
|
|
3338
|
+
* v1.0.4 amendment:主人目测 goal 无描边观感不佳,裁决扩入;同款并集
|
|
3339
|
+
* 策略,守卫清单已登记 goal 精确哈希与 _stack 结构前提。 */
|
|
3340
|
+
body[data-dsh-uefi-harness] :is([class*="oRe1gG_bubble"], [class*="_stack"] > [class*="_bubble"]) {
|
|
3309
3341
|
border: 1px solid rgba(101, 83, 216, 0.38);
|
|
3310
3342
|
box-shadow: 0 1px 4px rgba(101, 83, 216, 0.10);
|
|
3311
3343
|
}
|
|
3312
|
-
body[data-dsh-uefi-harness][data-ds-dark-theme]
|
|
3344
|
+
body[data-dsh-uefi-harness][data-ds-dark-theme] :is([class*="oRe1gG_bubble"], [class*="_stack"] > [class*="_bubble"]) {
|
|
3313
3345
|
border-color: rgba(169, 156, 255, 0.38);
|
|
3314
3346
|
box-shadow: 0 1px 6px rgba(169, 156, 255, 0.10);
|
|
3315
3347
|
}`;
|
|
@@ -3417,11 +3449,17 @@ body[data-dsh-uefi-harness][data-ds-dark-theme] .gdEzaW_bubble {
|
|
|
3417
3449
|
// 墨黑/素白 (same values panelBase tints the glass with).
|
|
3418
3450
|
`${SCOPE2} .dsh-tgcf-badge{display:inline-flex;align-items:center;background:#181010;border-radius:4px;padding:0 5px;font-size:10px;line-height:16px;font-weight:600;letter-spacing:.08em;color:#FFFCF6}`,
|
|
3419
3451
|
`body[data-dsh-tgcf-skin][data-ds-dark-theme] .dsh-tgcf-badge{background:#FFFCF6;color:#181010}`,
|
|
3420
|
-
// 用户气泡描边 + 轻投影(openbmc
|
|
3421
|
-
//
|
|
3422
|
-
//
|
|
3423
|
-
|
|
3424
|
-
|
|
3452
|
+
// 用户气泡描边 + 轻投影(openbmc 同款泡泡边框:框出用户输入区)。挂接用
|
|
3453
|
+
// :is() 并集(精确哈希 ∪ 结构化,见 docs/adr/0006):哈希漂移与 DOM 结构
|
|
3454
|
+
// 变化两种单点故障各有一支兜底,钩子前提由 verify-upstream-hooks 守卫在
|
|
3455
|
+
// check 时钉住。失效仅影响描边装饰,token 填充不受影响。
|
|
3456
|
+
`${SCOPE2} :is([class*="Sixlwa_bubble"], [class*="userStack"] > [class*="_bubble"]){border:1px solid rgba(195, 39, 43, 0.38);box-shadow:0 1px 4px rgba(195, 39, 43, 0.10)}`,
|
|
3457
|
+
`body[data-dsh-tgcf-skin][data-ds-dark-theme] :is([class*="Sixlwa_bubble"], [class*="userStack"] > [class*="_bubble"]){border-color:rgba(224, 86, 74, 0.38);box-shadow:0 1px 6px rgba(224, 86, 74, 0.10)}`,
|
|
3458
|
+
// 目标面板气泡(goal stack > bubble,与用户气泡同族描边)。ADR-0006 v1.0.4
|
|
3459
|
+
// amendment:主人目测 goal 无描边观感不佳,裁决扩入;同款并集策略,守卫
|
|
3460
|
+
// 清单已登记 goal 精确哈希与 _stack 结构前提。
|
|
3461
|
+
`${SCOPE2} :is([class*="oRe1gG_bubble"], [class*="_stack"] > [class*="_bubble"]){border:1px solid rgba(195, 39, 43, 0.38);box-shadow:0 1px 4px rgba(195, 39, 43, 0.10)}`,
|
|
3462
|
+
`body[data-dsh-tgcf-skin][data-ds-dark-theme] :is([class*="oRe1gG_bubble"], [class*="_stack"] > [class*="_bubble"]){border-color:rgba(224, 86, 74, 0.38);box-shadow:0 1px 6px rgba(224, 86, 74, 0.10)}`
|
|
3425
3463
|
].join("\n");
|
|
3426
3464
|
function panelBase(lightMode, alpha) {
|
|
3427
3465
|
return lightMode ? `rgba(255,252,246,${alpha})` : `rgba(24,16,16,${alpha})`;
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@iasiv5/dsh-skins",
|
|
3
3
|
"description": "Modular DSH Web skin pack with official fallback, OpenBMC and UEFI appearances, and verified stable-Release updates",
|
|
4
|
-
"version": "1.0.
|
|
4
|
+
"version": "1.0.4",
|
|
5
5
|
"homepage": "https://github.com/iasiv5/dsh-skins#readme",
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|
|
@@ -56,11 +56,11 @@
|
|
|
56
56
|
},
|
|
57
57
|
"peerDependencies": {
|
|
58
58
|
"@deepseek-ai/cordis": "^4.0.1",
|
|
59
|
-
"@deepseek-ai/dsh-client-connection": "^0.1.1-rc.2",
|
|
60
|
-
"@deepseek-ai/dsh-client-runtime": "^0.1.1-rc.2",
|
|
61
|
-
"@deepseek-ai/dsh-client-ui-conversation": "^0.1.1-rc.2",
|
|
62
|
-
"@deepseek-ai/dsh-client-ui-sidebar": "^0.1.1-rc.2",
|
|
63
|
-
"@deepseek-ai/dsh-client-ui-theme": "^0.1.1-rc.2"
|
|
59
|
+
"@deepseek-ai/dsh-client-connection": "^0.1.1-rc.2 || ^0.1.2-rc.1",
|
|
60
|
+
"@deepseek-ai/dsh-client-runtime": "^0.1.1-rc.2 || ^0.1.2-rc.1",
|
|
61
|
+
"@deepseek-ai/dsh-client-ui-conversation": "^0.1.1-rc.2 || ^0.1.2-rc.1",
|
|
62
|
+
"@deepseek-ai/dsh-client-ui-sidebar": "^0.1.1-rc.2 || ^0.1.2-rc.1",
|
|
63
|
+
"@deepseek-ai/dsh-client-ui-theme": "^0.1.1-rc.2 || ^0.1.2-rc.1"
|
|
64
64
|
},
|
|
65
65
|
"license": "MIT",
|
|
66
66
|
"devDependencies": {
|
|
@@ -74,6 +74,7 @@
|
|
|
74
74
|
"test": "pnpm run build && node smoke-test.cjs && node --test tests/*.test.mjs",
|
|
75
75
|
"verify:readme": "node scripts/verify-readme-pairing.mjs",
|
|
76
76
|
"verify:bundle": "node scripts/verify-bundle-guard.mjs",
|
|
77
|
-
"
|
|
77
|
+
"verify:hooks": "node scripts/verify-upstream-hooks.mjs",
|
|
78
|
+
"check": "pnpm run build && node --check lib/client.js && node --check lib/index.js && pnpm run test && pnpm run verify:readme && pnpm run verify:bundle && pnpm run verify:hooks"
|
|
78
79
|
}
|
|
79
80
|
}
|