dsh-ui-tweaks 0.16.1 → 0.16.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 +21 -21
- package/README.en.md +7 -9
- package/README.md +8 -10
- package/assets/archive.png +0 -0
- package/assets/git.png +0 -0
- package/assets/gitdiff.png +0 -0
- package/assets/mcp.png +0 -0
- package/assets/settings.png +0 -0
- package/assets/terminal.png +0 -0
- package/cordis.patch.yml +12 -12
- package/lib/client.js +107 -111
- package/lib/client.js.map +1 -1
- package/lib/types/client/index.d.ts +0 -2
- package/lib/types/client/index.d.ts.map +1 -1
- package/package.json +41 -41
- package/vendor/addon-fit.js +1 -1
- package/vendor/xterm.css +218 -218
- package/vendor/xterm.js +1 -1
- package/assets/branch.png +0 -0
package/LICENSE
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
MIT License
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2026 dsh-ui-tweaks contributors
|
|
4
|
-
|
|
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:
|
|
11
|
-
|
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
|
13
|
-
copies or substantial portions of the Software.
|
|
14
|
-
|
|
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.
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 dsh-ui-tweaks contributors
|
|
4
|
+
|
|
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:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
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.en.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# dsh-ui-tweaks
|
|
2
2
|
|
|
3
|
-
> **Dependency**: currently targets **DSH v0.1.5-alpha.
|
|
3
|
+
> **Dependency**: currently targets **DSH v0.1.5-alpha.2**.
|
|
4
4
|
|
|
5
5
|
A [DeepSeek Harness](https://deepseek-harness.github.io/deepseek-harness/) (DSH) web plugin that live-tunes the conversation UI from the Settings panel.
|
|
6
6
|
|
|
@@ -8,14 +8,12 @@ A [DeepSeek Harness](https://deepseek-harness.github.io/deepseek-harness/) (DSH)
|
|
|
8
8
|
|
|
9
9
|
| | |
|
|
10
10
|
|---|---|
|
|
11
|
-
|  |  | |
|
|
18
|
-
| **MCP manager**: an MCP page in the Settings dialog listing configured MCP servers with live status and full management (Add / Edit / Enable / Disable / Delete / Restart) | |
|
|
11
|
+
|  |  |
|
|
12
|
+
| **Settings panel**: code font size / neon-poster theme / two-decimal cache hit / web search / timeline / GitBar toggles, with dedicated **Archive**, **MCP** and **Search** pages in the left nav | **Branch panel**: pops down from the branch chip in the session header — local / remote branch lists, click to switch; pull button (fast-forward only) in the header, new-branch field at the bottom, plus a **commit graph** dialog (colored SVG fork/merge lanes) and **Tag** management |
|
|
13
|
+
|  |  |
|
|
14
|
+
| **Code diff**: the code-diff tab in the right sidebar — file list (per-file checkboxes for partial commits) + per-file diff (changed hunks only by default, "Full file" toggle at the top right), with a commit area at the bottom for the message, an optional Tag, and Commit / Commit & push | **Terminal**: a real PTY terminal in the sidebar (xterm.js over WebSocket) — full interactivity |
|
|
15
|
+
|  |  |
|
|
16
|
+
| **Archive manager**: an Archive page in the Settings dialog listing archived sessions (title / workspace / relative time) with per-row Restore / Delete and batch Restore all / Delete all | **MCP manager**: an MCP page in the Settings dialog listing configured MCP servers with live status and tool counts, plus full management (Add / Edit / Enable / Disable / Delete / Restart) |
|
|
19
17
|
|
|
20
18
|
## Features
|
|
21
19
|
|
package/README.md
CHANGED
|
@@ -1,21 +1,19 @@
|
|
|
1
1
|
# dsh-ui-tweaks
|
|
2
2
|
|
|
3
|
-
> **依赖版本**:当前依赖 **DSH v0.1.5-alpha.
|
|
3
|
+
> **依赖版本**:当前依赖 **DSH v0.1.5-alpha.2**。
|
|
4
4
|
|
|
5
|
-
[DeepSeek Harness](https://deepseek-harness.github.io/deepseek-harness/)(DSH)Web UI 插件:在设置面板中实时调整对话界面——代码字号、**主题皮肤**(荧光海报风)、**时间线切换**(原生回合导航轨 / 经典网页时间线)、**GitBar
|
|
5
|
+
[DeepSeek Harness](https://deepseek-harness.github.io/deepseek-harness/)(DSH)Web UI 插件:在设置面板中实时调整对话界面——代码字号、**主题皮肤**(荧光海报风)、**时间线切换**(原生回合导航轨 / 经典网页时间线)、**GitBar**(会话头部的分支胶囊 + 右侧边栏里的终端 / 代码差异标签页),可开关的**归档管理**(设置中的「归档」页面:查看、恢复或彻底删除已归档会话),可开关的**任务提醒**(会话完成或需要交互时,通过标签页标题闪烁 / 系统通知 / 提示音把你唤回来),以及**缓存命中率两位小数**(把输入框下方统计条的缓存命中百分比改写为精确值)。
|
|
6
6
|
|
|
7
7
|
## 预览
|
|
8
8
|
|
|
9
9
|
| | |
|
|
10
10
|
|---|---|
|
|
11
|
-
|  |  | |
|
|
18
|
-
| **MCP 管理**:设置中的「MCP 管理」页面,列出所有配置的 MCP 服务器及其运行状态,支持添加 / 编辑 / 启用停用 / 删除 / 重启 | |
|
|
11
|
+
|  |  |
|
|
12
|
+
| **设置面板**:代码字号 / 荧光海报主题 / 缓存两位小数 / 网络搜索 / 时间线 / Git 状态栏等功能开关,左侧另有「归档」「MCP 管理」「搜索」页面 | **分支面板**:点击会话头部的分支胶囊向下弹出——本地 / 远程分支列表,点击即切换;头部右侧是拉取按钮(只快进),底部可新建分支,菜单里可打开**提交图谱**(彩色 SVG 分叉图)与 **Tag** 管理 |
|
|
13
|
+
|  |  |
|
|
14
|
+
| **代码差异**:右侧边栏里的代码差异标签页——文件列表(逐文件勾选,可部分提交)+ 逐文件 diff(默认只显示有差异的 hunk,右上可切“完整文件”),底部提交区可写提交说明、打 Tag,提交 / 提交并推送 | **终端**:边栏里的真 PTY 终端(xterm.js + WebSocket),完整终端交互 |
|
|
15
|
+
|  |  |
|
|
16
|
+
| **归档管理**:设置中的「归档」页面,列出所有已归档会话(标题 / 工作区 / 相对时间),支持恢复与彻底删除,顶部可全部恢复 / 全部删除 | **MCP 管理**:设置中的「MCP 管理」页面,列出所有配置的 MCP 服务器及其运行状态与工具数,支持添加 / 编辑 / 启用停用 / 删除 / 重启 |
|
|
19
17
|
|
|
20
18
|
## 功能
|
|
21
19
|
|
package/assets/archive.png
CHANGED
|
Binary file
|
package/assets/git.png
CHANGED
|
Binary file
|
package/assets/gitdiff.png
CHANGED
|
Binary file
|
package/assets/mcp.png
CHANGED
|
Binary file
|
package/assets/settings.png
CHANGED
|
Binary file
|
package/assets/terminal.png
CHANGED
|
Binary file
|
package/cordis.patch.yml
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
# dsh-ui-tweaks bundle patch
|
|
2
|
-
#
|
|
3
|
-
# Declared by `dsh.bundle.patch` in package.json: when the plugin is installed
|
|
4
|
-
# through the official CLI —
|
|
5
|
-
#
|
|
6
|
-
# dsh plugin --profile <name> add dsh-ui-tweaks
|
|
7
|
-
#
|
|
8
|
-
# — the command appends `dsh-ui-tweaks` to the profile's bundle stack and this
|
|
9
|
-
# patch mounts the server-side plugin row.
|
|
10
|
-
- insert:
|
|
11
|
-
- id: ui-tweaks
|
|
12
|
-
name: 'dsh-ui-tweaks'
|
|
1
|
+
# dsh-ui-tweaks bundle patch
|
|
2
|
+
#
|
|
3
|
+
# Declared by `dsh.bundle.patch` in package.json: when the plugin is installed
|
|
4
|
+
# through the official CLI —
|
|
5
|
+
#
|
|
6
|
+
# dsh plugin --profile <name> add dsh-ui-tweaks
|
|
7
|
+
#
|
|
8
|
+
# — the command appends `dsh-ui-tweaks` to the profile's bundle stack and this
|
|
9
|
+
# patch mounts the server-side plugin row.
|
|
10
|
+
- insert:
|
|
11
|
+
- id: ui-tweaks
|
|
12
|
+
name: 'dsh-ui-tweaks'
|
package/lib/client.js
CHANGED
|
@@ -86,27 +86,27 @@ function relativeTime(ms, now, formatter) {
|
|
|
86
86
|
return formatter.format(Math.round(diffSeconds / 86400), 'day');
|
|
87
87
|
return formatter.format(Math.round(diffSeconds / 604800), 'week');
|
|
88
88
|
}
|
|
89
|
-
exports.ARCHIVE_CSS = `
|
|
90
|
-
.dut-arc{display:grid;gap:12px;max-width:680px;padding:6px 2px 36px}
|
|
91
|
-
.dut-arc-head{display:flex;align-items:center;gap:10px;padding:14px 16px 0}
|
|
92
|
-
.dut-arc-head h2{margin:0;font-size:15px;font-weight:600;letter-spacing:-.01em;color:var(--dsw-alias-label-primary)}
|
|
93
|
-
.dut-arc-count{font-size:11.5px;color:var(--dsw-alias-label-secondary);padding:2px 8px;border-radius:999px;background:var(--dsw-alias-bg-layer-1);border:1px solid var(--dsw-alias-border-l1)}
|
|
94
|
-
.dut-arc-spacer{flex:1}
|
|
95
|
-
.dut-arc-btn{display:inline-flex;align-items:center;height:28px;padding:0 12px;border-radius:999px;border:1px solid var(--dsw-alias-border-l1);background:transparent;color:var(--dsw-alias-label-secondary);font:inherit;font-size:12px;cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease}
|
|
96
|
-
.dut-arc-btn:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}
|
|
97
|
-
.dut-arc-btn:disabled{opacity:.5;cursor:default}
|
|
98
|
-
.dut-arc-btn.dut-arc-del:hover{border-color:color-mix(in srgb,var(--dsw-alias-state-error-primary) 55%,transparent);color:var(--dsw-alias-state-error-primary);background:color-mix(in srgb,var(--dsw-alias-state-error-primary) 10%,transparent)}
|
|
99
|
-
.dut-arc-btn.dut-arc-confirm{border-color:color-mix(in srgb,var(--dsw-alias-state-error-primary) 55%,transparent);color:var(--dsw-alias-state-error-primary);font-weight:600}
|
|
100
|
-
.dut-arc-body{display:grid;gap:2px;margin-top:4px}
|
|
101
|
-
.dut-arc-row{display:flex;align-items:center;gap:8px;padding:10px 16px;border-radius:12px}
|
|
102
|
-
.dut-arc-row:hover{background:var(--dsw-alias-interactive-bg-hover)}
|
|
103
|
-
.dut-arc-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;text-align:left;background:transparent;border:none;padding:0;cursor:default;color:var(--dsw-alias-label-primary);font:inherit}
|
|
104
|
-
.dut-arc-title{font-size:13.5px;font-weight:600;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}
|
|
105
|
-
.dut-arc-sub{font-size:11.5px;color:var(--dsw-alias-label-secondary);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}
|
|
106
|
-
.dut-arc-empty{padding:32px 16px;text-align:center;font-size:12.5px;color:var(--dsw-alias-label-secondary)}
|
|
107
|
-
.dut-arc-alert{margin:8px 16px 0;padding:8px 12px;border-radius:10px;font-size:12px;line-height:1.5;background:color-mix(in srgb,var(--dsw-alias-state-error-primary) 10%,transparent);color:var(--dsw-alias-state-error-primary)}
|
|
108
|
-
.dut-arc-off{padding:20px 16px;display:grid;gap:12px}
|
|
109
|
-
.dut-arc-off p{margin:0;font-size:12.5px;line-height:1.6;color:var(--dsw-alias-label-secondary)}
|
|
89
|
+
exports.ARCHIVE_CSS = `
|
|
90
|
+
.dut-arc{display:grid;gap:12px;max-width:680px;padding:6px 2px 36px}
|
|
91
|
+
.dut-arc-head{display:flex;align-items:center;gap:10px;padding:14px 16px 0}
|
|
92
|
+
.dut-arc-head h2{margin:0;font-size:15px;font-weight:600;letter-spacing:-.01em;color:var(--dsw-alias-label-primary)}
|
|
93
|
+
.dut-arc-count{font-size:11.5px;color:var(--dsw-alias-label-secondary);padding:2px 8px;border-radius:999px;background:var(--dsw-alias-bg-layer-1);border:1px solid var(--dsw-alias-border-l1)}
|
|
94
|
+
.dut-arc-spacer{flex:1}
|
|
95
|
+
.dut-arc-btn{display:inline-flex;align-items:center;height:28px;padding:0 12px;border-radius:999px;border:1px solid var(--dsw-alias-border-l1);background:transparent;color:var(--dsw-alias-label-secondary);font:inherit;font-size:12px;cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease}
|
|
96
|
+
.dut-arc-btn:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}
|
|
97
|
+
.dut-arc-btn:disabled{opacity:.5;cursor:default}
|
|
98
|
+
.dut-arc-btn.dut-arc-del:hover{border-color:color-mix(in srgb,var(--dsw-alias-state-error-primary) 55%,transparent);color:var(--dsw-alias-state-error-primary);background:color-mix(in srgb,var(--dsw-alias-state-error-primary) 10%,transparent)}
|
|
99
|
+
.dut-arc-btn.dut-arc-confirm{border-color:color-mix(in srgb,var(--dsw-alias-state-error-primary) 55%,transparent);color:var(--dsw-alias-state-error-primary);font-weight:600}
|
|
100
|
+
.dut-arc-body{display:grid;gap:2px;margin-top:4px}
|
|
101
|
+
.dut-arc-row{display:flex;align-items:center;gap:8px;padding:10px 16px;border-radius:12px}
|
|
102
|
+
.dut-arc-row:hover{background:var(--dsw-alias-interactive-bg-hover)}
|
|
103
|
+
.dut-arc-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;text-align:left;background:transparent;border:none;padding:0;cursor:default;color:var(--dsw-alias-label-primary);font:inherit}
|
|
104
|
+
.dut-arc-title{font-size:13.5px;font-weight:600;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}
|
|
105
|
+
.dut-arc-sub{font-size:11.5px;color:var(--dsw-alias-label-secondary);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}
|
|
106
|
+
.dut-arc-empty{padding:32px 16px;text-align:center;font-size:12.5px;color:var(--dsw-alias-label-secondary)}
|
|
107
|
+
.dut-arc-alert{margin:8px 16px 0;padding:8px 12px;border-radius:10px;font-size:12px;line-height:1.5;background:color-mix(in srgb,var(--dsw-alias-state-error-primary) 10%,transparent);color:var(--dsw-alias-state-error-primary)}
|
|
108
|
+
.dut-arc-off{padding:20px 16px;display:grid;gap:12px}
|
|
109
|
+
.dut-arc-off p{margin:0;font-size:12.5px;line-height:1.6;color:var(--dsw-alias-label-secondary)}
|
|
110
110
|
`;
|
|
111
111
|
/** Install the Archive stylesheet once (idempotent); returns the disposer. */
|
|
112
112
|
function installArchiveStyles() {
|
|
@@ -2649,8 +2649,6 @@ const en = {
|
|
|
2649
2649
|
includeFile: 'Include in commit',
|
|
2650
2650
|
excludeFile: 'Exclude from commit',
|
|
2651
2651
|
terminal: 'Terminal',
|
|
2652
|
-
terminalGuide: 'A persistent shell in the session working directory.',
|
|
2653
|
-
diffGuide: 'Review working-tree changes and commit.',
|
|
2654
2652
|
notRepo: 'Not a git repository.',
|
|
2655
2653
|
termConnecting: 'connecting…',
|
|
2656
2654
|
termExited: 'shell exited',
|
|
@@ -2885,8 +2883,6 @@ const zh = {
|
|
|
2885
2883
|
includeFile: '提交包含此文件',
|
|
2886
2884
|
excludeFile: '提交排除此文件',
|
|
2887
2885
|
terminal: '终端',
|
|
2888
|
-
terminalGuide: '在会话工作目录中打开常驻 shell。',
|
|
2889
|
-
diffGuide: '查看工作区改动并提交。',
|
|
2890
2886
|
notRepo: '当前目录不是 git 仓库。',
|
|
2891
2887
|
termConnecting: '连接中…',
|
|
2892
2888
|
termExited: 'shell 已退出',
|
|
@@ -3736,7 +3732,7 @@ function apply(ctx) {
|
|
|
3736
3732
|
// picking one opens the tab in the sidebar), registered only while the
|
|
3737
3733
|
// gitBarEnabled toggle in the UI Tweaks section is on. Each tab is a page
|
|
3738
3734
|
// type (no address patterns): stage one registers the type with its guide
|
|
3739
|
-
//
|
|
3735
|
+
// capsule, stage two the body under the type's id. The terminal reattaches to
|
|
3740
3736
|
// its persistent host shell on every visit, and the diff tab keeps its
|
|
3741
3737
|
// commit band. The tab registry is resolved lazily: hosts predating the
|
|
3742
3738
|
// right sidebar simply skip these tabs while everything else keeps working.
|
|
@@ -3758,7 +3754,7 @@ function apply(ctx) {
|
|
|
3758
3754
|
id: 'dsh-ui-tweaks/terminal',
|
|
3759
3755
|
kind: 'ui-tweaks-terminal',
|
|
3760
3756
|
title: () => t('terminal'),
|
|
3761
|
-
guide: [{ order: 20, title: () => t('terminal'),
|
|
3757
|
+
guide: [{ order: 20, title: () => t('terminal'), icon: icons_tsx_1.TerminalIcon }],
|
|
3762
3758
|
}));
|
|
3763
3759
|
disposers.push(ctx.slots.inject('sidebar.right.pane.tab', () => ctx.slots.register({
|
|
3764
3760
|
name: 'sidebar.right.pane.tab',
|
|
@@ -3770,7 +3766,7 @@ function apply(ctx) {
|
|
|
3770
3766
|
id: 'dsh-ui-tweaks/diff',
|
|
3771
3767
|
kind: 'ui-tweaks-diff',
|
|
3772
3768
|
title: () => t('diffView'),
|
|
3773
|
-
guide: [{ order: 30, title: () => t('diffView'),
|
|
3769
|
+
guide: [{ order: 30, title: () => t('diffView'), icon: icons_tsx_1.DiffIcon }],
|
|
3774
3770
|
}));
|
|
3775
3771
|
disposers.push(ctx.slots.inject('sidebar.right.pane.tab', () => ctx.slots.register({
|
|
3776
3772
|
name: 'sidebar.right.pane.tab',
|
|
@@ -4059,63 +4055,63 @@ function linesToRecord(text, separator) {
|
|
|
4059
4055
|
function recordToLines(record, separator) {
|
|
4060
4056
|
return Object.entries(record).map(([key, value]) => `${key}${separator}${value}`).join('\n');
|
|
4061
4057
|
}
|
|
4062
|
-
exports.MCP_CSS = `
|
|
4063
|
-
.dut-mcp{display:grid;gap:12px;max-width:680px;padding:6px 2px 36px}
|
|
4064
|
-
.dut-mcp-head{display:flex;align-items:center;gap:10px;padding:14px 16px 0}
|
|
4065
|
-
.dut-mcp-head h2{margin:0;font-size:15px;font-weight:600;letter-spacing:-.01em;color:var(--dsw-alias-label-primary)}
|
|
4066
|
-
.dut-mcp-count{font-size:11.5px;color:var(--dsw-alias-label-secondary);padding:2px 8px;border-radius:999px;background:var(--dsw-alias-bg-layer-1);border:1px solid var(--dsw-alias-border-l1)}
|
|
4067
|
-
.dut-mcp-spacer{flex:1}
|
|
4068
|
-
.dut-mcp-btn{display:inline-flex;align-items:center;height:28px;padding:0 12px;border-radius:999px;border:1px solid var(--dsw-alias-border-l1);background:transparent;color:var(--dsw-alias-label-secondary);font:inherit;font-size:12px;cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease}
|
|
4069
|
-
.dut-mcp-btn:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}
|
|
4070
|
-
.dut-mcp-btn:disabled{opacity:.5;cursor:default}
|
|
4071
|
-
.dut-mcp-btn.dut-mcp-del:hover{border-color:color-mix(in srgb,var(--dsw-alias-state-error-primary) 55%,transparent);color:var(--dsw-alias-state-error-primary);background:color-mix(in srgb,var(--dsw-alias-state-error-primary) 10%,transparent)}
|
|
4072
|
-
.dut-mcp-btn.dut-mcp-confirm{border-color:color-mix(in srgb,var(--dsw-alias-state-error-primary) 55%,transparent);color:var(--dsw-alias-state-error-primary);font-weight:600}
|
|
4073
|
-
.dut-mcp-body{display:grid;gap:2px;margin-top:4px}
|
|
4074
|
-
.dut-mcp-row{display:grid;gap:6px;padding:10px 16px;border-radius:12px}
|
|
4075
|
-
.dut-mcp-row:hover{background:var(--dsw-alias-interactive-bg-hover)}
|
|
4076
|
-
.dut-mcp-row-main{display:flex;align-items:center;gap:8px;min-width:0}
|
|
4077
|
-
.dut-mcp-name{font-size:13.5px;font-weight:600;color:var(--dsw-alias-label-primary);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}
|
|
4078
|
-
.dut-mcp-badge{flex:none;font-size:11px;line-height:1;padding:4px 9px;border-radius:999px;background:var(--dsw-alias-bg-layer-1);border:1px solid var(--dsw-alias-border-l1);color:var(--dsw-alias-label-secondary)}
|
|
4079
|
-
.dut-mcp-badge.dut-mcp-ok{background:color-mix(in srgb,var(--dsw-alias-state-success-primary) 12%,transparent);border-color:transparent;color:var(--dsw-alias-state-success-primary)}
|
|
4080
|
-
.dut-mcp-badge.dut-mcp-err{background:color-mix(in srgb,var(--dsw-alias-state-error-primary) 12%,transparent);border-color:transparent;color:var(--dsw-alias-state-error-primary)}
|
|
4081
|
-
.dut-mcp-badge.dut-mcp-warn{background:color-mix(in srgb,var(--dsw-alias-state-warn-primary) 14%,transparent);border-color:transparent;color:var(--dsw-alias-state-warn-label)}
|
|
4082
|
-
.dut-mcp-sub{font-size:11.5px;color:var(--dsw-alias-label-secondary);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}
|
|
4083
|
-
.dut-mcp-toggle{flex:none;font-size:11.5px;color:var(--dsw-alias-label-tertiary);background:transparent;border:none;padding:0;cursor:pointer;text-align:left}
|
|
4084
|
-
.dut-mcp-toggle:hover{color:var(--dsw-alias-label-primary)}
|
|
4085
|
-
.dut-mcp-tools{margin-left:2px;display:flex;flex-wrap:wrap;gap:4px}
|
|
4086
|
-
.dut-mcp-tool{font-size:11px;line-height:1;padding:3px 8px;border-radius:999px;background:var(--dsw-alias-bg-layer-1);border:1px solid var(--dsw-alias-border-l1);color:var(--dsw-alias-label-secondary)}
|
|
4087
|
-
.dut-mcp-note{margin:2px 16px 0;padding:8px 12px;border-radius:10px;font-size:11.5px;line-height:1.55;color:var(--dsw-alias-label-secondary);background:var(--dsw-alias-bg-layer-1);border:1px solid var(--dsw-alias-border-l1)}
|
|
4088
|
-
.dut-mcp-empty{padding:32px 16px;text-align:center;font-size:12.5px;color:var(--dsw-alias-label-secondary)}
|
|
4089
|
-
.dut-mcp-alert{margin:8px 16px 0;padding:8px 12px;border-radius:10px;font-size:12px;line-height:1.5;background:color-mix(in srgb,var(--dsw-alias-state-error-primary) 10%,transparent);color:var(--dsw-alias-state-error-primary)}
|
|
4090
|
-
.dut-mcp-notice{margin:8px 16px 0;padding:8px 12px;border-radius:10px;font-size:12px;line-height:1.5;background:color-mix(in srgb,var(--dsw-alias-state-success-primary) 12%,transparent);color:var(--dsw-alias-state-success-primary)}
|
|
4091
|
-
.dut-mcp-off{padding:20px 16px;display:grid;gap:12px}
|
|
4092
|
-
.dut-mcp-off p{margin:0;font-size:12.5px;line-height:1.6;color:var(--dsw-alias-label-secondary)}
|
|
4093
|
-
.dut-mcp-overlay{z-index:1100;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}
|
|
4094
|
-
.dut-mcp-mask{background:var(--dsw-alias-bg-mask-1);backdrop-filter:var(--dsw-mask-blur);position:absolute;inset:0}
|
|
4095
|
-
.dut-mcp-panel{z-index:1;background:var(--dsw-alias-bg-layer-2);box-sizing:border-box;width:720px;max-width:calc(100vw - 48px);height:min(700px,100vh - 48px);box-shadow:var(--dsw-shadow-lv3);--dsh-scrollbar-thumb:var(--dsw-alias-scrollbar-bg-l2);--dsh-scrollbar-thumb-hover:var(--dsw-alias-scrollbar-hover-l2);border-radius:20px;display:flex;flex-direction:column;overflow:hidden}
|
|
4096
|
-
.dut-mcp-panel-head{box-sizing:border-box;flex:none;display:flex;align-items:center;gap:10px;height:52px;padding:0 12px 0 20px}
|
|
4097
|
-
.dut-mcp-panel-head h2{margin:0;font-size:16px;font-weight:600;letter-spacing:-.01em;color:var(--dsw-alias-label-primary)}
|
|
4098
|
-
.dut-mcp-panel-close{cursor:pointer;width:28px;height:28px;color:var(--dsw-alias-label-primary);background:transparent;border:none;border-radius:28px;display:inline-flex;justify-content:center;align-items:center;padding:0;font-size:13px}
|
|
4099
|
-
.dut-mcp-panel-close:hover{background:var(--dsw-alias-interactive-bg-hover)}
|
|
4100
|
-
.dut-mcp-tabs{flex:none;display:inline-flex;padding:3px;gap:3px;border:1px solid var(--dsw-alias-border-l1);border-radius:10px;background:var(--dsw-alias-bg-layer-2);margin:0 20px 10px;align-self:flex-start}
|
|
4101
|
-
.dut-mcp-tabs button{border:none;border-radius:7px;padding:5px 14px;background:transparent;color:var(--dsw-alias-label-secondary);font:inherit;font-size:12.5px;cursor:pointer}
|
|
4102
|
-
.dut-mcp-tabs button.dut-mcp-tab-on{background:color-mix(in srgb,var(--dsw-alias-state-business-primary) 12%,transparent);color:var(--dsw-alias-state-business-primary);font-weight:600}
|
|
4103
|
-
.dut-mcp-form{flex:1;min-height:0;overflow-y:auto;padding:0 20px 20px;display:grid;gap:12px;align-content:start}
|
|
4104
|
-
.dut-mcp-field{display:grid;gap:6px}
|
|
4105
|
-
.dut-mcp-field>span{font-size:12px;font-weight:600;color:var(--dsw-alias-label-primary)}
|
|
4106
|
-
.dut-mcp-field small{font-size:11px;line-height:1.5;color:var(--dsw-alias-label-tertiary)}
|
|
4107
|
-
.dut-mcp-input{box-sizing:border-box;width:100%;height:34px;padding:0 10px;border-radius:9px;border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-1);color:var(--dsw-alias-label-primary);font:inherit;font-size:13px}
|
|
4108
|
-
.dut-mcp-input:focus{outline:none;border-color:color-mix(in srgb,var(--dsw-alias-state-business-primary) 55%,transparent)}
|
|
4109
|
-
.dut-mcp-input:disabled{opacity:.55;cursor:not-allowed}
|
|
4110
|
-
textarea.dut-mcp-input{height:auto;min-height:72px;padding:8px 10px;line-height:1.5;resize:vertical;font-family:var(--dsw-font-markdown-code-block-font-family, Consolas, monospace);font-size:12px}
|
|
4111
|
-
textarea.dut-mcp-input-lg{min-height:120px}
|
|
4112
|
-
textarea.dut-mcp-yaml{min-height:320px}
|
|
4113
|
-
.dut-mcp-row2{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:start}
|
|
4114
|
-
.dut-mcp-field .dut-seg{width:fit-content}
|
|
4115
|
-
.dut-mcp-row2 .dut-seg{height:34px;box-sizing:border-box;align-items:center}
|
|
4116
|
-
.dut-mcp-row2 .dut-seg button{flex:none;white-space:nowrap;padding:0 16px;height:26px}
|
|
4117
|
-
.dut-mcp-foot{flex:none;display:flex;align-items:center;gap:8px;justify-content:flex-end;padding:12px 20px 16px;border-top:1px solid var(--dsw-alias-border-l1)}
|
|
4118
|
-
.dut-mcp-error{margin:0 20px 10px;padding:8px 12px;border-radius:10px;font-size:12px;line-height:1.5;background:color-mix(in srgb,var(--dsw-alias-state-error-primary) 10%,transparent);color:var(--dsw-alias-state-error-primary)}
|
|
4058
|
+
exports.MCP_CSS = `
|
|
4059
|
+
.dut-mcp{display:grid;gap:12px;max-width:680px;padding:6px 2px 36px}
|
|
4060
|
+
.dut-mcp-head{display:flex;align-items:center;gap:10px;padding:14px 16px 0}
|
|
4061
|
+
.dut-mcp-head h2{margin:0;font-size:15px;font-weight:600;letter-spacing:-.01em;color:var(--dsw-alias-label-primary)}
|
|
4062
|
+
.dut-mcp-count{font-size:11.5px;color:var(--dsw-alias-label-secondary);padding:2px 8px;border-radius:999px;background:var(--dsw-alias-bg-layer-1);border:1px solid var(--dsw-alias-border-l1)}
|
|
4063
|
+
.dut-mcp-spacer{flex:1}
|
|
4064
|
+
.dut-mcp-btn{display:inline-flex;align-items:center;height:28px;padding:0 12px;border-radius:999px;border:1px solid var(--dsw-alias-border-l1);background:transparent;color:var(--dsw-alias-label-secondary);font:inherit;font-size:12px;cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease}
|
|
4065
|
+
.dut-mcp-btn:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}
|
|
4066
|
+
.dut-mcp-btn:disabled{opacity:.5;cursor:default}
|
|
4067
|
+
.dut-mcp-btn.dut-mcp-del:hover{border-color:color-mix(in srgb,var(--dsw-alias-state-error-primary) 55%,transparent);color:var(--dsw-alias-state-error-primary);background:color-mix(in srgb,var(--dsw-alias-state-error-primary) 10%,transparent)}
|
|
4068
|
+
.dut-mcp-btn.dut-mcp-confirm{border-color:color-mix(in srgb,var(--dsw-alias-state-error-primary) 55%,transparent);color:var(--dsw-alias-state-error-primary);font-weight:600}
|
|
4069
|
+
.dut-mcp-body{display:grid;gap:2px;margin-top:4px}
|
|
4070
|
+
.dut-mcp-row{display:grid;gap:6px;padding:10px 16px;border-radius:12px}
|
|
4071
|
+
.dut-mcp-row:hover{background:var(--dsw-alias-interactive-bg-hover)}
|
|
4072
|
+
.dut-mcp-row-main{display:flex;align-items:center;gap:8px;min-width:0}
|
|
4073
|
+
.dut-mcp-name{font-size:13.5px;font-weight:600;color:var(--dsw-alias-label-primary);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}
|
|
4074
|
+
.dut-mcp-badge{flex:none;font-size:11px;line-height:1;padding:4px 9px;border-radius:999px;background:var(--dsw-alias-bg-layer-1);border:1px solid var(--dsw-alias-border-l1);color:var(--dsw-alias-label-secondary)}
|
|
4075
|
+
.dut-mcp-badge.dut-mcp-ok{background:color-mix(in srgb,var(--dsw-alias-state-success-primary) 12%,transparent);border-color:transparent;color:var(--dsw-alias-state-success-primary)}
|
|
4076
|
+
.dut-mcp-badge.dut-mcp-err{background:color-mix(in srgb,var(--dsw-alias-state-error-primary) 12%,transparent);border-color:transparent;color:var(--dsw-alias-state-error-primary)}
|
|
4077
|
+
.dut-mcp-badge.dut-mcp-warn{background:color-mix(in srgb,var(--dsw-alias-state-warn-primary) 14%,transparent);border-color:transparent;color:var(--dsw-alias-state-warn-label)}
|
|
4078
|
+
.dut-mcp-sub{font-size:11.5px;color:var(--dsw-alias-label-secondary);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}
|
|
4079
|
+
.dut-mcp-toggle{flex:none;font-size:11.5px;color:var(--dsw-alias-label-tertiary);background:transparent;border:none;padding:0;cursor:pointer;text-align:left}
|
|
4080
|
+
.dut-mcp-toggle:hover{color:var(--dsw-alias-label-primary)}
|
|
4081
|
+
.dut-mcp-tools{margin-left:2px;display:flex;flex-wrap:wrap;gap:4px}
|
|
4082
|
+
.dut-mcp-tool{font-size:11px;line-height:1;padding:3px 8px;border-radius:999px;background:var(--dsw-alias-bg-layer-1);border:1px solid var(--dsw-alias-border-l1);color:var(--dsw-alias-label-secondary)}
|
|
4083
|
+
.dut-mcp-note{margin:2px 16px 0;padding:8px 12px;border-radius:10px;font-size:11.5px;line-height:1.55;color:var(--dsw-alias-label-secondary);background:var(--dsw-alias-bg-layer-1);border:1px solid var(--dsw-alias-border-l1)}
|
|
4084
|
+
.dut-mcp-empty{padding:32px 16px;text-align:center;font-size:12.5px;color:var(--dsw-alias-label-secondary)}
|
|
4085
|
+
.dut-mcp-alert{margin:8px 16px 0;padding:8px 12px;border-radius:10px;font-size:12px;line-height:1.5;background:color-mix(in srgb,var(--dsw-alias-state-error-primary) 10%,transparent);color:var(--dsw-alias-state-error-primary)}
|
|
4086
|
+
.dut-mcp-notice{margin:8px 16px 0;padding:8px 12px;border-radius:10px;font-size:12px;line-height:1.5;background:color-mix(in srgb,var(--dsw-alias-state-success-primary) 12%,transparent);color:var(--dsw-alias-state-success-primary)}
|
|
4087
|
+
.dut-mcp-off{padding:20px 16px;display:grid;gap:12px}
|
|
4088
|
+
.dut-mcp-off p{margin:0;font-size:12.5px;line-height:1.6;color:var(--dsw-alias-label-secondary)}
|
|
4089
|
+
.dut-mcp-overlay{z-index:1100;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}
|
|
4090
|
+
.dut-mcp-mask{background:var(--dsw-alias-bg-mask-1);backdrop-filter:var(--dsw-mask-blur);position:absolute;inset:0}
|
|
4091
|
+
.dut-mcp-panel{z-index:1;background:var(--dsw-alias-bg-layer-2);box-sizing:border-box;width:720px;max-width:calc(100vw - 48px);height:min(700px,100vh - 48px);box-shadow:var(--dsw-shadow-lv3);--dsh-scrollbar-thumb:var(--dsw-alias-scrollbar-bg-l2);--dsh-scrollbar-thumb-hover:var(--dsw-alias-scrollbar-hover-l2);border-radius:20px;display:flex;flex-direction:column;overflow:hidden}
|
|
4092
|
+
.dut-mcp-panel-head{box-sizing:border-box;flex:none;display:flex;align-items:center;gap:10px;height:52px;padding:0 12px 0 20px}
|
|
4093
|
+
.dut-mcp-panel-head h2{margin:0;font-size:16px;font-weight:600;letter-spacing:-.01em;color:var(--dsw-alias-label-primary)}
|
|
4094
|
+
.dut-mcp-panel-close{cursor:pointer;width:28px;height:28px;color:var(--dsw-alias-label-primary);background:transparent;border:none;border-radius:28px;display:inline-flex;justify-content:center;align-items:center;padding:0;font-size:13px}
|
|
4095
|
+
.dut-mcp-panel-close:hover{background:var(--dsw-alias-interactive-bg-hover)}
|
|
4096
|
+
.dut-mcp-tabs{flex:none;display:inline-flex;padding:3px;gap:3px;border:1px solid var(--dsw-alias-border-l1);border-radius:10px;background:var(--dsw-alias-bg-layer-2);margin:0 20px 10px;align-self:flex-start}
|
|
4097
|
+
.dut-mcp-tabs button{border:none;border-radius:7px;padding:5px 14px;background:transparent;color:var(--dsw-alias-label-secondary);font:inherit;font-size:12.5px;cursor:pointer}
|
|
4098
|
+
.dut-mcp-tabs button.dut-mcp-tab-on{background:color-mix(in srgb,var(--dsw-alias-state-business-primary) 12%,transparent);color:var(--dsw-alias-state-business-primary);font-weight:600}
|
|
4099
|
+
.dut-mcp-form{flex:1;min-height:0;overflow-y:auto;padding:0 20px 20px;display:grid;gap:12px;align-content:start}
|
|
4100
|
+
.dut-mcp-field{display:grid;gap:6px}
|
|
4101
|
+
.dut-mcp-field>span{font-size:12px;font-weight:600;color:var(--dsw-alias-label-primary)}
|
|
4102
|
+
.dut-mcp-field small{font-size:11px;line-height:1.5;color:var(--dsw-alias-label-tertiary)}
|
|
4103
|
+
.dut-mcp-input{box-sizing:border-box;width:100%;height:34px;padding:0 10px;border-radius:9px;border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-1);color:var(--dsw-alias-label-primary);font:inherit;font-size:13px}
|
|
4104
|
+
.dut-mcp-input:focus{outline:none;border-color:color-mix(in srgb,var(--dsw-alias-state-business-primary) 55%,transparent)}
|
|
4105
|
+
.dut-mcp-input:disabled{opacity:.55;cursor:not-allowed}
|
|
4106
|
+
textarea.dut-mcp-input{height:auto;min-height:72px;padding:8px 10px;line-height:1.5;resize:vertical;font-family:var(--dsw-font-markdown-code-block-font-family, Consolas, monospace);font-size:12px}
|
|
4107
|
+
textarea.dut-mcp-input-lg{min-height:120px}
|
|
4108
|
+
textarea.dut-mcp-yaml{min-height:320px}
|
|
4109
|
+
.dut-mcp-row2{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:start}
|
|
4110
|
+
.dut-mcp-field .dut-seg{width:fit-content}
|
|
4111
|
+
.dut-mcp-row2 .dut-seg{height:34px;box-sizing:border-box;align-items:center}
|
|
4112
|
+
.dut-mcp-row2 .dut-seg button{flex:none;white-space:nowrap;padding:0 16px;height:26px}
|
|
4113
|
+
.dut-mcp-foot{flex:none;display:flex;align-items:center;gap:8px;justify-content:flex-end;padding:12px 20px 16px;border-top:1px solid var(--dsw-alias-border-l1)}
|
|
4114
|
+
.dut-mcp-error{margin:0 20px 10px;padding:8px 12px;border-radius:10px;font-size:12px;line-height:1.5;background:color-mix(in srgb,var(--dsw-alias-state-error-primary) 10%,transparent);color:var(--dsw-alias-state-error-primary)}
|
|
4119
4115
|
`;
|
|
4120
4116
|
/** Install the MCP stylesheet once (idempotent); returns the disposer. */
|
|
4121
4117
|
function installMcpStyles() {
|
|
@@ -4776,32 +4772,32 @@ async function searchRequest(init) {
|
|
|
4776
4772
|
}
|
|
4777
4773
|
return body.value;
|
|
4778
4774
|
}
|
|
4779
|
-
exports.SEARCH_CSS = `
|
|
4780
|
-
.dut-search{display:grid;gap:12px;max-width:680px;padding:6px 2px 36px}
|
|
4781
|
-
.dut-search-head{display:flex;align-items:center;gap:10px;padding:14px 16px 0}
|
|
4782
|
-
.dut-search-head h2{margin:0;font-size:15px;font-weight:600;letter-spacing:-.01em;color:var(--dsw-alias-label-primary)}
|
|
4783
|
-
.dut-search-head p{margin:4px 0 0;color:var(--dsw-alias-label-secondary);font-size:12px;line-height:1.5}
|
|
4784
|
-
.dut-search-note{padding:0 16px;font-size:11.5px;line-height:1.55;color:var(--dsw-alias-label-tertiary)}
|
|
4785
|
-
.dut-search-path{font-family:var(--dsw-font-markdown-code-block-font-family,Consolas,monospace);font-size:11px;color:var(--dsw-alias-label-secondary)}
|
|
4786
|
-
.dut-search-grid{display:grid;gap:2px;margin-top:4px}
|
|
4787
|
-
.dut-search-row{display:grid;gap:6px;padding:10px 16px;border-radius:12px}
|
|
4788
|
-
.dut-search-row:hover{background:var(--dsw-alias-interactive-bg-hover)}
|
|
4789
|
-
.dut-search-row-main{display:flex;align-items:center;gap:8px;min-width:0;flex-wrap:wrap}
|
|
4790
|
-
.dut-search-name{font-size:13.5px;font-weight:600;color:var(--dsw-alias-label-primary)}
|
|
4791
|
-
.dut-search-badge{flex:none;font-size:11px;line-height:1;padding:4px 9px;border-radius:999px;background:var(--dsw-alias-bg-layer-1);border:1px solid var(--dsw-alias-border-l1);color:var(--dsw-alias-label-secondary)}
|
|
4792
|
-
.dut-search-badge.dut-search-ok{border-color:color-mix(in srgb,var(--dsw-alias-state-success-primary) 45%,transparent);color:var(--dsw-alias-state-success-primary)}
|
|
4793
|
-
.dut-search-badge.dut-search-key{border-color:color-mix(in srgb,var(--dsw-alias-state-warn-primary) 45%,transparent);color:var(--dsw-alias-state-warn-label)}
|
|
4794
|
-
.dut-search-badge.dut-search-req{border-color:color-mix(in srgb,var(--dsw-alias-state-error-primary) 45%,transparent);color:var(--dsw-alias-state-error-primary)}
|
|
4795
|
-
.dut-search-spacer{flex:1}
|
|
4796
|
-
.dut-search-input{box-sizing:border-box;height:30px;width:280px;max-width:100%;padding:0 10px;border-radius:9px;border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-1);color:var(--dsw-alias-label-primary);font:inherit;font-size:12.5px}
|
|
4797
|
-
.dut-search-input:focus{outline:none;border-color:color-mix(in srgb,var(--dsw-alias-state-business-primary) 55%,transparent)}
|
|
4798
|
-
.dut-search-select{height:28px;padding:0 8px;border:1px solid var(--dsw-alias-border-l1);border-radius:9px;background:var(--dsw-alias-bg-layer-2);color:inherit;font:inherit;font-size:12.5px;cursor:pointer;color-scheme:light dark}
|
|
4799
|
-
.dut-search-select:focus-visible{outline:2px solid var(--dsw-alias-state-business-primary);outline-offset:1px}
|
|
4800
|
-
.dut-search-btn{display:inline-flex;align-items:center;height:26px;padding:0 12px;border-radius:999px;border:1px solid var(--dsw-alias-border-l1);background:transparent;color:var(--dsw-alias-label-secondary);font:inherit;font-size:11.5px;cursor:pointer;transition:background .15s ease,color .15s ease}
|
|
4801
|
-
.dut-search-btn:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}
|
|
4802
|
-
.dut-search-btn:disabled{opacity:.5;cursor:default}
|
|
4803
|
-
.dut-search-status{padding:3px 10px;border-radius:999px;font-size:11.5px;background:color-mix(in srgb,var(--dsw-alias-state-success-primary) 12%,transparent);color:var(--dsw-alias-state-success-primary)}
|
|
4804
|
-
.dut-search-status.dut-search-err{background:color-mix(in srgb,var(--dsw-alias-state-error-primary) 10%,transparent);color:var(--dsw-alias-state-error-primary)}
|
|
4775
|
+
exports.SEARCH_CSS = `
|
|
4776
|
+
.dut-search{display:grid;gap:12px;max-width:680px;padding:6px 2px 36px}
|
|
4777
|
+
.dut-search-head{display:flex;align-items:center;gap:10px;padding:14px 16px 0}
|
|
4778
|
+
.dut-search-head h2{margin:0;font-size:15px;font-weight:600;letter-spacing:-.01em;color:var(--dsw-alias-label-primary)}
|
|
4779
|
+
.dut-search-head p{margin:4px 0 0;color:var(--dsw-alias-label-secondary);font-size:12px;line-height:1.5}
|
|
4780
|
+
.dut-search-note{padding:0 16px;font-size:11.5px;line-height:1.55;color:var(--dsw-alias-label-tertiary)}
|
|
4781
|
+
.dut-search-path{font-family:var(--dsw-font-markdown-code-block-font-family,Consolas,monospace);font-size:11px;color:var(--dsw-alias-label-secondary)}
|
|
4782
|
+
.dut-search-grid{display:grid;gap:2px;margin-top:4px}
|
|
4783
|
+
.dut-search-row{display:grid;gap:6px;padding:10px 16px;border-radius:12px}
|
|
4784
|
+
.dut-search-row:hover{background:var(--dsw-alias-interactive-bg-hover)}
|
|
4785
|
+
.dut-search-row-main{display:flex;align-items:center;gap:8px;min-width:0;flex-wrap:wrap}
|
|
4786
|
+
.dut-search-name{font-size:13.5px;font-weight:600;color:var(--dsw-alias-label-primary)}
|
|
4787
|
+
.dut-search-badge{flex:none;font-size:11px;line-height:1;padding:4px 9px;border-radius:999px;background:var(--dsw-alias-bg-layer-1);border:1px solid var(--dsw-alias-border-l1);color:var(--dsw-alias-label-secondary)}
|
|
4788
|
+
.dut-search-badge.dut-search-ok{border-color:color-mix(in srgb,var(--dsw-alias-state-success-primary) 45%,transparent);color:var(--dsw-alias-state-success-primary)}
|
|
4789
|
+
.dut-search-badge.dut-search-key{border-color:color-mix(in srgb,var(--dsw-alias-state-warn-primary) 45%,transparent);color:var(--dsw-alias-state-warn-label)}
|
|
4790
|
+
.dut-search-badge.dut-search-req{border-color:color-mix(in srgb,var(--dsw-alias-state-error-primary) 45%,transparent);color:var(--dsw-alias-state-error-primary)}
|
|
4791
|
+
.dut-search-spacer{flex:1}
|
|
4792
|
+
.dut-search-input{box-sizing:border-box;height:30px;width:280px;max-width:100%;padding:0 10px;border-radius:9px;border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-1);color:var(--dsw-alias-label-primary);font:inherit;font-size:12.5px}
|
|
4793
|
+
.dut-search-input:focus{outline:none;border-color:color-mix(in srgb,var(--dsw-alias-state-business-primary) 55%,transparent)}
|
|
4794
|
+
.dut-search-select{height:28px;padding:0 8px;border:1px solid var(--dsw-alias-border-l1);border-radius:9px;background:var(--dsw-alias-bg-layer-2);color:inherit;font:inherit;font-size:12.5px;cursor:pointer;color-scheme:light dark}
|
|
4795
|
+
.dut-search-select:focus-visible{outline:2px solid var(--dsw-alias-state-business-primary);outline-offset:1px}
|
|
4796
|
+
.dut-search-btn{display:inline-flex;align-items:center;height:26px;padding:0 12px;border-radius:999px;border:1px solid var(--dsw-alias-border-l1);background:transparent;color:var(--dsw-alias-label-secondary);font:inherit;font-size:11.5px;cursor:pointer;transition:background .15s ease,color .15s ease}
|
|
4797
|
+
.dut-search-btn:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}
|
|
4798
|
+
.dut-search-btn:disabled{opacity:.5;cursor:default}
|
|
4799
|
+
.dut-search-status{padding:3px 10px;border-radius:999px;font-size:11.5px;background:color-mix(in srgb,var(--dsw-alias-state-success-primary) 12%,transparent);color:var(--dsw-alias-state-success-primary)}
|
|
4800
|
+
.dut-search-status.dut-search-err{background:color-mix(in srgb,var(--dsw-alias-state-error-primary) 10%,transparent);color:var(--dsw-alias-state-error-primary)}
|
|
4805
4801
|
`;
|
|
4806
4802
|
let stylesInstalled = false;
|
|
4807
4803
|
function installSearchStyles() {
|