@deepseek-ai/dsh-client-ui-settings-general 0.1.7-alpha.1 → 0.1.7-alpha.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/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-settings-general/README.md
5
- README.md: 266fe837899f13d33e7a098b901cc34402da765e
6
- README.zh.md: 09570948b89089dda33d6705e4f17c7cd2f8481c
5
+ README.md: 36d3fd7b260f95cffb67977e5a6f37852bf195aa
6
+ README.zh.md: 9df8fe8bc3a39fceeccfc8b08a8e18cc5eeaf752
package/README.md CHANGED
@@ -31,7 +31,7 @@ Users reach the shell through the sidebar's bottom Settings control; feature plu
31
31
 
32
32
  When the section navigation exceeds the panel's available height, the list scrolls independently of the settings content and keeps the Settings title fixed.
33
33
 
34
- In Desktop, the account-row update control shows availability, progress, verification, readiness, and persistent retry feedback. The preload carries semantic phase, version, progress, and classified failures; the component resolves every visible and accessible string from the active `settings` locale, including after an in-application language change. Selecting an available update starts downloading; installation requires a separate shell-owned confirmation. A collapsed sidebar shows the same status as a dot on its top expand button. Connection feedback takes priority except during shell-reported installation, when the expected backend disconnect must not hide update status. Failure restores connection feedback. Both controls share one carrier subscription; browser code cannot choose packages or authorize installation. [Desktop updates](../../../apps/desktop/README.md) owns the release workflow.
34
+ In Desktop, the account-row update control shows availability, progress, verification, readiness, and persistent retry feedback. It shares the connection indicator’s 28px height, 13px corners, 14px icon slot, 4px icon gap, and 12px medium text with an 18px line height; update-state border, fill, and text colors remain independently defined. Retry text and its dot use the same brand blue as other update labels; numeric download progress has no ellipsis. The preload carries semantic phase, version, progress, and classified failures; the component resolves every visible and accessible string from the active `settings` locale, including after an in-application language change. Selecting an available update starts downloading; installation requires a separate shell-owned confirmation. A collapsed sidebar shows the same status as a brand-blue dot on its top expand button, including failures. Connection feedback takes priority except during shell-reported installation, when the expected backend disconnect must not hide update status. Failure restores connection feedback. Both controls share one carrier subscription; browser code cannot choose packages or authorize installation. [Desktop updates](../../../apps/desktop/README.md) owns the release workflow.
35
35
 
36
36
  ### The General section
37
37
 
package/README.zh.md CHANGED
@@ -31,7 +31,7 @@ kind: "package-reference"
31
31
 
32
32
  当分区导航超出面板可用高度时,列表独立于设置内容滚动,并保持「设置」标题固定。
33
33
 
34
- 在 Desktop 中,账户行更新控件显示可用版本、进度、验证、就绪和持久重试反馈。预加载仅传递语义化阶段、版本、进度和失败类别;组件从当前 `settings` locale 解析全部可见与无障碍文案,并在应用内语言变化后同步更新。选择可用更新即开始下载;安装需要独立的壳拥有的确认。侧栏收起时,其顶部展开按钮以圆点显示相同状态。连接反馈通常优先展示,但壳报告正在安装时,预期的后端断开不能遮盖更新状态;失败后恢复连接反馈。两个控件共用一次载体订阅;浏览器代码不能选择安装包或授权安装。[Desktop 更新](../../../apps/desktop/README.zh.md)负责发布流程。
34
+ 在 Desktop 中,账户行更新控件显示可用版本、进度、验证、就绪和持久重试反馈。它与连接指示器共用 28px 高度、13px 圆角、14px 图标占位、4px 图文间距,以及 12px 中等字重文字和 18px 行高;更新状态的边框、填充和文字颜色独立定义。重试文字及其圆点与其他更新文案使用相同的品牌蓝色;数字下载进度不带省略号。预加载仅传递语义化阶段、版本、进度和失败类别;组件从当前 `settings` locale 解析全部可见与无障碍文案,并在应用内语言变化后同步更新。选择可用更新即开始下载;安装需要独立的壳拥有的确认。侧栏收起时,其顶部展开按钮以品牌蓝色圆点显示相同状态,包括失败状态。连接反馈通常优先展示,但壳报告正在安装时,预期的后端断开不能遮盖更新状态;失败后恢复连接反馈。两个控件共用一次载体订阅;浏览器代码不能选择安装包或授权安装。[Desktop 更新](../../../apps/desktop/README.zh.md)负责发布流程。
35
35
 
