dsh-calendar 0.14.4 → 0.14.5

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,13 @@
1
1
  # 更新记录
2
2
 
3
+ ## 0.14.5 (2026-11-04)
4
+
5
+ - 同步共享界面:嵌入设置时继承宿主底色,输入框跟随主题,空状态保持可读宽度;新版 DSH 可显示插件设置图标。
6
+ - Align embedded surfaces, themed inputs, readable empty states and optional native settings icons.
7
+ - 修复中文及 Unicode CalDAV 账号的 UTF-8 Basic 认证。
8
+ - Fix UTF-8 Basic authentication for Chinese and Unicode CalDAV credentials.
9
+
10
+
3
11
  ## 0.14.4 (2026-11-03)
4
12
 
5
13
  - 未配置首屏复用 Empty;月历 42 格补可及名与 aria-current;空范围/失败区分;未连接按钮打开连接设置;浮层补齐共享样式。
package/docs/WORKBENCH.md CHANGED
@@ -27,3 +27,9 @@ Edit the template sources and run pnpm run build. Commit generated lib/client.js
27
27
  邮件使用受控 AgentMail HTTP 服务,日历使用受控 CalDAV 协议传输;插件处理器、存储、校验和原生宿主均实际运行。未使用真实邮箱、真实日历账号或付费模型。RSS 访问 Node.js 官方公开来源。PPT 实际生成并渲染 PPTX、下载 ZIP;两个视频插件实际运行官方引擎并播放 MP4。
28
28
 
29
29
  这些是 Web 共用界面的验收结果,不代表已验收 Electron 专属菜单、系统权限、真实账号、全部外部来源或所有可选模型/引擎。Docker、Slack、钉钉继续按用户约定搁置。
30
+
31
+ ## 中文账号 / Unicode accounts
32
+
33
+ Basic 认证现以 UTF-8 编码账号和密码,中文账号不再被本地 Latin-1 编码器拒绝。服务端仍须支持该账号及 UTF-8 凭据。OAuth 路径保持独立;遇到 401 请核对服务商要求的账号格式与授权。
34
+
35
+ Basic credentials use UTF-8, avoiding local Latin-1 encoding failures for Unicode names. The server must still accept the account and encoding. OAuth is unaffected.
package/lib/caldav.js CHANGED
@@ -68,10 +68,14 @@ export class CalendarService {
68
68
  const oauth = this.config.oauth;
69
69
  this.clientPromise = createDAVClient({
70
70
  serverUrl: this.config.caldavUrl,
71
- credentials: oauth === undefined ? { username: this.config.username, password: this.config.password } : {},
71
+ credentials: {},
72
72
  // createDAVClient 的 Oauth 分支只在初始化时取头;改由 fetch 在每次请求时检查过期。
73
- authMethod: oauth === undefined ? 'Basic' : 'Custom',
74
- ...(oauth === undefined ? {} : { authFunction: async () => ({}) }),
73
+ // tsdav's Basic encoder only accepts Latin-1. Encode our explicit
74
+ // credentials as UTF-8 so Chinese CalDAV account names work too.
75
+ authMethod: 'Custom',
76
+ authFunction: async () => oauth === undefined
77
+ ? { authorization: 'Basic ' + Buffer.from(this.config.username + ':' + this.config.password, 'utf8').toString('base64') }
78
+ : {},
75
79
  fetch: oauth === undefined ? transport : createOAuthFetch(oauth, transport, this.config.caldavUrl),
76
80
  });
77
81
  }
package/lib/client.js CHANGED
@@ -55,7 +55,7 @@ function createWorkbenchUI(React) {
55
55
  }
56
56
  function Page({ title, subtitle, actions, children, workbench = false, className, rootRef, ...props }) {
57
57
  return h('section', { ...props, ref: rootRef, className: cx('dshw', 'w-page', className), 'data-main': workbench ? 'true' : 'false' },
58
- h('style', null, styles),
58
+ h(Styles, { key: 'styles' }),
59
59
  h('header', { className: 'w-page-header' }, h('div', { className: 'w-heading' }, h('h1', null, title), subtitle ? h('p', { className: 'w-subtitle' }, subtitle) : null), actions ? h('div', { className: 'w-header-actions' }, actions) : null),
60
60
  h('div', { className: 'w-body' }, children));
61
61
  }
@@ -78,10 +78,10 @@ function createWorkbenchUI(React) {
78
78
  }
79
79
  function Status({ children, tone = 'info', className }) {
80
80
  if (!children) return null;
81
- return h('div', { className: cx('w-status', 'w-status-' + tone, className), role: tone === 'error' ? 'alert' : 'status', 'aria-live': tone === 'error' ? 'assertive' : 'polite' }, h(Icon, { name: tone === 'success' ? 'check' : 'info', size: 18 }), h('div', null, children));
81
+ return h('div', { className: cx('dshw', 'w-status', 'w-status-' + tone, className), role: tone === 'error' ? 'alert' : 'status', 'aria-live': tone === 'error' ? 'assertive' : 'polite' }, h(Icon, { name: tone === 'success' ? 'check' : 'info', size: 18 }), h('div', null, children));
82
82
  }
83
83
  function Empty({ title, children, action, icon = 'file' }) {
84
- return h('div', { className: 'w-empty' }, h(Icon, { name: icon, size: 32 }), h('h2', null, title), children ? h('div', { className: 'w-muted' }, children) : null, action ? h('div', { className: 'w-toolbar' }, action) : null);
84
+ return h('div', { className: 'dshw w-empty' }, h(Styles, { key: 'styles' }), h(Icon, { name: icon, size: 32 }), h('h2', null, title), children ? h('div', { className: 'w-muted' }, children) : null, action ? h('div', { className: 'w-toolbar' }, action) : null);
85
85
  }
