@deepseek-ai/dsh-client-ui-theme 0.0.1-rc.3 → 0.1.0-rc.2
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/LICENSE +17 -24
- package/README.i18n.yaml +2 -2
- package/README.md +1 -1
- package/README.zh.md +1 -1
- package/lib/client.js +2 -2
- package/lib/styles/scrollbar.css +5 -0
- package/package.json +24 -24
package/LICENSE
CHANGED
|
@@ -1,28 +1,21 @@
|
|
|
1
|
-
|
|
1
|
+
MIT License
|
|
2
2
|
|
|
3
|
-
Copyright (c) 2026
|
|
3
|
+
Copyright (c) 2026 DeepSeek
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
7
11
|
|
|
8
|
-
|
|
9
|
-
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
10
14
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
20
|
-
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
21
|
-
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
22
|
-
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
|
23
|
-
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
24
|
-
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
|
25
|
-
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
|
26
|
-
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
|
27
|
-
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
28
|
-
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.i18n.yaml
CHANGED
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
# side as of the 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
|
# pnpm run verify-translation-pairing --write packages/client/ui-theme/README.md
|
|
5
|
-
README.md:
|
|
6
|
-
README.zh.md:
|
|
5
|
+
README.md: e84a21f085eaef7546321edc90847a9a3f9bb2b8
|
|
6
|
+
README.zh.md: 758b6f52d330f4518a2df5267117b61446102ea7
|
package/README.md
CHANGED
|
@@ -8,7 +8,7 @@ When the host composition includes an HTTP server, the host half injects a synch
|
|
|
8
8
|
|
|
9
9
|
`src/styles/` holds five sheets, all imported by the web shell's `base.css`: `base.css`, `design-platform.css`, `scrollbar.css`, `gradient-shadow-text.css`, and `shiki.css`. `scrollbar.css` is the sole consumer of the `--dsw-alias-scrollbar-*` tokens and must follow `design-platform.css`, which declares them.
|
|
10
10
|
|
|
11
|
-
Scrollbar rebinding contract: `scrollbar.css` binds `--dsh-scrollbar-thumb` and `--dsh-scrollbar-thumb-hover` on `body` to the l1 (base-surface) tokens, and both rendering paths read that pair. An elevated surface (menu, popover, dialog) sets `--dsh-scrollbar-thumb: var(--dsw-alias-scrollbar-bg-l2)` and `--dsh-scrollbar-thumb-hover: var(--dsw-alias-scrollbar-hover-l2)` on its own container; one rebind retints whichever path the engine took. The pair's other legal target is `transparent`, which draws no thumb at all — [ui-sidebar](../ui-sidebar/README.md) rebinds its column that way while the pointer is elsewhere. A rebind to the l1 pair is not a rebind; it restates the base-surface default.
|
|
11
|
+
Scrollbar rebinding contract: `scrollbar.css` binds `--dsh-scrollbar-thumb` and `--dsh-scrollbar-thumb-hover` on `body` to the l1 (base-surface) tokens, and both rendering paths read that pair. An elevated surface (menu, popover, dialog) sets `--dsh-scrollbar-thumb: var(--dsw-alias-scrollbar-bg-l2)` and `--dsh-scrollbar-thumb-hover: var(--dsw-alias-scrollbar-hover-l2)` on its own container; one rebind retints whichever path the engine took. The pair's other legal target is `transparent`, which draws no thumb at all — [ui-sidebar](../ui-sidebar/README.md) rebinds its column that way while the pointer is elsewhere. A rebind to the l1 pair is not a rebind; it restates the base-surface default. `--dsh-scrollbar-width` mirrors the WebKit bar's layout width for surfaces that align themselves beside a space-consuming bar — [ui-conversation](../ui-conversation/README.md) reads it for the overlay composer seat's `right` offset — and the scrollbar-styles spec pairs it with the mirrored rule and the consumer.
|
|
12
12
|
|
|
13
13
|
The two paths are mutually exclusive by construction. `scrollbar-width`/`scrollbar-color` sit inside `@supports not selector(::-webkit-scrollbar)` because a non-`auto` value of either makes Chromium and Safari discard every `::-webkit-scrollbar*` rule for that element, `::-webkit-scrollbar-thumb:hover` included — declaring both unconditionally leaves `--dsh-scrollbar-thumb-hover` with no rendering anywhere. Firefox therefore takes the standard properties and WebKit-based engines take the pseudo-elements, so the hover token only ever renders through the pseudo-element path. Reasoning and the measured computed values: [the scrollbar Agent Note](../../../.agents/notes/implemented/bug-fix/2026-07-28-themed-scrollbars-and-reserved-gutter.md).
|
|
14
14
|
|
package/README.zh.md
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
|
|
9
9
|
`src/styles/` 下有五张样式表,全部由 web 壳的 `base.css` 导入:`base.css`、`design-platform.css`、`scrollbar.css`、`gradient-shadow-text.css` 与 `shiki.css`。`scrollbar.css` 是 `--dsw-alias-scrollbar-*` token 的唯一消费方,必须排在声明这些 token 的 `design-platform.css` 之后。
|
|
10
10
|
|
|
11
|
-
滚动条重新绑定约定:`scrollbar.css` 在 `body` 上把 `--dsh-scrollbar-thumb` 与 `--dsh-scrollbar-thumb-hover` 绑定到 l1(基础表面)token,两条渲染路径都读取这一组变量。高层级表面(菜单、浮层、对话框)在自己的容器上设置 `--dsh-scrollbar-thumb: var(--dsw-alias-scrollbar-bg-l2)` 与 `--dsh-scrollbar-thumb-hover: var(--dsw-alias-scrollbar-hover-l2)`;一次重新绑定即可为引擎实际走的那条路径换色。这组变量的另一个合法目标是 `transparent`,即完全不绘制滑块——[ui-sidebar](../ui-sidebar/README.md) 在指针不在栏内时就这样重新绑定自己的列。绑回 l1
|
|
11
|
+
滚动条重新绑定约定:`scrollbar.css` 在 `body` 上把 `--dsh-scrollbar-thumb` 与 `--dsh-scrollbar-thumb-hover` 绑定到 l1(基础表面)token,两条渲染路径都读取这一组变量。高层级表面(菜单、浮层、对话框)在自己的容器上设置 `--dsh-scrollbar-thumb: var(--dsw-alias-scrollbar-bg-l2)` 与 `--dsh-scrollbar-thumb-hover: var(--dsw-alias-scrollbar-hover-l2)`;一次重新绑定即可为引擎实际走的那条路径换色。这组变量的另一个合法目标是 `transparent`,即完全不绘制滑块——[ui-sidebar](../ui-sidebar/README.md) 在指针不在栏内时就这样重新绑定自己的列。绑回 l1 那组不算重新绑定,它只是重述基础表面的默认值。`--dsh-scrollbar-width` 镜像 WebKit 滚动条的布局宽度,供需要与占布局宽度的滚动条对齐的表面使用——[ui-conversation](../ui-conversation/README.md) 用它作为覆盖 composer 座位 `right` 偏移——scrollbar-styles 规格把它与镜像规则及消费者配对检查。
|
|
12
12
|
|
|
13
13
|
两条路径在构造上互斥。`scrollbar-width`/`scrollbar-color` 写在 `@supports not selector(::-webkit-scrollbar)` 之内,因为这两个属性中的任一个只要取非 `auto` 值,Chromium 与 Safari 就会丢弃该元素上的全部 `::-webkit-scrollbar*` 规则,`::-webkit-scrollbar-thumb:hover` 也在其中——若无条件地同时声明,`--dsh-scrollbar-thumb-hover` 在任何引擎上都不会被渲染。因此 Firefox 走标准属性,WebKit 系引擎走伪元素,hover token 只经由伪元素这条路径渲染。相关原理与实测计算值见[滚动条 Agent Note](../../../.agents/notes/implemented/bug-fix/2026-07-28-themed-scrollbars-and-reserved-gutter.md)。
|
|
14
14
|
|
package/lib/client.js
CHANGED
|
@@ -34,10 +34,10 @@ window.__ModuleLoader__.load({
|
|
|
34
34
|
}
|
|
35
35
|
var AppearanceRow_module_css_default = {
|
|
36
36
|
"cubeRow": "_8HJdBW_cubeRow",
|
|
37
|
-
"title": "_8HJdBW_title",
|
|
38
37
|
"themeCube": "_8HJdBW_themeCube",
|
|
39
38
|
"selected": "_8HJdBW_selected",
|
|
40
|
-
"group": "_8HJdBW_group"
|
|
39
|
+
"group": "_8HJdBW_group",
|
|
40
|
+
"title": "_8HJdBW_title"
|
|
41
41
|
};
|
|
42
42
|
//#endregion
|
|
43
43
|
//#region lib/types/client/AppearanceRow.js
|
package/lib/styles/scrollbar.css
CHANGED
|
@@ -17,6 +17,11 @@
|
|
|
17
17
|
body {
|
|
18
18
|
--dsh-scrollbar-thumb: var(--dsw-alias-scrollbar-bg-l1);
|
|
19
19
|
--dsh-scrollbar-thumb-hover: var(--dsw-alias-scrollbar-hover-l1);
|
|
20
|
+
/* The WebKit bar's layout width, mirrored by the ::-webkit-scrollbar rule
|
|
21
|
+
below. A surface that must align itself beside a space-consuming bar
|
|
22
|
+
(ConversationRoot's overlay composer seat) reads this instead of
|
|
23
|
+
hardcoding the number. */
|
|
24
|
+
--dsh-scrollbar-width: 8px;
|
|
20
25
|
}
|
|
21
26
|
|
|
22
27
|
/* The two paths are mutually exclusive, and the gate is load-bearing rather
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@deepseek-ai/dsh-client-ui-theme",
|
|
3
3
|
"description": "Theme plugin: Host bootstrap for the pre-plugin palette; DOM-free ThemeRuntime for light/dark/system state; --dsw-* token styles and Appearance settings row",
|
|
4
|
-
"version": "0.0
|
|
4
|
+
"version": "0.1.0-rc.2",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "restricted"
|
|
7
7
|
},
|
|
@@ -43,33 +43,33 @@
|
|
|
43
43
|
"immediately": true
|
|
44
44
|
}
|
|
45
45
|
},
|
|
46
|
-
"license": "
|
|
46
|
+
"license": "MIT",
|
|
47
47
|
"peerDependencies": {
|
|
48
48
|
"react": "^18.2.0",
|
|
49
|
-
"@deepseek-ai/cordis": "^4.0.1
|
|
50
|
-
"@deepseek-ai/dsh-
|
|
51
|
-
"@deepseek-ai/dsh-
|
|
52
|
-
"@deepseek-ai/dsh-client-runtime": "^0.0
|
|
53
|
-
"@deepseek-ai/dsh-client-ui-primitives": "^0.0
|
|
54
|
-
"@deepseek-ai/dsh-client-
|
|
55
|
-
"@deepseek-ai/dsh-client-
|
|
56
|
-
"@deepseek-ai/dsh-
|
|
57
|
-
"@deepseek-ai/dsh-
|
|
58
|
-
"@deepseek-ai/dsh-
|
|
49
|
+
"@deepseek-ai/cordis": "^4.0.1",
|
|
50
|
+
"@deepseek-ai/dsh-client-connection": "^0.1.0-rc.2",
|
|
51
|
+
"@deepseek-ai/dsh-api-remotes": "^0.1.0-rc.2",
|
|
52
|
+
"@deepseek-ai/dsh-client-runtime": "^0.1.0-rc.2",
|
|
53
|
+
"@deepseek-ai/dsh-client-ui-primitives": "^0.1.0-rc.2",
|
|
54
|
+
"@deepseek-ai/dsh-client-ui-settings": "^0.1.0-rc.2",
|
|
55
|
+
"@deepseek-ai/dsh-client-locale": "^0.1.0-rc.2",
|
|
56
|
+
"@deepseek-ai/dsh-client-ui-slots": "^0.1.0-rc.2",
|
|
57
|
+
"@deepseek-ai/dsh-host-webserver": "^0.1.0-rc.2",
|
|
58
|
+
"@deepseek-ai/dsh-invariants": "^0.1.0-rc.2"
|
|
59
59
|
},
|
|
60
60
|
"devDependencies": {
|
|
61
61
|
"@types/react": "~18.3.1",
|
|
62
62
|
"react": "^18.2.0",
|
|
63
|
-
"@deepseek-ai/cordis": "^4.0.1
|
|
64
|
-
"@deepseek-ai/dsh-api-remotes": "^0.0
|
|
65
|
-
"@deepseek-ai/dsh-client-locale": "^0.0
|
|
66
|
-
"@deepseek-ai/dsh-client-runtime": "^0.0
|
|
67
|
-
"@deepseek-ai/dsh-client-test-runtime": "^0.0
|
|
68
|
-
"@deepseek-ai/dsh-client-ui-
|
|
69
|
-
"@deepseek-ai/dsh-client-ui-
|
|
70
|
-
"@deepseek-ai/dsh-client-ui-slots": "^0.0
|
|
71
|
-
"@deepseek-ai/dsh-host-webserver": "^0.0
|
|
72
|
-
"@deepseek-ai/dsh-invariants": "^0.0
|
|
63
|
+
"@deepseek-ai/cordis": "^4.0.1",
|
|
64
|
+
"@deepseek-ai/dsh-api-remotes": "^0.1.0-rc.2",
|
|
65
|
+
"@deepseek-ai/dsh-client-locale": "^0.1.0-rc.2",
|
|
66
|
+
"@deepseek-ai/dsh-client-runtime": "^0.1.0-rc.2",
|
|
67
|
+
"@deepseek-ai/dsh-client-test-runtime": "^0.1.0-rc.2",
|
|
68
|
+
"@deepseek-ai/dsh-client-ui-settings": "^0.1.0-rc.2",
|
|
69
|
+
"@deepseek-ai/dsh-client-ui-primitives": "^0.1.0-rc.2",
|
|
70
|
+
"@deepseek-ai/dsh-client-ui-slots": "^0.1.0-rc.2",
|
|
71
|
+
"@deepseek-ai/dsh-host-webserver": "^0.1.0-rc.2",
|
|
72
|
+
"@deepseek-ai/dsh-invariants": "^0.1.0-rc.2"
|
|
73
73
|
},
|
|
74
74
|
"files": [
|
|
75
75
|
"lib/index.js",
|
|
@@ -80,8 +80,8 @@
|
|
|
80
80
|
],
|
|
81
81
|
"dependencies": {
|
|
82
82
|
"clsx": "^2.0.0",
|
|
83
|
-
"@deepseek-ai/dsh-settings": "^0.0
|
|
84
|
-
"@deepseek-ai/schemastery": "^3.18.1
|
|
83
|
+
"@deepseek-ai/dsh-settings": "^0.1.0-rc.2",
|
|
84
|
+
"@deepseek-ai/schemastery": "^3.18.1"
|
|
85
85
|
},
|
|
86
86
|
"scripts": {
|
|
87
87
|
"bundle": "tsdown",
|