36
36
  ### 「通用」分区
37
37
 
package/lib/client.js CHANGED
@@ -59,7 +59,7 @@ window.__ModuleLoader__.load({
59
59
  };
60
60
  //#endregion
61
61
  //#region \0dsh-css:/home/runner/work/deepseek-harness/deepseek-harness/packages/client/ui-settings-general/src/client/DesktopUpdateIndicator.module.css.mjs
62
- const css$5 = ".DOUpOa_indicator{border:1px solid color-mix(in srgb, var(--dsw-alias-brand-primary-new-colorprimary-new-color) 20%, transparent);color:var(--dsw-alias-brand-primary-new-colorprimary-new-color);background:color-mix(in srgb, var(--dsw-alias-brand-primary-new-colorprimary-new-color) 8%, transparent);font:inherit;white-space:nowrap;cursor:pointer;border-radius:6px;flex:none;align-items:center;gap:6px;margin-inline-end:4px;padding:1px 8px;font-size:12px;line-height:20px;display:inline-flex}.DOUpOa_indicator[data-error]{color:var(--dsw-alias-state-error-primary)}.DOUpOa_badge{inset-inline-end:2px;corner-shape:round;background:var(--dsw-alias-brand-primary-new-colorprimary-new-color);border-radius:50%;width:6px;height:6px;position:absolute;top:2px}.DOUpOa_badge[data-error],.DOUpOa_errorDot{background:var(--dsw-alias-state-error-primary)}.DOUpOa_errorDot{corner-shape:round;border-radius:50%;width:6px;height:6px}.DOUpOa_spinner{animation:1s linear infinite DOUpOa_spin}@keyframes DOUpOa_spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.DOUpOa_spinner{animation:none}}.DOUpOa_indicator[aria-disabled=true]{cursor:default}";
62
+ const css$5 = ".DOUpOa_indicator{box-sizing:border-box;border:1px solid color-mix(in srgb, var(--dsw-alias-brand-primary-new-colorprimary-new-color) 20%, transparent);height:28px;color:var(--dsw-alias-brand-primary-new-colorprimary-new-color);background:color-mix(in srgb, var(--dsw-alias-brand-primary-new-colorprimary-new-color) 8%, transparent);text-align:left;white-space:nowrap;cursor:pointer;border-radius:13px;flex:none;grid-template-columns:14px max-content;align-items:center;column-gap:4px;padding:0 8px;font-family:inherit;font-size:12px;font-weight:500;line-height:18px;display:inline-grid}.DOUpOa_icon{place-items:center;width:14px;height:14px;display:grid}.DOUpOa_badge{inset-inline-end:2px;corner-shape:round;background:var(--dsw-alias-brand-primary-new-colorprimary-new-color);border-radius:50%;width:6px;height:6px;position:absolute;top:2px}.DOUpOa_errorDot{corner-shape:round;background:currentColor;border-radius:50%;width:6px;height:6px}.DOUpOa_spinner{animation:1s linear infinite DOUpOa_spin}@keyframes DOUpOa_spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.DOUpOa_spinner{animation:none}}.DOUpOa_indicator[aria-disabled=true]{cursor:default}";
63
63
  const tagId$5 = "@deepseek-ai/dsh-client-ui-settings-general/DesktopUpdateIndicator.module.css";
64
64
  if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId$5) + "]") === null) {
65
65
  const tag = document.createElement("style");
@@ -71,6 +71,7 @@ window.__ModuleLoader__.load({
71
71
  var DesktopUpdateIndicator_module_css_default = {
72
72
  "badge": "DOUpOa_badge",
73
73
  "errorDot": "DOUpOa_errorDot",
74
+ "icon": "DOUpOa_icon",
74
75
  "indicator": "DOUpOa_indicator",
75
76
  "spin": "DOUpOa_spin",
76
77
  "spinner": "DOUpOa_spinner"
@@ -125,6 +126,7 @@ window.__ModuleLoader__.load({
125
126
  };
126
127
  }
127
128
  /**
129
+ * Render update status with connection-indicator geometry and brand-blue labels, including retries.
128
130
  * @param props - Connection priority, sidebar width, and localized bridge-failure copy.
129
131
  * @returns Desktop-only status beside the account button, or nothing in browsers.
130
132
  */
@@ -145,25 +147,25 @@ window.__ModuleLoader__.load({
145
147
  children: (0, react_jsx_runtime.jsxs)("button", {
146
148
  type: "button",
147
149
  className: DesktopUpdateIndicator_module_css_default.indicator,
148
- "data-error": error || void 0,
149
150
  "aria-label": label,
150
151
  "aria-disabled": busy,
151
152
  onClick: () => {
152
153
  if (!busy) onOpen();
153
154
  },
154
- children: [error ? (0, react_jsx_runtime.jsx)("span", {
155
- className: DesktopUpdateIndicator_module_css_default.errorDot,
156
- "aria-hidden": "true"
157
- }) : busy ? (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconLoadingOutlineRegular, {
158
- className: DesktopUpdateIndicator_module_css_default.spinner,
159
- size: 16
160
- }) : (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconDownloadOutlineRegular, { size: 14 }), (0, react_jsx_runtime.jsx)("span", { children: label })]
155
+ children: [(0, react_jsx_runtime.jsx)("span", {
156
+ className: DesktopUpdateIndicator_module_css_default.icon,
157
+ "aria-hidden": "true",
158
+ children: error ? (0, react_jsx_runtime.jsx)("span", { className: DesktopUpdateIndicator_module_css_default.errorDot }) : busy ? (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconLoadingOutlineRegular, {
159
+ className: DesktopUpdateIndicator_module_css_default.spinner,
160
+ size: 14
161
+ }) : (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconDownloadOutlineRegular, { size: 14 })
162
+ }), (0, react_jsx_runtime.jsx)("span", { children: label })]
161
163
  })
162
164
  });
163
165
  }
164
166
  /**
165
167
  * @param props - Framework-bound carrier and connection state.
166
- * @returns A non-interactive notification on the sidebar expand button.
168
+ * @returns A non-interactive brand-blue notification on the sidebar expand button.
167
169
  */
168
170
  function DesktopUpdateBadge({ useDesktopUpdate, useConnectionState, t }) {
169
171
  const { presentation: state, failed } = useDesktopUpdate((value) => value);
@@ -181,8 +183,7 @@ window.__ModuleLoader__.load({
181
183
  children: (0, react_jsx_runtime.jsx)("span", {
182
184
  role: "img",
183
185
  "aria-label": label,
184
- className: DesktopUpdateIndicator_module_css_default.badge,
185
- "data-error": failed || state?.phase === "error" || void 0
186
+ className: DesktopUpdateIndicator_module_css_default.badge
186
187
  })
187
188
  });
188
189
  }
@@ -626,7 +627,7 @@ window.__ModuleLoader__.load({
626
627
  function CurrentVersionRow({ t }) {
627
628
  return (0, react_jsx_runtime.jsx)("div", {
628
629
  className: CurrentVersionRow_module_css_default.row,
629
- children: t("general.currentVersion", { version: "0.1.7-alpha.1" })
630
+ children: t("general.currentVersion", { version: "0.1.7-alpha.2" })
630
631
  });
631
632
  }
632
633
  //#endregion
@@ -827,7 +828,7 @@ window.__ModuleLoader__.load({
827
828
  "trigger": "设置",
828
829
  "desktop.update.available": "新版本",
829
830
  "desktop.update.checking": "正在检查更新…",
830
- "desktop.update.progress": "{percent}%…",
831
+ "desktop.update.progress": "{percent}%",
831
832
  "desktop.update.verifying": "正在校验更新文件…",
832
833
  "desktop.update.installing": "正在准备重启…",
833
834
  "desktop.update.ready": "安装并重启",
@@ -863,7 +864,7 @@ window.__ModuleLoader__.load({
863
864
  "trigger": "Settings",
864
865
  "desktop.update.available": "Update",
865
866
  "desktop.update.checking": "Checking for updates…",
866
- "desktop.update.progress": "{percent}%…",
867
+ "desktop.update.progress": "{percent}%",
867
868
  "desktop.update.verifying": "Verifying update files…",
868
869
  "desktop.update.installing": "Preparing to restart…",
869
870
  "desktop.update.ready": "Install and Restart",
@@ -3,6 +3,7 @@ import type { DesktopUpdateView } from '../types.ts';
3
3
  import type { SettingsRootInjected } from './shell-contract.ts';
4
4
  type SettingsTranslate = PropsLocale<'settings'>['t'];
5
5
  /**
6
+ * Render update status with connection-indicator geometry and brand-blue labels, including retries.
6
7
  * @param props - Connection priority, sidebar width, and localized bridge-failure copy.
7
8
  * @returns Desktop-only status beside the account button, or nothing in browsers.
8
9
  */
@@ -16,7 +17,7 @@ export declare function DesktopUpdateIndicator({ wide, hidden, t, view, onOpen }
16
17
  type BadgeProps = PropsRuntime<'sidebar.toggle.badge'> & PropsLocale<'settings'> & Pick<InjectFace<SettingsRootInjected>, 'useDesktopUpdate' | 'useConnectionState'>;
17
18
  /**
18
19
  * @param props - Framework-bound carrier and connection state.
19
- * @returns A non-interactive notification on the sidebar expand button.
20
+ * @returns A non-interactive brand-blue notification on the sidebar expand button.
20
21
  */
21
22
  export declare function DesktopUpdateBadge({ useDesktopUpdate, useConnectionState, t }: BadgeProps): import("react").JSX.Element | null;
22
23
  export {};
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@deepseek-ai/dsh-client-ui-settings-general",
3
3
  "description": "Settings ownerless-copy and product onboarding plugin: the General section, shell trigger/header chrome content, settings dictionaries, and the versioned welcome notice",
4
- "version": "0.1.7-alpha.1",
4
+ "version": "0.1.7-alpha.2",
5
5
  "publishConfig": {
6
6
  "access": "public"
7
7
  },
@@ -42,29 +42,29 @@
42
42
  },
43
43
  "license": "MIT",
44
44
  "dependencies": {
45
- "@deepseek-ai/schemastery": "^3.18.3"
45
+ "@deepseek-ai/schemastery": "~3.18.4"
46
46
  },
47
47
  "peerDependencies": {
48
- "@deepseek-ai/cordis": "^4.0.3"
48
+ "@deepseek-ai/cordis": "~4.0.4"
49
49
  },
50
50
  "devDependencies": {
51
51
  "@types/react": "~18.3.1",
52
52
  "clsx": "^2.0.0",
53
53
  "react": "^18.2.0",
54
- "@deepseek-ai/cordis": "^4.0.3",
55
- "@deepseek-ai/dsh-api-remotes": "^0.1.7-alpha.1",
56
- "@deepseek-ai/dsh-client-connection": "^0.1.7-alpha.1",
57
- "@deepseek-ai/dsh-client-locale": "^0.1.7-alpha.1",
58
- "@deepseek-ai/dsh-client-store": "^0.1.7-alpha.1",
59
- "@deepseek-ai/dsh-client-test-runtime": "^0.1.7-alpha.1",
60
- "@deepseek-ai/dsh-client-ui-primitives": "^0.1.7-alpha.1",
61
- "@deepseek-ai/dsh-client-ui-renderer": "^0.1.7-alpha.1",
62
- "@deepseek-ai/dsh-client-ui-settings": "^0.1.7-alpha.1",
63
- "@deepseek-ai/dsh-client-ui-session": "^0.1.7-alpha.1",
64
- "@deepseek-ai/dsh-client-ui-sidebar": "^0.1.7-alpha.1",
65
- "@deepseek-ai/dsh-client-ui-slots": "^0.1.7-alpha.1",
66
- "@deepseek-ai/dsh-remote-mock": "^0.1.7-alpha.1",
67
- "@deepseek-ai/dsh-settings": "^0.1.7-alpha.1"
54
+ "@deepseek-ai/cordis": "~4.0.4",
55
+ "@deepseek-ai/dsh-api-remotes": "0.1.7-alpha.2",
56
+ "@deepseek-ai/dsh-client-connection": "0.1.7-alpha.2",
57
+ "@deepseek-ai/dsh-client-locale": "0.1.7-alpha.2",
58
+ "@deepseek-ai/dsh-client-store": "0.1.7-alpha.2",
59
+ "@deepseek-ai/dsh-client-test-runtime": "0.1.7-alpha.2",
60
+ "@deepseek-ai/dsh-client-ui-primitives": "0.1.7-alpha.2",
61
+ "@deepseek-ai/dsh-client-ui-renderer": "0.1.7-alpha.2",
62
+ "@deepseek-ai/dsh-client-ui-session": "0.1.7-alpha.2",
63
+ "@deepseek-ai/dsh-client-ui-settings": "0.1.7-alpha.2",
64
+ "@deepseek-ai/dsh-client-ui-sidebar": "0.1.7-alpha.2",
65
+ "@deepseek-ai/dsh-client-ui-slots": "0.1.7-alpha.2",
66
+ "@deepseek-ai/dsh-remote-mock": "0.1.7-alpha.2",
67
+ "@deepseek-ai/dsh-settings": "0.1.7-alpha.2"
68
68
  },
69
69
  "files": [
70
70
  "lib/index.js",