86
86
  function Split({ list, detail, selected, onBack, backLabel, className, listWidth = 360 }) {
87
87
  const ref = useRef(null);
@@ -125,7 +125,8 @@ function createWorkbenchUI(React) {
125
125
  else if (event.shiftKey && document.activeElement === first) { event.preventDefault(); last.focus(); }
126
126
  else if (!event.shiftKey && document.activeElement === last) { event.preventDefault(); first.focus(); }
127
127
  }
128
- return h('div', { className: 'w-overlay', onClick: event => { if (!busy && event.target === event.currentTarget) onClose(); } },
128
+ return h('div', { className: 'dshw w-overlay', onClick: event => { if (!busy && event.target === event.currentTarget) onClose(); } },
129
+ h(Styles, { key: 'styles' }),
129
130
  h('section', { ref: panel, className: cx('w-dialog', className), role: 'dialog', 'aria-modal': true, 'aria-labelledby': id, tabIndex: -1, onKeyDown: keydown },
130
131
  h('header', { className: 'w-dialog-header' }, h('h2', { id }, title), h(IconButton, { icon: 'close', label: closeLabel, disabled: busy, onClick: onClose })), h('div', { className: 'w-dialog-body' }, children)));
131
132
  }
@@ -136,10 +137,10 @@ function createWorkbenchUI(React) {
136
137
  ctx.slots.inject('sidebar.panellist', () => ctx.slots.register({ name: 'sidebar.panellist', id, order, label }, function WorkbenchIcon({ size }) { return h(Icon, { name: icon, size }); }));
137
138
  }
138
139
  const styles = `
139
- .dshw{--w-bg:var(--dsw-alias-bg-layer-1,#fff);--w-soft:var(--dsw-alias-bg-layer-2,#f7f8fa);--w-text:var(--dsw-alias-label-primary,#18202c);--w-muted:var(--dsw-alias-label-secondary,#667085);--w-border:var(--dsw-alias-border-l3,#e7e9ef);--w-accent:var(--dsh-plugin-workbench-accent,#4f6bdb);--w-selected:color-mix(in srgb,var(--w-accent) 10%,var(--w-bg));--w-primary:var(--w-text);--w-on-primary:var(--w-bg);container-type:inline-size;container-name:dsh-workbench;color:var(--w-text);background:var(--w-bg);font:14px/1.65 var(--dsh-font-family-content,system-ui,-apple-system,"Segoe UI","Microsoft YaHei",sans-serif);min-width:0;max-width:100%;box-sizing:border-box;text-align:start;color-scheme:inherit}
140
- .dshw *,.dshw *:before,.dshw *:after{box-sizing:border-box}.dshw h1,.dshw h2,.dshw h3,.dshw h4,.dshw p{margin:0}.dshw h1{font-size:30px;line-height:1.25;letter-spacing:-.025em;font-weight:650}.dshw h2{font-size:24px;line-height:1.35;font-weight:650;letter-spacing:-.015em;overflow-wrap:anywhere}.dshw h3,.dshw h4{font-size:16px;line-height:1.4;font-weight:600}.dshw a{color:var(--w-accent);text-underline-offset:3px;overflow-wrap:anywhere}.dshw button,.dshw input,.dshw select,.dshw textarea{font:inherit;color:inherit;max-width:100%}.dshw input:not([type=checkbox]):not([type=radio]):not([type=file]),.dshw select,.dshw textarea{background:var(--w-bg);border:1px solid var(--w-border);border-radius:8px;padding:8px 11px;min-width:0;line-height:1.5}.dshw input:not([type=checkbox]):not([type=radio]):not([type=file]),.dshw select{min-height:38px}.dshw textarea{resize:vertical}.dshw input[type=checkbox],.dshw input[type=radio]{width:16px;height:16px;flex-shrink:0;accent-color:var(--w-accent)}.dshw :focus-visible{outline:2px solid var(--w-accent);outline-offset:3px}.dshw button:disabled,.dshw input:disabled,.dshw select:disabled,.dshw textarea:disabled{opacity:.5;cursor:not-allowed}.dshw label{font-size:13px}.dshw fieldset{min-width:0;border:1px solid var(--w-border);border-radius:8px}.dshw summary{cursor:pointer;font-weight:550;list-style:none;display:flex;align-items:center;gap:8px}.dshw summary::-webkit-details-marker{display:none}.dshw summary:after{content:'';display:block;margin-inline-start:auto;width:7px;height:7px;border-inline-end:1.75px solid currentColor;border-bottom:1.75px solid currentColor;transform:rotate(45deg);flex-shrink:0}.dshw details[open]>summary:after{transform:rotate(225deg)}.dshw details>summary+*{margin-top:12px}.dshw pre{white-space:pre-wrap;overflow-wrap:anywhere;font:12px/1.7 ui-monospace,SFMono-Regular,Consolas,monospace;max-width:100%;background:var(--w-soft);border-radius:6px;padding:14px}.dshw img,.dshw video,.dshw iframe{max-width:100%}
141
- .w-page{display:flex;flex-direction:column;position:relative;padding:0;min-height:540px;gap:0}.w-page[data-main=true]{height:100%;min-height:0;padding:calc(24px + var(--dsh-frame-top-clearance,0px)) 28px 0 max(28px,var(--dsh-frame-leading-clearance,0px));overflow:auto}.w-page-header{display:flex;justify-content:space-between;gap:24px;align-items:flex-start;padding-bottom:22px;flex-shrink:0}.w-heading{min-width:0}.w-subtitle{margin-top:8px!important;font-size:14px;color:var(--w-muted);line-height:1.6}.w-header-actions,.w-toolbar,.w-actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px;min-width:0}.w-header-actions{justify-content:flex-end}.w-body,.w-tabs-layout{display:flex;flex-direction:column;flex:1;min-height:0;min-width:0}.w-body{overflow:auto}.w-tab-panel{flex:1;min-width:0;min-height:0;display:flex;flex-direction:column;overflow:auto}.w-tabs{display:flex;align-items:stretch;gap:20px;border-bottom:1px solid var(--w-border);flex-shrink:0;overflow-x:auto;scrollbar-width:thin}.dshw .w-tabs>button{border:0;border-bottom:2px solid transparent;background:transparent;padding:11px 8px 13px;white-space:nowrap;font-size:14px;font-weight:550;cursor:pointer;color:var(--w-muted);display:flex;align-items:center;gap:7px}.dshw .w-tabs>button[aria-selected=true]{border-bottom-color:var(--w-accent);color:var(--w-accent)}.w-count,.w-tag{font-size:12px;line-height:1.5;display:inline-flex;align-items:center;flex-shrink:0;background:var(--w-soft);border-radius:5px;padding:1px 6px;color:var(--w-muted)}.w-tabs [aria-selected=true] .w-count,.w-selected .w-tag{color:var(--w-accent);background:var(--w-selected)}
142
- .dshw .w-button{display:inline-flex;justify-content:center;align-items:center;gap:7px;background:var(--w-bg);border:1px solid var(--w-border);border-radius:8px;padding:8px 12px;min-height:36px;line-height:1.4;font-size:14px;font-weight:500;cursor:pointer;text-decoration:none;white-space:normal}.dshw .w-button:not(:disabled):hover{background:var(--w-soft)}.dshw .w-primary{background:var(--w-primary);border-color:var(--w-primary);color:var(--w-on-primary)}.dshw .w-primary:not(:disabled):hover{background:var(--w-primary);opacity:.9}.dshw .w-ghost{background:transparent;border-color:transparent}.dshw .w-danger{color:var(--dsw-alias-state-error-primary,#b43c3c)}.dshw .w-icon-button{width:36px;min-width:36px;padding:8px}.dshw .w-button svg{flex-shrink:0}.w-muted{color:var(--w-muted);font-size:12px;line-height:1.6}.w-section{padding:24px 0;border-bottom:1px solid var(--w-border);min-width:0}.w-section>h3{margin-bottom:12px}.w-section>p+p{margin-top:8px}.w-fields{display:grid;gap:16px;min-width:0}.w-field{display:grid;gap:6px;min-width:0}.w-field>input,.w-field>select,.w-field>textarea{width:100%}.w-status{display:flex;align-items:flex-start;gap:8px;padding:11px 13px;margin:12px 0;border:1px solid var(--w-border);border-radius:8px;background:var(--w-soft);font-size:13px;overflow-wrap:anywhere;flex-shrink:0}.w-status>svg{flex-shrink:0;margin-top:2px}.w-status-error{color:var(--dsw-alias-state-error-primary,#ad3636)}.w-status-success{color:var(--dsw-alias-state-success-primary,#24794a)}.w-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:14px;max-width:580px;padding:48px 24px;margin:auto;min-height:280px;overflow-wrap:anywhere}.w-empty>svg{color:var(--w-muted)}.w-empty h2{font-size:20px}.w-empty .w-muted{font-size:14px}.w-empty .w-toolbar{justify-content:center}
140
+ .dshw{--w-bg:var(--dsw-alias-bg-layer-1,#fff);--w-soft:var(--dsw-alias-bg-layer-2,#f7f8fa);--w-text:var(--dsw-alias-label-primary,#18202c);--w-muted:var(--dsw-alias-label-secondary,#667085);--w-border:var(--dsw-alias-border-l3,#e7e9ef);--w-accent:var(--dsh-plugin-workbench-accent,#4f6bdb);--w-selected:color-mix(in srgb,var(--w-accent) 10%,var(--w-bg));--w-primary:var(--w-text);--w-on-primary:var(--w-bg);container-type:inline-size;container-name:dsh-workbench;color:var(--w-text);font:14px/1.65 var(--dsh-font-family-content,system-ui,-apple-system,"Segoe UI","Microsoft YaHei",sans-serif);min-width:0;max-width:100%;box-sizing:border-box;text-align:start;color-scheme:inherit}
141
+ .dshw *,.dshw *:before,.dshw *:after{box-sizing:border-box}.dshw h1,.dshw h2,.dshw h3,.dshw h4,.dshw p{margin:0}.dshw h1{font-size:30px;line-height:1.25;letter-spacing:-.025em;font-weight:650}.dshw h2{font-size:24px;line-height:1.35;font-weight:650;letter-spacing:-.015em;overflow-wrap:anywhere}.dshw h3,.dshw h4{font-size:16px;line-height:1.4;font-weight:600}.dshw a{color:var(--w-accent);text-underline-offset:3px;overflow-wrap:anywhere}.dshw button,.dshw input,.dshw select,.dshw textarea{font:inherit;color:inherit;max-width:100%}.dshw input:not([type=checkbox]):not([type=radio]):not([type=file]),.dshw select,.dshw textarea{background:var(--dsw-specific-input-major,var(--w-bg));border:1px solid var(--w-border);border-radius:8px;padding:8px 11px;min-width:0;line-height:1.5}.dshw input:not([type=checkbox]):not([type=radio]):not([type=file]),.dshw select{min-height:38px}.dshw textarea{resize:vertical}.dshw input[type=checkbox],.dshw input[type=radio]{width:16px;height:16px;flex-shrink:0;accent-color:var(--w-accent)}.dshw :focus-visible{outline:2px solid var(--w-accent);outline-offset:3px}.dshw button:disabled,.dshw input:disabled,.dshw select:disabled,.dshw textarea:disabled{opacity:.5;cursor:not-allowed}.dshw label{font-size:13px}.dshw fieldset{min-width:0;border:1px solid var(--w-border);border-radius:8px}.dshw summary{cursor:pointer;font-weight:550;list-style:none;display:flex;align-items:center;gap:8px}.dshw summary::-webkit-details-marker{display:none}.dshw summary:after{content:'';display:block;margin-inline-start:auto;width:7px;height:7px;border-inline-end:1.75px solid currentColor;border-bottom:1.75px solid currentColor;transform:rotate(45deg);flex-shrink:0}.dshw details[open]>summary:after{transform:rotate(225deg)}.dshw details>summary+*{margin-top:12px}.dshw pre{white-space:pre-wrap;overflow-wrap:anywhere;font:12px/1.7 ui-monospace,SFMono-Regular,Consolas,monospace;max-width:100%;background:var(--w-soft);border-radius:6px;padding:14px}.dshw img,.dshw video,.dshw iframe{max-width:100%}
142
+ .w-page{display:flex;flex-direction:column;position:relative;padding:0;min-height:540px;gap:0}.w-page[data-main=true]{height:100%;min-height:0;padding:calc(24px + var(--dsh-frame-top-clearance,0px)) 28px 0 max(28px,var(--dsh-frame-leading-clearance,0px));overflow:auto}.dshw[data-main=true]{background:var(--w-bg)}.dshw.w-page,.dshw .w-body,.dshw .w-tab-panel{overflow-x:clip}.w-page-header{display:flex;justify-content:space-between;gap:24px;align-items:flex-start;padding-bottom:22px;flex-shrink:0}.w-heading{min-width:0}.w-subtitle{margin-top:8px!important;font-size:14px;color:var(--w-muted);line-height:1.6}.w-header-actions,.w-toolbar,.w-actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px;min-width:0}.w-header-actions{justify-content:flex-end}.w-body,.w-tabs-layout{display:flex;flex-direction:column;flex:1;min-height:0;min-width:0}.w-body{overflow:auto}.w-tab-panel{flex:1;min-width:0;min-height:0;display:flex;flex-direction:column;overflow:auto}.w-tabs{display:flex;align-items:stretch;gap:20px;border-bottom:1px solid var(--w-border);flex-shrink:0;overflow-x:auto;scrollbar-width:thin}.dshw .w-tabs>button{border:0;border-bottom:2px solid transparent;background:transparent;padding:11px 8px 13px;white-space:nowrap;font-size:14px;font-weight:550;cursor:pointer;color:var(--w-muted);display:flex;align-items:center;gap:7px}.dshw .w-tabs>button[aria-selected=true]{border-bottom-color:var(--w-accent);color:var(--w-accent)}.w-count,.w-tag{font-size:12px;line-height:1.5;display:inline-flex;align-items:center;flex-shrink:0;background:var(--w-soft);border-radius:5px;padding:1px 6px;color:var(--w-muted)}.w-tabs [aria-selected=true] .w-count,.w-selected .w-tag{color:var(--w-accent);background:var(--w-selected)}
143
+ .dshw .w-button{display:inline-flex;justify-content:center;align-items:center;gap:7px;background:var(--w-bg);border:1px solid var(--w-border);border-radius:8px;padding:8px 12px;min-height:36px;line-height:1.4;font-size:14px;font-weight:500;cursor:pointer;text-decoration:none;white-space:normal}.dshw .w-button:not(:disabled):hover{background:var(--w-soft)}.dshw .w-primary{background:var(--w-primary);border-color:var(--w-primary);color:var(--w-on-primary)}.dshw .w-primary:not(:disabled):hover{background:var(--w-primary);opacity:.9}.dshw .w-ghost{background:transparent;border-color:transparent}.dshw .w-danger{color:var(--dsw-alias-state-error-primary,#b43c3c)}.dshw .w-icon-button{width:36px;min-width:36px;padding:8px}.dshw .w-button svg{flex-shrink:0}.w-muted{color:var(--w-muted);font-size:12px;line-height:1.6}.w-section{padding:24px 0;border-bottom:1px solid var(--w-border);min-width:0}.w-section>h3{margin-bottom:12px}.w-section>p+p{margin-top:8px}.w-fields{display:grid;gap:16px;min-width:0}.w-field{display:grid;gap:6px;min-width:0}.w-field>input,.w-field>select,.w-field>textarea{width:100%}.w-status{display:flex;align-items:flex-start;gap:8px;padding:11px 13px;margin:12px 0;border:1px solid var(--w-border);border-radius:8px;background:var(--w-soft);font-size:13px;overflow-wrap:anywhere;flex-shrink:0}.w-status>svg{flex-shrink:0;margin-top:2px}.w-status-error{color:var(--dsw-alias-state-error-primary,#ad3636)}.w-status-success{color:var(--dsw-alias-state-success-primary,#24794a)}.w-status-warn{color:var(--dsw-alias-state-warning-primary,#8a5a00)}.w-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:14px;width:100%;max-width:580px;padding:48px 24px;margin:auto;min-height:280px;overflow-wrap:anywhere}.w-empty>svg{color:var(--w-muted)}.w-empty h2{font-size:20px}.w-empty .w-muted{font-size:14px}.w-empty .w-toolbar{justify-content:center}
143
144
  .w-split{display:grid;grid-template-columns:minmax(240px,var(--w-list-width)) minmax(0,1fr);min-height:460px;flex:1;min-width:0}.w-master{min-width:0;border-inline-end:1px solid var(--w-border);overflow:auto;padding-bottom:24px}.w-detail{min-width:0;padding:26px 28px;overflow:auto;overflow-wrap:anywhere;display:flex;flex-direction:column}.w-master-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:20px 16px}.w-search{display:flex;align-items:center;gap:8px;border:1px solid var(--w-border);border-radius:8px;padding:0 10px;min-width:0;flex:1;background:var(--w-bg)}.w-search>svg{color:var(--w-muted);flex-shrink:0}.dshw .w-search>input{border:0!important;background:transparent!important;padding:8px 0!important;width:100%;outline-offset:0}.w-row{display:flex;gap:0;min-width:0;position:relative;border-bottom:1px solid var(--w-border);border-inline-start:3px solid transparent}.w-row-select{display:flex;align-items:flex-start;padding:21px 0 0 14px}.dshw .w-row-button{display:flex;flex-direction:column;align-items:stretch;gap:7px;text-align:start;width:100%;padding:18px 18px 18px 16px;border:0;background:transparent;color:inherit;min-width:0;cursor:pointer;line-height:1.5}.dshw .w-row-button:hover{background:var(--w-soft)}.w-row-head{display:flex;align-items:flex-start;gap:10px;justify-content:space-between;min-width:0}.w-row-head>strong{font-size:14px;line-height:1.5;font-weight:600;overflow-wrap:anywhere}.w-row-meta,.w-row-description{color:var(--w-muted);font-size:12px;line-height:1.6;overflow-wrap:anywhere}.w-row-description{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.w-selected{background:var(--w-selected);border-inline-start-color:var(--w-accent)}.w-back{display:none!important}.w-detail-title{margin-bottom:12px!important}.w-detail-meta{color:var(--w-muted);font-size:13px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.w-detail-footer{padding:24px 0;display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:auto;border-top:1px solid var(--w-border)}.w-detail-footer .w-muted{flex:1;min-width:160px}.w-definition{display:grid;grid-template-columns:minmax(80px,120px) minmax(0,1fr);gap:8px 16px;font-size:14px;margin:20px 0}.w-definition dt{color:var(--w-muted)}.w-definition dd{margin:0;min-width:0;overflow-wrap:anywhere}
144
145
  .w-switch-label{display:inline-flex;align-items:center;gap:8px;font-size:13px;position:relative;cursor:pointer}.w-switch-label>input{position:absolute;opacity:0;inset-inline-end:0;width:36px!important;height:22px!important;margin:0;cursor:pointer}.w-switch-track{width:36px;height:22px;border-radius:12px;display:block;background:var(--w-border);border:1px solid var(--w-border);pointer-events:none;padding:2px;transition:background .15s}.w-switch-track:before{content:'';display:block;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 2px #0002;transition:transform .15s}.w-switch-label>input:checked+.w-switch-track{background:var(--w-accent);border-color:var(--w-accent)}.w-switch-label>input:checked+.w-switch-track:before{transform:translateX(14px)}.w-switch-label>input:focus-visible+.w-switch-track{outline:2px solid var(--w-accent);outline-offset:3px}.w-switch-label:has(>input:disabled){opacity:.5;cursor:not-allowed}
145
146
  .w-overlay{position:fixed;inset:0;background:#0005;display:flex;justify-content:flex-end;z-index:1000;padding:12px;overflow:auto}.w-dialog{width:min(620px,100%);max-height:100%;display:flex;flex-direction:column;min-height:0;background:var(--w-bg);color:var(--w-text);border:1px solid var(--w-border);border-radius:12px;box-shadow:0 18px 70px #0003}.w-dialog-header{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:20px 24px;border-bottom:1px solid var(--w-border);flex-shrink:0}.w-dialog-header>h2{font-size:20px}.w-dialog-body{overflow:auto;padding:20px 24px;min-height:0}.w-editor-grid{display:grid;grid-template-columns:210px minmax(0,1fr) 300px;min-height:500px;flex:1}.w-editor-list{padding:20px 12px;border-inline-end:1px solid var(--w-border);min-width:0}.w-editor-canvas{background:var(--w-soft);padding:20px;min-width:0;display:flex;flex-direction:column;gap:14px}.w-editor-inspector{padding:24px;border-inline-start:1px solid var(--w-border);min-width:0;overflow:auto}.w-editor-inspector h3{margin-bottom:18px}.w-preview-empty{display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;gap:12px;aspect-ratio:16/9;min-height:180px;background:var(--w-soft);border:1px solid var(--w-border);border-radius:8px;padding:24px;color:var(--w-muted)}.w-content-pad{padding:24px 0}.w-stack{display:flex;flex-direction:column;gap:16px;min-width:0}.w-scroll-x{overflow:auto;max-width:100%}
@@ -148,7 +149,8 @@ function createWorkbenchUI(React) {
148
149
  @media(max-width:700px){.w-page[data-main=true]{padding:calc(16px + var(--dsh-frame-top-clearance,0px)) 16px 0 max(16px,var(--dsh-frame-leading-clearance,0px))}.w-overlay{padding:8px}.w-dialog{width:100%}}
149
150
  @media(prefers-reduced-motion:reduce){.dshw *,.dshw *:before{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
150
151
  `;
151
- return { Icon, Button, IconButton, Page, Tabs, Status, Empty, Split, Row, Search, Switch, Dialog, register, styles };
152
+ function Styles() { return h('style', null, styles); }
153
+ return { Icon, Button, IconButton, Page, Tabs, Status, Empty, Split, Row, Search, Switch, Dialog, Styles, register, styles };
152
154
  }
