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 +8 -0
- package/docs/WORKBENCH.md +6 -0
- package/lib/caldav.js +7 -3
- package/lib/client.js +34 -15
- package/package.json +2 -2
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:
|
|
71
|
+
credentials: {},
|
|
72
72
|
// createDAVClient 的 Oauth 分支只在初始化时取头;改由 fetch 在每次请求时检查过期。
|
|
73
|
-
|
|
74
|
-
|
|
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(
|
|
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);
|
|
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
|
-
|
|
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('
|
|
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);
|
|
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.
|
|
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.
|
|
69
|
+
"@stardustlc/dsh-updates": "0.1.4"
|
|
70
70
|
},
|
|
71
71
|
"devDependencies": {
|
|
72
72
|
"@types/node": "^24.0.0",
|