@lijian-ui/dsh-term 0.3.0 → 0.3.1

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/lib/index.js CHANGED
@@ -5,7 +5,7 @@ import { exec } from "node:child_process";
5
5
  import { resolve } from "node:path";
6
6
  import { homedir } from "node:os";
7
7
  import * as nodePty from "node-pty";
8
- //#region ../../node_modules/@deepseek-ai/dsh-settings/lib/index.js
8
+ //#region node_modules/@deepseek-ai/dsh-settings/lib/index.js
9
9
  /**
10
10
  * Structural secret redaction for settings values. `role('secret')` fields are
11
11
  * removed from a value before it crosses a wire boundary; a sidecar records
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@lijian-ui/dsh-term",
3
3
  "description": "Panel-style local + SSH terminal for the DSH web GUI: real PTY sessions (node-pty), multi-tab terminal panel with xterm.js, workspace-cwd shells — hot-pluggable via a profile bundle without any dsh source changes",
4
- "version": "0.3.0",
4
+ "version": "0.3.1",
5
5
  "type": "module",
6
6
  "main": "lib/index.js",
7
7
  "types": "lib/types/index.d.ts",
@@ -14,7 +14,7 @@ function ensureStyle(): void {
14
14
  if (document.getElementById(STYLE_ID) !== null) return
15
15
  const tag = document.createElement('style')
16
16
  tag.id = STYLE_ID
17
- tag.textContent = '.dsh-dock-item{width:32px;height:32px;border:none;border-radius:9999px;background:#000;color:#fff;cursor:pointer;position:relative;transition:transform .15s ease,background .18s ease;display:inline-flex;align-items:center;justify-content:center}.dsh-dock-item:hover{transform:scale(1.15);background:#1a1a1a}.dsh-dock-item-active{background:var(--aion-primary,#6ea0ff)}.dsh-dock-tooltip{position:absolute;top:calc(100% + 6px);left:50%;transform:translateX(-50%);padding:2px 8px;font-size:12px;line-height:1.4;white-space:nowrap;color:#fff;background:rgba(20,20,30,.9);border:1px solid rgba(255,255,255,.12);border-radius:6px;opacity:0;pointer-events:none;transition:opacity .15s}.dsh-dock-item:hover .dsh-dock-tooltip{opacity:1}'
17
+ tag.textContent = '.dsh-dock-item{width:32px;height:32px;border:none;border-radius:9999px;background:var(--dsw-alias-bg-base);color:var(--dsw-alias-label-primary);cursor:pointer;position:relative;transition:transform .15s ease,background .18s ease;display:inline-flex;align-items:center;justify-content:center}.dsh-dock-item:hover{transform:scale(1.15);background:var(--dsw-alias-bg-layer-1)}.dsh-dock-item-active{background:var(--dsw-alias-state-business-primary)}.dsh-dock-tooltip{position:absolute;top:calc(100% + 6px);left:50%;transform:translateX(-50%);padding:2px 8px;font-size:12px;line-height:1.4;white-space:nowrap;color:var(--dsw-alias-label-primary);background:var(--dsw-alias-bg-layer-3);border:1px solid var(--dsw-alias-border-l2);border-radius:6px;opacity:0;pointer-events:none;transition:opacity .15s}.dsh-dock-item:hover .dsh-dock-tooltip{opacity:1}'
18
18
  document.head.appendChild(tag)
19
19
  }
20
20
 
@@ -108,17 +108,17 @@ function themeOf(): Record<string, string> {
108
108
  const dark = document.body.dataset.dsDarkTheme !== undefined
109
109
  if (dark) {
110
110
  return {
111
- background: '#0e0e0e',
112
- foreground: '#ced3da',
113
- cursor: '#ced3da',
111
+ background: 'var(--dsw-alias-bg-base)',
112
+ foreground: 'var(--dsw-alias-label-secondary)',
113
+ cursor: 'var(--dsw-alias-label-secondary)',
114
114
  selectionBackground: 'rgba(255,255,255,0.2)',
115
115
  ...DARK_PALETTE,
116
116
  }
117
117
  }
118
118
  return {
119
- background: '#ffffff',
120
- foreground: '#1f2329',
121
- cursor: '#1f2329',
119
+ background: 'var(--dsw-alias-bg-base)',
120
+ foreground: 'var(--dsw-alias-label-primary)',
121
+ cursor: 'var(--dsw-alias-label-primary)',
122
122
  selectionBackground: 'rgba(22,93,255,0.25)',
123
123
  ...LIGHT_PALETTE,
124
124
  }
@@ -42,9 +42,9 @@
42
42
 
43
43
  /* Open-panel highlight: primary tint + thin ring to mirror the live state. */