153
155
 
154
156
  /* One update control per plugin. Only transport, idle guards and installation
@@ -228,6 +230,13 @@ function __stardustUpdatesWrap(definition, participant) {
228
230
  const React = require('react');
229
231
  return { ...original, apply(ctx, ...args) {
230
232
  const result = original.apply?.call(this, ctx, ...args);
233
+ // The optional alpha.3 slot stays dormant in older hosts; its scoped
234
+ // injection unregisters naturally when the plugin is unloaded.
235
+ if (participant.iconData && participant.sectionIds?.length && typeof ctx.inject === 'function') ctx.inject(['slots'], host => {
236
+ for (const id of new Set(participant.sectionIds)) host.slots.inject('settings.section.icon', () => host.slots.register({ name: 'settings.section.icon', id }, function PluginSettingsIcon({ size = 20 }) {
237
+ return React.createElement('img', { src: participant.iconData, alt: '', 'aria-hidden': true, width: size, height: size, style: { objectFit: 'contain', display: 'block', flexShrink: 0 } });
238
+ }));
239
+ });
231
240
  if (typeof ctx.inject === 'function') ctx.inject(['slots', 'locale', 'remote', 'remote.pluginManager'], host => __stardustUpdatesJoin(host, React, require, participant));
232
241
  return result;
233
242
  } };
@@ -333,6 +342,16 @@ function __stardustUpdatesClient(ctx, React, require, shared) {
333
342
  'owner-required': t('只有 profile 拥有者能管理更新。', 'Only the profile owner can manage updates.'),
334
343
  })[code] || t('操作未完成,请刷新后重试。DSH 不会因此自动重启。', 'The operation could not be completed. Refresh and retry. DSH will not restart automatically.');
335
344
  }
345
+ // releaseOf() keeps the failing engine/peer range check as a stable code; say which
346
+ // environment has to change instead of only reporting that the release is incompatible.
347
+ function requirement(release) {
348
+ return ({
349
+ 'dsh-version': t('需要换成与该版本匹配的 DSH 本体', 'it needs a different DSH version'),
350
+ 'node-version': t('需要换成与该版本匹配的 Node.js', 'it needs a different Node.js version'),
351
+ deprecated: t('作者已把这个版本标记为弃用', 'the author marked this release as deprecated'),
352
+ 'not-bundle': t('这个版本不是可加载的 DSH 插件包', 'this release is not a loadable DSH plugin bundle'),
353
+ })[release?.reason] || t('发布元数据的兼容范围与当前环境不符', 'its published compatibility range does not match this environment');
354
+ }
336
355
  function jobLabel(job) {
337
356
  return ({ verifying: t('正在核对版本', 'Verifying release'), installing: t('正在安装', 'Installing'), cancelling: t('正在请求取消', 'Requesting cancellation'), complete: t('已更新', 'Updated'), 'restart-required': t('已安装,等待你手动重启', 'Installed; manual restart needed'), restored: t('更新未成功,已恢复原版本', 'Update failed; previous version restored'), 'restore-failed': t('恢复未成功,请检查官方插件管理', 'Recovery failed; check native plugin management'), unknown: t('结果未确认,请检查官方插件管理', 'Result unconfirmed; check native plugin management'), cancelled: t('已取消', 'Cancelled'), failed: t('更新未成功', 'Update failed') })[job.state] || job.state;
338
357
  }
@@ -371,7 +390,7 @@ function __stardustUpdatesClient(ctx, React, require, shared) {
371
390
  const title = language() === 'en' ? original.labelEn : original.label;
372
391
  const ownPage = pageState(true), unconfirmed = ['unknown', 'restore-failed'].includes(snapshot.job?.state), pageBusy = ownPage.busy || (snapshot.pages.clients || []).some(client => client.id !== id && client.busy), installLocked = working || activeJob() || unconfirmed || snapshot.updaterRestart || snapshot.preferenceError || !snapshot.activity.known || snapshot.activity.busy || snapshot.pages.dirty || ownPage.dirty || pageBusy || !snapshot.pages.known;
373
392
  const checkingThis = checking || snapshot.checkingNames?.includes(target);
374
- const status = row.sourceKind !== 'registry' ? t('本地 / 外部来源,保留原安装方式', 'Local / external source; keep original install method') : row.loadError ? t('加载异常,请先检查官方插件管理', 'Loading error; check native plugin management') : row.error ? t('检查失败,可以重试', 'Check failed; retry available') : row.release && !row.release.compatible ? t('新版本暂不兼容当前环境', 'Latest release is incompatible with this environment') : row.available ? (prefs.ignoredVersion === row.release.version ? t('已忽略提醒,仍可手动更新', 'Reminder ignored; manual update available') : t('有新版本', 'Update available')) : row.checkedAt ? t('当前已是最新稳定版', 'Latest stable version') : t('尚未检查', 'Not checked yet');
393
+ const status = row.sourceKind !== 'registry' ? t('本地 / 外部来源,保留原安装方式', 'Local / external source; keep original install method') : row.loadError ? t('加载异常,请先检查官方插件管理', 'Loading error; check native plugin management') : row.error ? t('检查失败,可以重试', 'Check failed; retry available') : row.release && !row.release.compatible ? t('新版本暂不兼容当前环境:', 'Latest release is incompatible with this environment: ') + requirement(row.release) : row.available ? (prefs.ignoredVersion === row.release.version ? t('已忽略提醒,仍可手动更新', 'Reminder ignored; manual update available') : t('有新版本', 'Update available')) : row.checkedAt ? t('当前已是最新稳定版', 'Latest stable version') : t('尚未检查', 'Not checked yet');
375
394
  return h(FooterFrame, { name, label: title, subtitle: original.name + ' · ' + original.version, actions: h(W.Button, { icon: 'refresh', disabled: checkingThis || row.sourceKind !== 'registry', onClick: check }, checkingThis ? t('正在检查…', 'Checking…') : target === '@stardustlc/dsh-suite' ? t('检查整包更新', 'Check Suite updates') : t('检查更新', 'Check for updates')) },
376
395
  original.bundledBy && h(W.Status, null, t('此插件随 Suite 安装。以下设置与安装作用于 Suite 整包,以保持组件版本一致。单独安装的插件可以独立更新。', 'This plugin was installed through Suite. These controls update Suite as a package so its components stay consistent. Independently installed plugins update individually.')),
377
396
  h('section', { className: 'w-section' }, (original.bundledBy || row.available) && h('p', { className: 'updates-version' }, target + ' · ' + row.version, row.release?.version && row.release.version !== row.version ? ' → ' + row.release.version : ''), h('p', { className: 'w-muted updates-note' }, status), !row.enabled && h('p', { className: 'w-muted' }, t('当前已停用,更新后仍保持停用。', 'Currently disabled; it will remain disabled after updating.')), row.checkedAt && h('p', { className: 'w-muted updates-note' }, t('上次检查:', 'Last checked: ') + new Date(row.checkedAt).toLocaleString(language() === 'en' ? 'en-US' : 'zh-CN')),
@@ -576,10 +595,10 @@ function createWorkbenchUI(React) {
576
595
  ctx.slots.inject('sidebar.panellist', () => ctx.slots.register({ name: 'sidebar.panellist', id, order, label }, function WorkbenchIcon({ size }) { return h(Icon, { name: icon, size }); }));
577
596
  }
578
597
  const styles = `
579
- .dshw{--w-bg:var(--dsw-alias-bg-layer-1,#fff);--w-soft:var(--dsw-alias-bg-layer-2,#f7f8fa);--w-text:var(--dsw-alias-label-primary,#18202c);--w-muted:var(--dsw-alias-label-secondary,#667085);--w-border:var(--dsw-alias-border-l3,#e7e9ef);--w-accent:var(--dsh-plugin-workbench-accent,#4f6bdb);--w-selected:color-mix(in srgb,var(--w-accent) 10%,var(--w-bg));--w-primary:var(--w-text);--w-on-primary:var(--w-bg);container-type:inline-size;container-name:dsh-workbench;color:var(--w-text);background:var(--w-bg);font:14px/1.65 var(--dsh-font-family-content,system-ui,-apple-system,"Segoe UI","Microsoft YaHei",sans-serif);min-width:0;max-width:100%;box-sizing:border-box;text-align:start;color-scheme:inherit}
580
- .dshw *,.dshw *:before,.dshw *:after{box-sizing:border-box}.dshw h1,.dshw h2,.dshw h3,.dshw h4,.dshw p{margin:0}.dshw h1{font-size:30px;line-height:1.25;letter-spacing:-.025em;font-weight:650}.dshw h2{font-size:24px;line-height:1.35;font-weight:650;letter-spacing:-.015em;overflow-wrap:anywhere}.dshw h3,.dshw h4{font-size:16px;line-height:1.4;font-weight:600}.dshw a{color:var(--w-accent);text-underline-offset:3px;overflow-wrap:anywhere}.dshw button,.dshw input,.dshw select,.dshw textarea{font:inherit;color:inherit;max-width:100%}.dshw input:not([type=checkbox]):not([type=radio]):not([type=file]),.dshw select,.dshw textarea{background:var(--w-bg);border:1px solid var(--w-border);border-radius:8px;padding:8px 11px;min-width:0;line-height:1.5}.dshw input:not([type=checkbox]):not([type=radio]):not([type=file]),.dshw select{min-height:38px}.dshw textarea{resize:vertical}.dshw input[type=checkbox],.dshw input[type=radio]{width:16px;height:16px;flex-shrink:0;accent-color:var(--w-accent)}.dshw :focus-visible{outline:2px solid var(--w-accent);outline-offset:3px}.dshw button:disabled,.dshw input:disabled,.dshw select:disabled,.dshw textarea:disabled{opacity:.5;cursor:not-allowed}.dshw label{font-size:13px}.dshw fieldset{min-width:0;border:1px solid var(--w-border);border-radius:8px}.dshw summary{cursor:pointer;font-weight:550;list-style:none;display:flex;align-items:center;gap:8px}.dshw summary::-webkit-details-marker{display:none}.dshw summary:after{content:'';display:block;margin-inline-start:auto;width:7px;height:7px;border-inline-end:1.75px solid currentColor;border-bottom:1.75px solid currentColor;transform:rotate(45deg);flex-shrink:0}.dshw details[open]>summary:after{transform:rotate(225deg)}.dshw details>summary+*{margin-top:12px}.dshw pre{white-space:pre-wrap;overflow-wrap:anywhere;font:12px/1.7 ui-monospace,SFMono-Regular,Consolas,monospace;max-width:100%;background:var(--w-soft);border-radius:6px;padding:14px}.dshw img,.dshw video,.dshw iframe{max-width:100%}
581
- .w-page{display:flex;flex-direction:column;position:relative;padding:0;min-height:540px;gap:0}.w-page[data-main=true]{height:100%;min-height:0;padding:calc(24px + var(--dsh-frame-top-clearance,0px)) 28px 0 max(28px,var(--dsh-frame-leading-clearance,0px));overflow:auto}.w-page-header{display:flex;justify-content:space-between;gap:24px;align-items:flex-start;padding-bottom:22px;flex-shrink:0}.w-heading{min-width:0}.w-subtitle{margin-top:8px!important;font-size:14px;color:var(--w-muted);line-height:1.6}.w-header-actions,.w-toolbar,.w-actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px;min-width:0}.w-header-actions{justify-content:flex-end}.w-body,.w-tabs-layout{display:flex;flex-direction:column;flex:1;min-height:0;min-width:0}.w-body{overflow:auto}.w-tab-panel{flex:1;min-width:0;min-height:0;display:flex;flex-direction:column;overflow:auto}.w-tabs{display:flex;align-items:stretch;gap:20px;border-bottom:1px solid var(--w-border);flex-shrink:0;overflow-x:auto;scrollbar-width:thin}.dshw .w-tabs>button{border:0;border-bottom:2px solid transparent;background:transparent;padding:11px 8px 13px;white-space:nowrap;font-size:14px;font-weight:550;cursor:pointer;color:var(--w-muted);display:flex;align-items:center;gap:7px}.dshw .w-tabs>button[aria-selected=true]{border-bottom-color:var(--w-accent);color:var(--w-accent)}.w-count,.w-tag{font-size:12px;line-height:1.5;display:inline-flex;align-items:center;flex-shrink:0;background:var(--w-soft);border-radius:5px;padding:1px 6px;color:var(--w-muted)}.w-tabs [aria-selected=true] .w-count,.w-selected .w-tag{color:var(--w-accent);background:var(--w-selected)}
582
- .dshw .w-button{display:inline-flex;justify-content:center;align-items:center;gap:7px;background:var(--w-bg);border:1px solid var(--w-border);border-radius:8px;padding:8px 12px;min-height:36px;line-height:1.4;font-size:14px;font-weight:500;cursor:pointer;text-decoration:none;white-space:normal}.dshw .w-button:not(:disabled):hover{background:var(--w-soft)}.dshw .w-primary{background:var(--w-primary);border-color:var(--w-primary);color:var(--w-on-primary)}.dshw .w-primary:not(:disabled):hover{background:var(--w-primary);opacity:.9}.dshw .w-ghost{background:transparent;border-color:transparent}.dshw .w-danger{color:var(--dsw-alias-state-error-primary,#b43c3c)}.dshw .w-icon-button{width:36px;min-width:36px;padding:8px}.dshw .w-button svg{flex-shrink:0}.w-muted{color:var(--w-muted);font-size:12px;line-height:1.6}.w-section{padding:24px 0;border-bottom:1px solid var(--w-border);min-width:0}.w-section>h3{margin-bottom:12px}.w-section>p+p{margin-top:8px}.w-fields{display:grid;gap:16px;min-width:0}.w-field{display:grid;gap:6px;min-width:0}.w-field>input,.w-field>select,.w-field>textarea{width:100%}.w-status{display:flex;align-items:flex-start;gap:8px;padding:11px 13px;margin:12px 0;border:1px solid var(--w-border);border-radius:8px;background:var(--w-soft);font-size:13px;overflow-wrap:anywhere;flex-shrink:0}.w-status>svg{flex-shrink:0;margin-top:2px}.w-status-error{color:var(--dsw-alias-state-error-primary,#ad3636)}.w-status-success{color:var(--dsw-alias-state-success-primary,#24794a)}.w-status-warn{color:var(--dsw-alias-state-warning-primary,#8a5a00)}.w-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:14px;max-width:580px;padding:48px 24px;margin:auto;min-height:280px;overflow-wrap:anywhere}.w-empty>svg{color:var(--w-muted)}.w-empty h2{font-size:20px}.w-empty .w-muted{font-size:14px}.w-empty .w-toolbar{justify-content:center}
598
+ .dshw{--w-bg:var(--dsw-alias-bg-layer-1,#fff);--w-soft:var(--dsw-alias-bg-layer-2,#f7f8fa);--w-text:var(--dsw-alias-label-primary,#18202c);--w-muted:var(--dsw-alias-label-secondary,#667085);--w-border:var(--dsw-alias-border-l3,#e7e9ef);--w-accent:var(--dsh-plugin-workbench-accent,#4f6bdb);--w-selected:color-mix(in srgb,var(--w-accent) 10%,var(--w-bg));--w-primary:var(--w-text);--w-on-primary:var(--w-bg);container-type:inline-size;container-name:dsh-workbench;color:var(--w-text);font:14px/1.65 var(--dsh-font-family-content,system-ui,-apple-system,"Segoe UI","Microsoft YaHei",sans-serif);min-width:0;max-width:100%;box-sizing:border-box;text-align:start;color-scheme:inherit}
599
+ .dshw *,.dshw *:before,.dshw *:after{box-sizing:border-box}.dshw h1,.dshw h2,.dshw h3,.dshw h4,.dshw p{margin:0}.dshw h1{font-size:30px;line-height:1.25;letter-spacing:-.025em;font-weight:650}.dshw h2{font-size:24px;line-height:1.35;font-weight:650;letter-spacing:-.015em;overflow-wrap:anywhere}.dshw h3,.dshw h4{font-size:16px;line-height:1.4;font-weight:600}.dshw a{color:var(--w-accent);text-underline-offset:3px;overflow-wrap:anywhere}.dshw button,.dshw input,.dshw select,.dshw textarea{font:inherit;color:inherit;max-width:100%}.dshw input:not([type=checkbox]):not([type=radio]):not([type=file]),.dshw select,.dshw textarea{background:var(--dsw-specific-input-major,var(--w-bg));border:1px solid var(--w-border);border-radius:8px;padding:8px 11px;min-width:0;line-height:1.5}.dshw input:not([type=checkbox]):not([type=radio]):not([type=file]),.dshw select{min-height:38px}.dshw textarea{resize:vertical}.dshw input[type=checkbox],.dshw input[type=radio]{width:16px;height:16px;flex-shrink:0;accent-color:var(--w-accent)}.dshw :focus-visible{outline:2px solid var(--w-accent);outline-offset:3px}.dshw button:disabled,.dshw input:disabled,.dshw select:disabled,.dshw textarea:disabled{opacity:.5;cursor:not-allowed}.dshw label{font-size:13px}.dshw fieldset{min-width:0;border:1px solid var(--w-border);border-radius:8px}.dshw summary{cursor:pointer;font-weight:550;list-style:none;display:flex;align-items:center;gap:8px}.dshw summary::-webkit-details-marker{display:none}.dshw summary:after{content:'';display:block;margin-inline-start:auto;width:7px;height:7px;border-inline-end:1.75px solid currentColor;border-bottom:1.75px solid currentColor;transform:rotate(45deg);flex-shrink:0}.dshw details[open]>summary:after{transform:rotate(225deg)}.dshw details>summary+*{margin-top:12px}.dshw pre{white-space:pre-wrap;overflow-wrap:anywhere;font:12px/1.7 ui-monospace,SFMono-Regular,Consolas,monospace;max-width:100%;background:var(--w-soft);border-radius:6px;padding:14px}.dshw img,.dshw video,.dshw iframe{max-width:100%}
600
+ .w-page{display:flex;flex-direction:column;position:relative;padding:0;min-height:540px;gap:0}.w-page[data-main=true]{height:100%;min-height:0;padding:calc(24px + var(--dsh-frame-top-clearance,0px)) 28px 0 max(28px,var(--dsh-frame-leading-clearance,0px));overflow:auto}.dshw[data-main=true]{background:var(--w-bg)}.dshw.w-page,.dshw .w-body,.dshw .w-tab-panel{overflow-x:clip}.w-page-header{display:flex;justify-content:space-between;gap:24px;align-items:flex-start;padding-bottom:22px;flex-shrink:0}.w-heading{min-width:0}.w-subtitle{margin-top:8px!important;font-size:14px;color:var(--w-muted);line-height:1.6}.w-header-actions,.w-toolbar,.w-actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px;min-width:0}.w-header-actions{justify-content:flex-end}.w-body,.w-tabs-layout{display:flex;flex-direction:column;flex:1;min-height:0;min-width:0}.w-body{overflow:auto}.w-tab-panel{flex:1;min-width:0;min-height:0;display:flex;flex-direction:column;overflow:auto}.w-tabs{display:flex;align-items:stretch;gap:20px;border-bottom:1px solid var(--w-border);flex-shrink:0;overflow-x:auto;scrollbar-width:thin}.dshw .w-tabs>button{border:0;border-bottom:2px solid transparent;background:transparent;padding:11px 8px 13px;white-space:nowrap;font-size:14px;font-weight:550;cursor:pointer;color:var(--w-muted);display:flex;align-items:center;gap:7px}.dshw .w-tabs>button[aria-selected=true]{border-bottom-color:var(--w-accent);color:var(--w-accent)}.w-count,.w-tag{font-size:12px;line-height:1.5;display:inline-flex;align-items:center;flex-shrink:0;background:var(--w-soft);border-radius:5px;padding:1px 6px;color:var(--w-muted)}.w-tabs [aria-selected=true] .w-count,.w-selected .w-tag{color:var(--w-accent);background:var(--w-selected)}
601
+ .dshw .w-button{display:inline-flex;justify-content:center;align-items:center;gap:7px;background:var(--w-bg);border:1px solid var(--w-border);border-radius:8px;padding:8px 12px;min-height:36px;line-height:1.4;font-size:14px;font-weight:500;cursor:pointer;text-decoration:none;white-space:normal}.dshw .w-button:not(:disabled):hover{background:var(--w-soft)}.dshw .w-primary{background:var(--w-primary);border-color:var(--w-primary);color:var(--w-on-primary)}.dshw .w-primary:not(:disabled):hover{background:var(--w-primary);opacity:.9}.dshw .w-ghost{background:transparent;border-color:transparent}.dshw .w-danger{color:var(--dsw-alias-state-error-primary,#b43c3c)}.dshw .w-icon-button{width:36px;min-width:36px;padding:8px}.dshw .w-button svg{flex-shrink:0}.w-muted{color:var(--w-muted);font-size:12px;line-height:1.6}.w-section{padding:24px 0;border-bottom:1px solid var(--w-border);min-width:0}.w-section>h3{margin-bottom:12px}.w-section>p+p{margin-top:8px}.w-fields{display:grid;gap:16px;min-width:0}.w-field{display:grid;gap:6px;min-width:0}.w-field>input,.w-field>select,.w-field>textarea{width:100%}.w-status{display:flex;align-items:flex-start;gap:8px;padding:11px 13px;margin:12px 0;border:1px solid var(--w-border);border-radius:8px;background:var(--w-soft);font-size:13px;overflow-wrap:anywhere;flex-shrink:0}.w-status>svg{flex-shrink:0;margin-top:2px}.w-status-error{color:var(--dsw-alias-state-error-primary,#ad3636)}.w-status-success{color:var(--dsw-alias-state-success-primary,#24794a)}.w-status-warn{color:var(--dsw-alias-state-warning-primary,#8a5a00)}.w-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:14px;width:100%;max-width:580px;padding:48px 24px;margin:auto;min-height:280px;overflow-wrap:anywhere}.w-empty>svg{color:var(--w-muted)}.w-empty h2{font-size:20px}.w-empty .w-muted{font-size:14px}.w-empty .w-toolbar{justify-content:center}
583
602
  .w-split{display:grid;grid-template-columns:minmax(240px,var(--w-list-width)) minmax(0,1fr);min-height:460px;flex:1;min-width:0}.w-master{min-width:0;border-inline-end:1px solid var(--w-border);overflow:auto;padding-bottom:24px}.w-detail{min-width:0;padding:26px 28px;overflow:auto;overflow-wrap:anywhere;display:flex;flex-direction:column}.w-master-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:20px 16px}.w-search{display:flex;align-items:center;gap:8px;border:1px solid var(--w-border);border-radius:8px;padding:0 10px;min-width:0;flex:1;background:var(--w-bg)}.w-search>svg{color:var(--w-muted);flex-shrink:0}.dshw .w-search>input{border:0!important;background:transparent!important;padding:8px 0!important;width:100%;outline-offset:0}.w-row{display:flex;gap:0;min-width:0;position:relative;border-bottom:1px solid var(--w-border);border-inline-start:3px solid transparent}.w-row-select{display:flex;align-items:flex-start;padding:21px 0 0 14px}.dshw .w-row-button{display:flex;flex-direction:column;align-items:stretch;gap:7px;text-align:start;width:100%;padding:18px 18px 18px 16px;border:0;background:transparent;color:inherit;min-width:0;cursor:pointer;line-height:1.5}.dshw .w-row-button:hover{background:var(--w-soft)}.w-row-head{display:flex;align-items:flex-start;gap:10px;justify-content:space-between;min-width:0}.w-row-head>strong{font-size:14px;line-height:1.5;font-weight:600;overflow-wrap:anywhere}.w-row-meta,.w-row-description{color:var(--w-muted);font-size:12px;line-height:1.6;overflow-wrap:anywhere}.w-row-description{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.w-selected{background:var(--w-selected);border-inline-start-color:var(--w-accent)}.w-back{display:none!important}.w-detail-title{margin-bottom:12px!important}.w-detail-meta{color:var(--w-muted);font-size:13px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.w-detail-footer{padding:24px 0;display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:auto;border-top:1px solid var(--w-border)}.w-detail-footer .w-muted{flex:1;min-width:160px}.w-definition{display:grid;grid-template-columns:minmax(80px,120px) minmax(0,1fr);gap:8px 16px;font-size:14px;margin:20px 0}.w-definition dt{color:var(--w-muted)}.w-definition dd{margin:0;min-width:0;overflow-wrap:anywhere}
584
603
  .w-switch-label{display:inline-flex;align-items:center;gap:8px;font-size:13px;position:relative;cursor:pointer}.w-switch-label>input{position:absolute;opacity:0;inset-inline-end:0;width:36px!important;height:22px!important;margin:0;cursor:pointer}.w-switch-track{width:36px;height:22px;border-radius:12px;display:block;background:var(--w-border);border:1px solid var(--w-border);pointer-events:none;padding:2px;transition:background .15s}.w-switch-track:before{content:'';display:block;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 2px #0002;transition:transform .15s}.w-switch-label>input:checked+.w-switch-track{background:var(--w-accent);border-color:var(--w-accent)}.w-switch-label>input:checked+.w-switch-track:before{transform:translateX(14px)}.w-switch-label>input:focus-visible+.w-switch-track{outline:2px solid var(--w-accent);outline-offset:3px}.w-switch-label:has(>input:disabled){opacity:.5;cursor:not-allowed}
585
604
  .w-overlay{position:fixed;inset:0;background:#0005;display:flex;justify-content:flex-end;z-index:1000;padding:12px;overflow:auto}.w-dialog{width:min(620px,100%);max-height:100%;display:flex;flex-direction:column;min-height:0;background:var(--w-bg);color:var(--w-text);border:1px solid var(--w-border);border-radius:12px;box-shadow:0 18px 70px #0003}.w-dialog-header{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:20px 24px;border-bottom:1px solid var(--w-border);flex-shrink:0}.w-dialog-header>h2{font-size:20px}.w-dialog-body{overflow:auto;padding:20px 24px;min-height:0}.w-editor-grid{display:grid;grid-template-columns:210px minmax(0,1fr) 300px;min-height:500px;flex:1}.w-editor-list{padding:20px 12px;border-inline-end:1px solid var(--w-border);min-width:0}.w-editor-canvas{background:var(--w-soft);padding:20px;min-width:0;display:flex;flex-direction:column;gap:14px}.w-editor-inspector{padding:24px;border-inline-start:1px solid var(--w-border);min-width:0;overflow:auto}.w-editor-inspector h3{margin-bottom:18px}.w-preview-empty{display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;gap:12px;aspect-ratio:16/9;min-height:180px;background:var(--w-soft);border:1px solid var(--w-border);border-radius:8px;padding:24px;color:var(--w-muted)}.w-content-pad{padding:24px 0}.w-stack{display:flex;flex-direction:column;gap:16px;min-width:0}.w-scroll-x{overflow:auto;max-width:100%}
@@ -3146,7 +3165,7 @@ calendarHostContext=ctx;W.register(ctx,{id:'dsh-calendar.workbench',label:()=>t(
3146
3165
  exports.apply = apply;
3147
3166
  exports.inject = inject;
3148
3167
  return module.exports;
3149
- } },{"name":"dsh-calendar","version":"0.1.0","hasWorkbench":true,"packageVersion":"0.14.4","label":"日历","labelEn":"Calendar","suiteComponent":true}));
3168
+ } },{"name":"dsh-calendar","version":"0.1.0","hasWorkbench":true,"packageVersion":"0.14.5","label":"日历","labelEn":"Calendar","suiteComponent":true,"sectionIds":["dsh-calendar"],"iconData":"data:image/webp;base64,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"}));
3150
3169
 
3151
3170
  })();
3152
3171
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dsh-calendar",
3
- "version": "0.14.4",
3
+ "version": "0.14.5",
4
4
  "description": "DSH 日历工作台:CalDAV 日程、月 / 周 / 议程视图、空闲时段建议与 ICS 预览导入。欢迎提交 issues 和 PR。",
5
5
  "type": "module",
6
6
  "main": "lib/index.js",
@@ -66,7 +66,7 @@
66
66
  "tsdav": "^2.3.1",
67
67
  "undici": "^8.11.2",
68
68
  "yaml": "^2.9.1",
69
- "@stardustlc/dsh-updates": "0.1.3"
69
+ "@stardustlc/dsh-updates": "0.1.4"
70
70
  },
71
71
  "devDependencies": {
72
72
  "@types/node": "^24.0.0",