@ponydev/dsh-model-usage 1.2.0 → 1.2.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/CHANGELOG.md CHANGED
@@ -1,5 +1,14 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.2.1 — 2026-10-20
4
+
5
+ ### 变更(UI 对齐 DSH 设置页规范)
6
+ - 版本/检查更新改为**原生设置行**(16px 标签 + 44px 行高 + 细分割线 + 右侧控件)
7
+ - 设置内容去掉重复大标题(section 名称已由设置导航提供)
8
+ - 卡片圆角统一 12px、列表改为无卡片底的 44px 行 + 细线(对齐 通用设置/模型 页)
9
+ - 字号规范化:正文 12px、行标签 16px、卡片标签 12px,去掉 10.5px 等非规范字号
10
+ - 分组标题由 10.5px 大写间距改为 13px/600 常规字重
11
+
3
12
  ## 1.2.0 — 2026-10-20
4
13
 
5
14
  ### 新增
package/lib/client.js CHANGED
@@ -123,7 +123,7 @@ window.__ModuleLoader__.load({
123
123
  .dmu-footcard .metric b{font-weight:650}
124
124
  .dmu-mwin{margin-top:8px}
125
125
  .dmu-mwin:first-child{margin-top:9px}
126
- .dmu-mwin .t{display:flex;font-size:10.5px;color:var(--dsw-alias-label-secondary,#637182);margin-bottom:3px}
126
+ .dmu-mwin .t{display:flex;font-size:11.5px;color:var(--dsw-alias-label-secondary,#637182);margin-bottom:3px}
127
127
  .dmu-mwin .t b{margin-left:auto;color:var(--dsw-alias-label-primary,#191f28);font-variant-numeric:tabular-nums}
128
128
  .dmu-mwin .track{height:6px;border-radius:4px;background:var(--dsw-alias-bg-base,#e4e8ee);overflow:hidden}
129
129
  .dmu-mwin .fill{height:100%;border-radius:4px;transition:width .4s ease}
@@ -150,58 +150,64 @@ window.__ModuleLoader__.load({
150
150
  .dmu-mbody .dmu-pcard:first-child{margin-top:0}
151
151
  .dmu-mbody .dmu-kicker{margin:12px 0 0}
152
152
  .dmu-sumhead{display:flex;align-items:center;gap:8px}
153
- .dmu-sumhead .k{font-size:10.5px;font-weight:700;letter-spacing:1px;color:var(--dsw-alias-label-tertiary,#98a2b3)}
153
+ .dmu-sumhead .k{font-size:12px;font-weight:600;letter-spacing:0;color:var(--dsw-alias-label-tertiary,#98a2b3)}
154
154
  .dmu-summrow{display:flex;align-items:flex-end;gap:26px;margin-top:11px}
155
- .dmu-sumstat .k{font-size:10.5px;color:var(--dsw-alias-label-secondary,#637182)}
155
+ .dmu-sumstat .k{font-size:12px;color:var(--dsw-alias-label-secondary,#637182)}
156
156
  .dmu-sumstat .v{margin-top:3px;font-size:16px;font-weight:700;color:var(--dsw-alias-label-primary,#191f28);font-variant-numeric:tabular-nums;line-height:1}
157
157
  .dmu-spark{display:flex;align-items:flex-end;gap:3px;height:22px;width:120px;margin-left:auto}
158
158
  .dmu-spark i{flex:1;background:var(--dsw-alias-state-business-primary,#4176E6);border-radius:2px 2px 0 0;min-height:2px;display:block;opacity:.85}
159
- .dmu-sumtext{margin-top:9px;font-size:10.5px;color:var(--dsw-alias-label-tertiary,#98a2b3)}
160
- .dmu-kicker{font-size:10.5px;font-weight:700;letter-spacing:1px;color:var(--dsw-alias-label-tertiary,#98a2b3);margin:6px 0 6px}
161
- .dmu-pcard{background:var(--dsw-alias-settings-card-fill,var(--dsw-alias-bg-layer-1,#fff));border:1px solid var(--dsw-alias-settings-card-stroke,var(--dsw-alias-border-l1,#e3e7ed));border-radius:var(--dsw-radius-lg,14px);padding:13px 15px}
159
+ .dmu-sumtext{margin-top:10px;font-size:12px;color:var(--dsw-alias-label-tertiary,#98a2b3)}
160
+ .dmu-kicker{font-size:13px;font-weight:600;letter-spacing:0;color:var(--dsw-alias-label-secondary,#637182);margin:20px 0 8px}
161
+ .dmu-pcard{background:var(--dsw-alias-settings-card-fill,var(--dsw-alias-bg-layer-1,#fff));border:1px solid var(--dsw-alias-settings-card-stroke,var(--dsw-alias-border-l1,#e3e7ed));border-radius:12px;padding:14px 16px}
162
162
  .dmu-pcard.crit{border-top:2px solid var(--dsw-alias-state-error-primary,#f04438)}
163
163
  .dmu-pcard .ph{display:flex;align-items:center;gap:8px;font-size:var(--dsh-content-font-size-secondary,13px);font-weight:600;color:var(--dsw-alias-label-primary,#191f28);white-space:nowrap}
164
164
  .dmu-pcard .ph .dmu-pill{white-space:nowrap}
165
- .dmu-pcard .route{font-size:10.5px;color:var(--dsw-alias-label-tertiary,#98a2b3);font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:26%}
165
+ .dmu-pcard .route{font-size:12px;color:var(--dsw-alias-label-tertiary,#98a2b3);font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:26%}
166
166
  .dmu-big{margin-top:11px;font-size:28px;font-weight:700;letter-spacing:-.5px;line-height:1;color:var(--dsw-alias-label-primary,#191f28);font-variant-numeric:tabular-nums}
167
167
  .dmu-big small{font-size:13px;font-weight:600;color:var(--dsw-alias-label-secondary,#637182);margin-left:3px;letter-spacing:0}
168
- .dmu-cap{margin-top:6px;font-size:11px;color:var(--dsw-alias-label-secondary,#637182)}
168
+ .dmu-cap{margin-top:6px;font-size:12px;color:var(--dsw-alias-label-secondary,#637182)}
169
169
  .dmu-seg{display:flex;height:10px;border-radius:var(--dsw-radius-sm,6px);overflow:hidden;margin-top:12px;background:var(--dsw-alias-bg-base,#e4e8ee)}
170
170
  .dmu-seg span{height:100%}
171
171
  .dmu-legend{display:flex;gap:14px;margin-top:8px;font-size:10.5px;color:var(--dsw-alias-label-secondary,#637182)}
172
172
  .dmu-legend i{width:8px;height:8px;border-radius:3px;display:inline-block;margin-right:5px;vertical-align:-1px}
173
173
  .dmu-pcard .winrow{margin-top:12px;display:flex;flex-direction:column;gap:12px}
174
- .dmu-pcard .win .t{display:flex;align-items:baseline;font-size:11.5px;color:var(--dsw-alias-label-secondary,#637182);margin-bottom:5px}
174
+ .dmu-pcard .win .t{display:flex;align-items:baseline;font-size:12.5px;color:var(--dsw-alias-label-secondary,#637182);margin-bottom:5px}
175
175
  .dmu-pcard .win .t .lb{font-weight:600;color:var(--dsw-alias-label-primary,#191f28);margin-right:8px}
176
176
  .dmu-pcard .win .t b{margin-left:auto;font-size:12.5px;color:var(--dsw-alias-label-primary,#191f28);font-variant-numeric:tabular-nums}
177
177
  .dmu-pcard .win .track{height:10px;border-radius:var(--dsw-radius-sm,6px);background:var(--dsw-alias-bg-base,#e4e8ee);overflow:hidden}
178
178
  .dmu-pcard .win .fill{height:100%;border-radius:var(--dsw-radius-sm,6px);transition:width .4s ease}
179
- .dmu-pcard .win .f{display:flex;margin-top:5px;font-size:10.5px;color:var(--dsw-alias-label-tertiary,#98a2b3)}
179
+ .dmu-pcard .win .f{display:flex;margin-top:6px;font-size:12px;color:var(--dsw-alias-label-tertiary,#98a2b3)}
180
180
  .dmu-pcard .win .f .wh{margin-left:auto;font-weight:600}
181
- .dmu-errline{display:flex;gap:8px;align-items:flex-start;font-size:11px;color:var(--dsw-alias-state-error-primary,#f04438);background:color-mix(in srgb,var(--dsw-alias-state-error-primary,#f04438) 8%,transparent);border:1px solid color-mix(in srgb,var(--dsw-alias-state-error-primary,#f04438) 25%,transparent);padding:7px 10px;border-radius:var(--dsw-radius-md,10px);margin-top:10px;word-break:break-all}
182
- .dmu-warnline{color:var(--dsw-alias-state-warn-primary,#f79009);font-size:11px;margin-top:10px}
183
- .dmu-mutedline{color:var(--dsw-alias-label-tertiary,#98a2b3);font-size:11px;margin-top:10px}
184
- .dmu-settings{padding:4px 2px}
181
+ .dmu-errline{display:flex;gap:8px;align-items:flex-start;font-size:12px;color:var(--dsw-alias-state-error-primary,#f04438);background:color-mix(in srgb,var(--dsw-alias-state-error-primary,#f04438) 8%,transparent);border:1px solid color-mix(in srgb,var(--dsw-alias-state-error-primary,#f04438) 25%,transparent);padding:7px 10px;border-radius:var(--dsw-radius-md,10px);margin-top:10px;word-break:break-all}
182
+ .dmu-warnline{color:var(--dsw-alias-state-warn-primary,#f79009);font-size:12px;margin-top:10px}
183
+ .dmu-mutedline{color:var(--dsw-alias-label-secondary,#637182);font-size:12px;margin-top:10px}
184
+ .dmu-settings{padding:0}
185
+ .dmu-setrow{display:flex;align-items:center;gap:12px;min-height:44px;padding:10px 0;border-bottom:1px solid var(--dsw-alias-border-l1,#e3e7ed)}
186
+ .dmu-setrow .label{font-size:16px;line-height:22px;color:var(--dsw-alias-label-primary,#191f28);white-space:nowrap}
187
+ .dmu-setrow .sub{font-size:12px;line-height:18px;color:var(--dsw-alias-label-secondary,#637182);margin-top:2px}
188
+ .dmu-setrow .after{margin-left:auto;display:flex;align-items:center;gap:10px}
189
+ .dmu-setrow .ver{font-size:14px;line-height:22px;color:var(--dsw-alias-label-secondary,#637182);font-variant-numeric:tabular-nums}
190
+ .dmu-main-tabs{margin:18px 0 0}
185
191
  .dmu-settings h2{font-size:16px;font-weight:650;margin:0 0 2px;color:var(--dsw-alias-label-primary,#191f28)}
186
- .dmu-settings .desc{font-size:11.5px;color:var(--dsw-alias-label-tertiary,#98a2b3);margin-bottom:14px}
192
+ .dmu-settings .desc{font-size:12px;color:var(--dsw-alias-label-secondary,#637182);margin-bottom:16px}
187
193
  .dmu-settings .list{display:flex;flex-direction:column;gap:12px}
188
194
  .dmu-empty{padding:18px 12px;text-align:center;font-size:11.5px;color:var(--dsw-alias-label-tertiary,#98a2b3)}
189
195
  .dmu-settings,.dmu-mbody{--dmu-violet:#7c5cf0}
190
196
  @media (prefers-reduced-motion:reduce){.dmu-pcard .win .fill,.dmu-mwin .fill{transition:none}}
191
197
  .dmu-kpis{display:flex;gap:10px;flex-wrap:wrap}
192
- .dmu-kpi{flex:1;min-width:120px;background:var(--dsw-alias-settings-card-fill,var(--dsw-alias-bg-layer-1,#fff));border:1px solid var(--dsw-alias-settings-card-stroke,var(--dsw-alias-border-l1,#e3e7ed));border-radius:var(--dsw-radius-lg,14px);padding:12px 14px}
193
- .dmu-kpi .k{font-size:10.5px;color:var(--dsw-alias-label-tertiary,#98a2b3)}
194
- .dmu-kpi .v{margin-top:5px;font-size:22px;font-weight:700;letter-spacing:-.3px;color:var(--dsw-alias-label-primary,#191f28);font-variant-numeric:tabular-nums}
198
+ .dmu-kpi{flex:1;min-width:120px;background:var(--dsw-alias-settings-card-fill,var(--dsw-alias-bg-layer-1,#fff));border:1px solid var(--dsw-alias-settings-card-stroke,var(--dsw-alias-border-l1,#e3e7ed));border-radius:12px;padding:14px 16px}
199
+ .dmu-kpi .k{font-size:12px;color:var(--dsw-alias-label-secondary,#637182)}
200
+ .dmu-kpi .v{margin-top:6px;font-size:20px;font-weight:600;letter-spacing:-.2px;color:var(--dsw-alias-label-primary,#191f28);font-variant-numeric:tabular-nums}
195
201
  .dmu-kpi .v small{font-size:11px;font-weight:600;color:var(--dsw-alias-label-secondary,#637182);margin-left:2px}
196
- .dmu-chart{background:var(--dsw-alias-settings-card-fill,var(--dsw-alias-bg-layer-1,#fff));border:1px solid var(--dsw-alias-settings-card-stroke,var(--dsw-alias-border-l1,#e3e7ed));border-radius:var(--dsw-radius-lg,14px);padding:14px 16px 10px;margin-top:12px}
202
+ .dmu-chart{background:var(--dsw-alias-settings-card-fill,var(--dsw-alias-bg-layer-1,#fff));border:1px solid var(--dsw-alias-settings-card-stroke,var(--dsw-alias-border-l1,#e3e7ed));border-radius:12px;padding:16px 18px 12px;margin-top:16px}
197
203
  .dmu-chart .bars{display:flex;align-items:flex-end;gap:3px;height:120px}
198
204
  .dmu-chart .bar{flex:1;border-radius:3px 3px 1px 1px;background:var(--dsw-alias-state-business-primary,#4176E6);min-height:2px;position:relative}
199
205
  .dmu-chart .bar:hover{opacity:.75}
200
206
  .dmu-chart .labels{display:flex;gap:3px;margin-top:5px}
201
- .dmu-chart .labels span{flex:1;text-align:center;font-size:9px;color:var(--dsw-alias-label-tertiary,#98a2b3);overflow:visible;white-space:nowrap}
202
- .dmu-table{width:100%;border-collapse:collapse;font-size:12px;margin-top:12px;background:var(--dsw-alias-settings-card-fill,var(--dsw-alias-bg-layer-1,#fff));border:1px solid var(--dsw-alias-settings-card-stroke,var(--dsw-alias-border-l1,#e3e7ed));border-radius:var(--dsw-radius-lg,14px);overflow:hidden}
203
- .dmu-table th{ text-align:left;font-size:10.5px;font-weight:600;color:var(--dsw-alias-label-tertiary,#98a2b3);padding:9px 12px;border-bottom:1px solid var(--dsw-alias-border-l1,#e3e7ed)}
204
- .dmu-table td{padding:9px 12px;border-bottom:1px solid var(--dsw-alias-border-l1,#e3e7ed);color:var(--dsw-alias-label-primary,#191f28);font-variant-numeric:tabular-nums}
207
+ .dmu-chart .labels span{flex:1;text-align:center;font-size:10px;color:var(--dsw-alias-label-tertiary,#98a2b3);overflow:visible;white-space:nowrap}
208
+ .dmu-table{width:100%;border-collapse:collapse;font-size:13px;margin-top:16px}
209
+ .dmu-table th{text-align:left;font-size:12px;font-weight:500;color:var(--dsw-alias-label-secondary,#637182);padding:0 12px 8px;border-bottom:1px solid var(--dsw-alias-border-l1,#e3e7ed)}
210
+ .dmu-table td{height:44px;padding:0 12px;border-bottom:1px solid var(--dsw-alias-border-l1,#e3e7ed);color:var(--dsw-alias-label-primary,#191f28);font-variant-numeric:tabular-nums}
205
211
  .dmu-table tr:last-child td{border-bottom:none}
206
212
  .dmu-table .num{text-align:right;font-variant-numeric:tabular-nums}
207
213
  .dmu-table th.num{text-align:right}
@@ -1154,18 +1160,19 @@ window.__ModuleLoader__.load({
1154
1160
  h('div', { className: 'k' }, label),
1155
1161
  h('div', { className: 'v' }, value))
1156
1162
  const cmdStyle = {
1157
- flex: 1, fontSize: 11, fontFamily: 'var(--dsh-font-mono,monospace)',
1158
- background: 'var(--dsw-alias-bg-base,#f2f4f7)', padding: '8px 10px',
1159
- borderRadius: 8, wordBreak: 'break-all', whiteSpace: 'pre-wrap', margin: 0,
1163
+ flex: 1, fontSize: 12, fontFamily: 'var(--dsh-font-mono,monospace)',
1164
+ background: 'var(--dsw-alias-bg-base,#f2f4f7)', padding: '10px 12px',
1165
+ borderRadius: 10, wordBreak: 'break-all', whiteSpace: 'pre-wrap', margin: 0,
1160
1166
  }
1161
- const dotColor = info && info.updateAvailable ? 'var(--dsw-alias-state-warn-primary,#f79009)' : 'var(--dsw-alias-label-tertiary,#98a2b3)'
1162
- return h('span', { className: 'dmu-row', style: { gap: 8 } },
1163
- info && info.updateAvailable ? h('span', { style: { width: 6, height: 6, borderRadius: 999, background: dotColor } }) : null,
1164
- h('span', { style: { fontSize: 11, color: 'var(--dsw-alias-label-tertiary,#98a2b3)' } },
1165
- 'v' + ((info && info.current) || '—')),
1166
- h(P.Button, { variant: 'ghost', size: 'sm', onClick: check, disabled: busy },
1167
+ return [
1168
+ info && info.updateAvailable
1169
+ ? h('span', { key: 'dot', style: { width: 6, height: 6, borderRadius: 999, background: 'var(--dsw-alias-state-warn-primary,#f79009)' } })
1170
+ : null,
1171
+ h('span', { key: 'ver', className: 'ver' }, 'v' + ((info && info.current) || '—')),
1172
+ h(P.Button, { key: 'btn', variant: 'outline', size: 'sm', onClick: check, disabled: busy },
1167
1173
  busy ? tr('checkingUpdate') : tr('checkUpdate')),
1168
1174
  open && info && h(P.Modal, {
1175
+ key: 'modal',
1169
1176
  open: true,
1170
1177
  onClose: () => setOpen(false),
1171
1178
  title: tr('checkUpdate'),
@@ -1173,7 +1180,7 @@ window.__ModuleLoader__.load({
1173
1180
  footer: h('div', { className: 'dmu-row', style: { justifyContent: 'flex-end' } },
1174
1181
  h(P.Button, { variant: 'primary', size: 'sm', onClick: () => setOpen(false) }, tr('close'))),
1175
1182
  },
1176
- h('div', { style: { display: 'flex', flexDirection: 'column', gap: 10 } },
1183
+ h('div', { style: { display: 'flex', flexDirection: 'column', gap: 14 } },
1177
1184
  h('div', { className: 'dmu-row', style: { gap: 28 } },
1178
1185
  stat(tr('currentVersion'), info.current ? 'v' + info.current : '—'),
1179
1186
  stat(tr('latestVersion'), info.latest ? 'v' + info.latest : '—')),
@@ -1183,12 +1190,13 @@ window.__ModuleLoader__.load({
1183
1190
  ? h('div', { className: 'dmu-warnline', style: { margin: 0 } }, tr('updateAvailableHint', { v: 'v' + info.latest }))
1184
1191
  : h('div', { className: 'dmu-mutedline', style: { margin: 0 } }, tr('upToDate')),
1185
1192
  h('div', null,
1186
- h('div', { style: { fontSize: 11, color: 'var(--dsw-alias-label-tertiary,#98a2b3)', marginBottom: 4 } }, tr('manualUpdateTitle')),
1187
- h('div', { style: { fontSize: 11, color: 'var(--dsw-alias-label-secondary,#637182)', marginBottom: 6 } }, tr('manualUpdateNote')),
1188
- h('div', { style: { display: 'flex', gap: 8, alignItems: 'flex-start' } },
1193
+ h('div', { style: { fontSize: 13, fontWeight: 600, color: 'var(--dsw-alias-label-primary,#191f28)', marginBottom: 4 } }, tr('manualUpdateTitle')),
1194
+ h('div', { style: { fontSize: 12, color: 'var(--dsw-alias-label-secondary,#637182)', marginBottom: 8 } }, tr('manualUpdateNote')),
1195
+ h('div', { style: { display: 'flex', gap: 10, alignItems: 'flex-start' } },
1189
1196
  h('code', { style: cmdStyle }, info.command || ''),
1190
1197
  h(P.Button, { variant: 'outline', size: 'sm', onClick: copy },
1191
- copied ? tr('copied') : tr('copyCommand')))))))
1198
+ copied ? tr('copied') : tr('copyCommand')))))),
1199
+ ]
1192
1200
  }
1193
1201
 
1194
1202
  // ---------------------------------------------------------------- 入口 2:设置页
@@ -1202,9 +1210,9 @@ window.__ModuleLoader__.load({
1202
1210
  { value: 'log', label: tr('tabLog'), id: 'dmu-tab-log', panelId: 'dmu-panel-log' },
1203
1211
  ]
1204
1212
  return h('div', { className: 'dmu-settings' },
1205
- h('div', { className: 'dmu-row', style: { gap: 10, marginBottom: 10 } },
1206
- h('h2', { style: { margin: 0 } }, tr('nav')),
1207
- h('span', { style: { marginLeft: 'auto' } }, h(VersionBadge, { api, tr }))),
1213
+ h('div', { className: 'dmu-setrow' },
1214
+ h('div', null, h('div', { className: 'label' }, tr('versionLabel'))),
1215
+ h('div', { className: 'after' }, h(VersionBadge, { api, tr }))),
1208
1216
  h(P.SegmentedTabs, {
1209
1217
  items: tabs,
1210
1218
  value: tab,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ponydev/dsh-model-usage",
3
- "version": "1.2.0",
3
+ "version": "1.2.1",
4
4
  "description": "DSH Web 插件:实时显示模型供应商额度与用量(DeepSeek / GLM Coding Plan / OpenRouter / Kimi Coding Plan + 自定义适配器)",
5
5
  "keywords": [
6
6
  "dsh",