44
44
  .item.active {
45
- background: var(--aion-primary, #6ea0ff);
45
+ background: var(--dsw-alias-state-business-primary);
46
46
  color: #ffffff;
47
- box-shadow: 0 0 0 1.5px var(--aion-primary, #6ea0ff);
47
+ box-shadow: 0 0 0 1.5px var(--dsw-alias-state-business-primary);
48
48
  }
49
49
 
50
50
  /* Hover tooltip — the small label that floats above each icon (21st.dev style). */
@@ -57,7 +57,7 @@
57
57
  font-size: 12px;
58
58
  line-height: 1.4;
59
59
  white-space: nowrap;
60
- color: var(--aion-fg-1, #ffffff);
60
+ color: var(--dsw-alias-label-primary);
61
61
  background: rgba(20, 20, 30, 0.9);
62
62
  border: 1px solid rgba(255, 255, 255, 0.12);
63
63
  border-radius: 6px;
@@ -10,8 +10,8 @@
10
10
  height: 100%;
11
11
  display: flex;
12
12
  flex-direction: column;
13
- border-left: 1px solid var(--aion-border-base, #e5e6eb);
14
- background: var(--aion-bg-1, #f9fafb);
13
+ border-left: 1px solid var(--dsw-alias-border-l2);
14
+ background: var(--dsw-alias-bg-layer-1);
15
15
  overflow: hidden;
16
16
  font-family: var(--aion-font-sans, -apple-system, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif);
17
17
  }
@@ -21,7 +21,7 @@
21
21
  padding: 0 8px;
22
22
  font-size: 12px;
23
23
  font-weight: 600;
24
- color: var(--aion-text-primary, #1f2329);
24
+ color: var(--dsw-alias-label-primary);
25
25
  user-select: none;
26
26
  }
27
27
 
@@ -30,7 +30,7 @@
30
30
  width: 1px;
31
31
  height: 16px;
32
32
  margin: 0 4px;
33
- background: var(--aion-border-base, #e5e6eb);
33
+ background: var(--dsw-alias-border-l2);
34
34
  }
35
35
 
36
36
  .toolbar {
@@ -39,8 +39,8 @@
39
39
  gap: 4px;
40
40
  height: 32px;
41
41
  padding: 0 6px;
42
- border-bottom: 1px solid var(--aion-border-base, #e5e6eb);
43
- background: var(--aion-bg-base, #ffffff);
42
+ border-bottom: 1px solid var(--dsw-alias-border-l2);
43
+ background: var(--dsw-alias-bg-base);
44
44
  flex: none;
45
45
  }
46
46
 
@@ -53,15 +53,15 @@
53
53
  border-radius: 5px;
54
54
  border: none;
55
55
  background: transparent;
56
- color: var(--aion-text-secondary, #454d5f);
56
+ color: var(--dsw-alias-label-secondary);
57
57
  font-size: 12px;
58
58
  cursor: pointer;
59
59
  max-width: 200px;
60
60
  }
61
61
 
62
62
  .tabActive {
63
- background: var(--aion-bg-2, #f2f3f5);
64
- color: var(--aion-text-primary, #000000);
63
+ background: var(--dsw-alias-bg-layer-2);
64
+ color: var(--dsw-alias-label-primary);
65
65
  }
66
66
 
67
67
  .tabClose {
@@ -73,15 +73,15 @@
73
73
  border: none;
74
74
  border-radius: 3px;
75
75
  background: transparent;
76
- color: var(--aion-text-tertiary, #86909c);
76
+ color: var(--dsw-alias-label-tertiary);
77
77
  font-size: 11px;
78
78
  line-height: 1;
79
79
  cursor: pointer;
80
80
  }
81
81
 
82
82
  .tabClose:hover {
83
- background: var(--aion-bg-3, #e5e6eb);
84
- color: var(--aion-text-primary, #000000);
83
+ background: var(--dsw-alias-bg-layer-3);
84
+ color: var(--dsw-alias-label-primary);
85
85
  }
86
86
 
87
87
  .addTab {
@@ -93,13 +93,13 @@
93
93
  border: none;
94
94
  border-radius: 5px;
95
95
  background: transparent;
96
- color: var(--aion-text-secondary, #454d5f);
96
+ color: var(--dsw-alias-label-secondary);
97
97
  font-size: 14px;
98
98
  cursor: pointer;
99
99
  }
100
100
 
101
101
  .addTab:hover {
102
- background: var(--aion-bg-2, #f2f3f5);
102
+ background: var(--dsw-alias-bg-layer-2);
103
103
  }
104
104
 
105
105
  .spacer {
@@ -115,20 +115,20 @@
115
115
  border: none;
116
116
  border-radius: 5px;
117
117
  background: transparent;
118
- color: var(--aion-text-secondary, #454d5f);
118
+ color: var(--dsw-alias-label-secondary);
119
119
  font-size: 13px;
120
120
  cursor: pointer;
121
121
  }
122
122
 
123
123
  .collapse:hover {
124
- background: var(--aion-bg-2, #f2f3f5);
124
+ background: var(--dsw-alias-bg-layer-2);
125
125
  }
126
126
 
127
127
  .stage {
128
128
  position: relative;
129
129
  flex: 1;
130
130
  min-height: 0;
131
- background: var(--aion-bg-base, #ffffff);
131
+ background: var(--dsw-alias-bg-base);
132
132
  }
133
133
 
134
134
  .termWrap {
@@ -148,7 +148,7 @@
148
148
  display: flex;
149
149
  align-items: center;
150
150
  justify-content: center;
151
- color: var(--aion-text-tertiary, #86909c);
151
+ color: var(--dsw-alias-label-tertiary);
152
152
  font-size: 13px;
153
153
  }
154
154
 
@@ -156,21 +156,21 @@
156
156
  flex: none;
157
157
  height: 22px;
158
158
  padding: 0 6px;
159
- border: 1px solid var(--aion-border-base, #e5e6eb);
159
+ border: 1px solid var(--dsw-alias-border-l2);
160
160
  border-radius: 5px;
161
- background: var(--aion-bg-base, #ffffff);
162
- color: var(--aion-text-primary, #1f2329);
161
+ background: var(--dsw-alias-bg-base);
162
+ color: var(--dsw-alias-label-primary);
163
163
  font-size: 12px;
164
164
  cursor: pointer;
165
165
  outline: none;
166
166
  }
167
167
 
168
168
  .shellSelect:hover {
169
- border-color: var(--aion-border-strong, #c9cdd4);
169
+ border-color: var(--dsw-alias-border-l1);
170
170
  }
171
171
 
172
172
  .shellSelect:focus {
173
- border-color: var(--aion-primary, #1677ff);
173
+ border-color: var(--dsw-alias-state-business-primary);
174
174
  }
175
175
 
176
176
  .reopenBtn {
@@ -181,16 +181,16 @@
181
181
  padding: 0 6px;
182
182
  border: none;
183
183
  border-radius: 5px;
184
- background: var(--aion-bg-2, #f2f3f5);
185
- color: var(--aion-text-secondary, #454d5f);
184
+ background: var(--dsw-alias-bg-layer-2);
185
+ color: var(--dsw-alias-label-secondary);
186
186
  font-size: 12px;
187
187
  cursor: pointer;
188
188
  gap: 2px;
189
189
  }
190
190
 
191
191
  .reopenBtn:hover {
192
- background: var(--aion-bg-3, #e5e6eb);
193
- color: var(--aion-text-primary, #000000);
192
+ background: var(--dsw-alias-bg-layer-3);
193
+ color: var(--dsw-alias-label-primary);
194
194
  }
195
195
 
196
196
  .reopenDropdown {
@@ -201,9 +201,9 @@
201
201
  min-width: 180px;
202
202
  max-width: 280px;
203
203
  padding: 4px 0;
204
- border: 1px solid var(--aion-border-base, #e5e6eb);
204
+ border: 1px solid var(--dsw-alias-border-l2);
205
205
  border-radius: 8px;
206
- background: var(--aion-bg-base, #ffffff);
206
+ background: var(--dsw-alias-bg-base);
207
207
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
208
208
  }
209
209
 
@@ -211,7 +211,7 @@
211
211
  padding: 4px 10px;
212
212
  font-size: 11px;
213
213
  font-weight: 600;
214
- color: var(--aion-text-tertiary, #86909c);
214
+ color: var(--dsw-alias-label-tertiary);
215
215
  user-select: none;
216
216
  }
217
217
 
@@ -231,7 +231,7 @@
231
231
  border: none;
232
232
  border-radius: 5px;
233
233
  background: transparent;
234
- color: var(--aion-text-primary, #1f2329);
234
+ color: var(--dsw-alias-label-primary);
235
235
  font-size: 12px;
236
236
  cursor: pointer;
237
237
  text-align: left;
@@ -241,7 +241,7 @@
241
241
  }
242
242
 
243
243
  .reopenItemBtn:hover {
244
- background: var(--aion-bg-2, #f2f3f5);
244
+ background: var(--dsw-alias-bg-layer-2);
245
245
  }
246
246
 
247
247
  .reopenItemKill {
@@ -254,14 +254,14 @@
254
254
  border: none;
255
255
  border-radius: 4px;
256
256
  background: transparent;
257
- color: var(--aion-text-tertiary, #86909c);
257
+ color: var(--dsw-alias-label-tertiary);
258
258
  font-size: 13px;
259
259
  cursor: pointer;
260
260
  }
261
261
 
262
262
  .reopenItemKill:hover {
263
- background: var(--aion-bg-3, #e5e6eb);
264
- color: var(--aion-text-primary, #000000);
263
+ background: var(--dsw-alias-bg-layer-3);
264
+ color: var(--dsw-alias-label-primary);
265
265
  }
266
266
 
267
267
  .addToChatBtn {
@@ -272,10 +272,10 @@
272
272
  gap: 4px;
273
273
  height: 28px;
274
274
  padding: 0 10px;
275
- border: 1px solid var(--aion-border-base, #e5e6eb);
275
+ border: 1px solid var(--dsw-alias-border-l2);
276
276
  border-radius: 14px;
277
- background: var(--aion-bg-base, #ffffff);
278
- color: var(--aion-text-primary, #1f2329);
277
+ background: var(--dsw-alias-bg-base);
278
+ color: var(--dsw-alias-label-primary);
279
279
  font-size: 12px;
280
280
  font-weight: 500;
281
281
  cursor: pointer;
@@ -284,7 +284,7 @@
284
284
  }
285
285
 
286
286
  .addToChatBtn:hover {
287
- background: var(--aion-bg-2, #f2f3f5);
288
- border-color: var(--aion-primary, #1677ff);
289
- color: var(--aion-primary, #1677ff);
287
+ background: var(--dsw-alias-bg-layer-2);
288
+ border-color: var(--dsw-alias-state-business-primary);
289
+ color: var(--dsw-alias-state-business-primary);
290
290
  }