dshmarket 1.11.3 → 1.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -1
- package/README.zh.md +6 -1
- package/client/client.js +204 -122
- package/client/client.js.map +1 -1
- package/lib/index.js +6 -0
- package/lib/settings.js +51 -0
- package/lib/types/settings.d.ts +45 -0
- package/package.json +13 -4
- package/src/client/Market.module.css +20 -1
- package/src/client/MarketSection.tsx +9 -1
- package/src/client/SettingsCard.tsx +96 -0
- package/src/client/index.ts +28 -0
- package/src/client/locales.ts +8 -0
- package/src/index.ts +6 -0
- package/src/settings.ts +67 -0
package/README.md
CHANGED
|
@@ -25,9 +25,15 @@ dsh plugin --profile web add dshmarket
|
|
|
25
25
|
|
|
26
26
|
Restart `dsh web`, then open **Settings → Plugin Market**.
|
|
27
27
|
|
|
28
|
+
**Requires dsh web 0.1.0-rc.6 or newer.** On an older host the market
|
|
29
|
+
disables itself and says so in the browser console rather than rendering
|
|
30
|
+
against primitives that are not there — if the Plugin Market entry never
|
|
31
|
+
appears, that is usually why. Worth checking when a desktop build bundles
|
|
32
|
+
its own dsh: it may be older than the one `npm` would give you (#139).
|
|
33
|
+
|
|
28
34
|
## What you get
|
|
29
35
|
|
|
30
|
-
- **Browse & search** the full community catalog (
|
|
36
|
+
- **Browse & search** the full community catalog (1250+ plugins, growing daily) — category filters, star counts, top/new sorting, bilingual descriptions that follow your UI language
|
|
31
37
|
- **Screenshots** — AppStore-style screenshots in the install dialog: author-curated via the registry, with automatic README extraction as fallback; images load from GitHub hosting only, and only after you open the dialog
|
|
32
38
|
- **Themes** — a dedicated tab for community themes and skins: install → active immediately, switch with one click (themes are mutually exclusive, your choice survives restarts), uninstall to revert
|
|
33
39
|
- **One-click install** — confirm the source, watch live progress; most plugins go live after a page refresh, no restart
|
|
@@ -38,6 +44,7 @@ Restart `dsh web`, then open **Settings → Plugin Market**.
|
|
|
38
44
|
- **Restart when needed** — changes that cannot hot-load show a one-click restart beside the pending-change banner; the action is restricted to same-origin loopback requests
|
|
39
45
|
- **Zero jargon** — if a component is missing (pnpm), the market detects it and offers a one-click automatic setup
|
|
40
46
|
- **Log export** — one click produces a sanitized plain-text log for bug reports (home paths and credential shapes are masked; nothing is ever sent anywhere). The market's version sits next to the page heading, so a screenshot of a problem already carries it
|
|
47
|
+
- **Settings card** — on dsh 0.1.0-rc.7 and newer the market puts its own option (whether one-click restart is allowed) on **Settings → Plugins → Plugin configuration**, so a host owned by systemd, launchd or pm2 is a switch rather than a hand-edited YAML line
|
|
41
48
|
- **Diagnostics** — the plugin load order and conflict surface, one page: bundle stack with official/community badges, duplicate loader entries, dependency version mismatches, multi-version core packages, overrides and invalid config entries. Plain-language terms, problem blocks highlighted, everything collapsible
|
|
42
49
|
|
|
43
50
|
- **Load order** — drag community bundles into the order you want, or take the suggested one derived from the plugins' own before/after rules. Nothing is written until a trial composition passes, and the panel tells you what the new order would change (overrides, invalid or duplicate entries) before you apply it
|
package/README.zh.md
CHANGED
|
@@ -25,9 +25,13 @@ dsh plugin --profile web add dshmarket
|
|
|
25
25
|
|
|
26
26
|
重启 `dsh web`,打开 **设置 → 插件市场**。
|
|
27
27
|
|
|
28
|
+
**需要 dsh web 0.1.0-rc.6 或更新版本。** 宿主太旧时市场会自我禁用,并在浏览器
|
|
29
|
+
控制台说明原因,而不是拿缺失的原语去渲染——如果设置里根本没出现「插件市场」这
|
|
30
|
+
一项,通常就是这个原因。桌面端要留意:它可能内置了比 `npm` 装到的更旧的 dsh(#139)。
|
|
31
|
+
|
|
28
32
|
## 你会得到
|
|
29
33
|
|
|
30
|
-
- **逛与搜**——完整社区目录(
|
|
34
|
+
- **逛与搜**——完整社区目录(1250+ 插件,每天在涨),分类筛选、star 数、最热/最新排序,中英描述跟随界面语言
|
|
31
35
|
- **截图展示**——安装弹窗内 App Store 式截图:作者可在 registry 里策展,没有则自动从 README 抽取;图片仅从 GitHub 图床加载,且只在你打开弹窗后才发请求
|
|
32
36
|
- **主题**——独立主题页:装完立即生效,点一下切换(主题互斥、选择跨重启保留),卸载即恢复
|
|
33
37
|
- **一键安装**——确认来源,实时进度;多数插件刷新页面即可用,无需重启
|
|
@@ -38,6 +42,7 @@ dsh plugin --profile web add dshmarket
|
|
|
38
42
|
- **按需重启**——无法热加载的变更会在待重启提示旁显示一键重启;操作仅接受本机同源请求
|
|
39
43
|
- **零术语**——缺组件(pnpm)时市场自己发现、一键自动装好,全程不见命令行
|
|
40
44
|
- **导出日志**——一键生成脱敏纯文本日志方便反馈(home 路径与密钥形状已打码;任何数据都不会被上传)。市场版本号就在标题旁边,截图反馈时自带版本信息
|
|
45
|
+
- **设置卡片**——dsh 0.1.0-rc.7 起,市场把自己的选项(是否允许一键重启)放到 **设置 → 插件 → 插件配置** 里。宿主由 systemd / launchd / pm2 托管时,这就是一个开关,不用再手改 YAML
|
|
41
46
|
- **诊断**——插件加载顺序与冲突一页看全:bundle 栈(官方/社区徽标)、重复的 loader 条目、依赖版本不一致、核心包多版本共存、覆盖项与非法配置条目。术语说人话,问题块高亮,全部可折叠
|
|
42
47
|
- **加载顺序**——拖拽调整社区 bundle 的顺序,或直接采用按插件自身 before/after 规则推导出的建议顺序。写入前先跑一次静态组合校验,通过才落盘;应用之前面板会告诉你这个顺序会改变什么(多少处覆盖、多少无效或重复条目)
|
|
43
48
|
- **AI 修复**——一键把诊断结果生成的修复 prompt(错误/警告/顺序冲突 + 保守的改动范围约束)复制到剪贴板,你粘进新对话,自己决定发不发
|
package/client/client.js
CHANGED
|
@@ -34,6 +34,10 @@ window.__ModuleLoader__.load({ id: "dshmarket", factory: (require) => {
|
|
|
34
34
|
/** zh/en dictionaries for the Market settings section and install toast. */
|
|
35
35
|
const zh = {
|
|
36
36
|
nav: "插件市场",
|
|
37
|
+
setCardDesc: "控制市场能否重启宿主进程。",
|
|
38
|
+
setAllowRestart: "允许一键重启",
|
|
39
|
+
setAllowRestartHint: "关掉之后市场不再重启宿主,只提示有待生效的变更。如果 DSH 由 systemd / launchd / pm2 托管,应该关掉——重启该由它们负责。",
|
|
40
|
+
setRevert: "恢复默认",
|
|
37
41
|
versionHint: "插件市场版本 — 反馈问题时请把它一起截图",
|
|
38
42
|
subtitle: "发现社区为 DeepSeek Harness 打造的能力",
|
|
39
43
|
searchPh: "搜索插件,比如:通知、终端、记忆…",
|
|
@@ -313,6 +317,10 @@ window.__ModuleLoader__.load({ id: "dshmarket", factory: (require) => {
|
|
|
313
317
|
};
|
|
314
318
|
const en = {
|
|
315
319
|
nav: "Plugin Market",
|
|
320
|
+
setCardDesc: "Whether the market may relaunch the host process.",
|
|
321
|
+
setAllowRestart: "Allow one-click restart",
|
|
322
|
+
setAllowRestartHint: "With this off the market never relaunches the host; it only reports that changes are pending. Turn it off when systemd, launchd or pm2 owns the process — restarting is theirs to do.",
|
|
323
|
+
setRevert: "Revert to default",
|
|
316
324
|
versionHint: "Plugin market version — include it when reporting an issue",
|
|
317
325
|
subtitle: "Discover community plugins for DeepSeek Harness",
|
|
318
326
|
searchPh: "Search plugins: notify, terminal, memory…",
|
|
@@ -909,7 +917,7 @@ window.__ModuleLoader__.load({ id: "dshmarket", factory: (require) => {
|
|
|
909
917
|
}
|
|
910
918
|
//#endregion
|
|
911
919
|
//#region \0dsh-css:src/client/Market.module.css.mjs
|
|
912
|
-
const css = ".eGUBIq_root{min-width:0;height:100%;color:var(--dsw-alias-label-primary,#1f2328);flex-direction:column;display:flex;position:relative}.eGUBIq_head{flex-direction:column;gap:12px;padding:4px 4px 12px;display:flex}.eGUBIq_title{margin:0;font-size:16px;font-weight:500;line-height:24px}.eGUBIq_sub{color:var(--dsw-alias-label-tertiary,#8b93a1);align-items:center;gap:8px;margin:0;font-size:14px;line-height:22px;display:flex}.eGUBIq_tabs{border-bottom:1px solid var(--dsw-alias-border-l2,#e5e7eb);align-items:flex-end;gap:2px;display:flex}.eGUBIq_tab{font:inherit;color:var(--dsw-alias-label-secondary,#6b7280);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;padding:7px 12px;font-size:13px}.eGUBIq_tab.eGUBIq_on{color:var(--dsw-alias-brand-primary,#4f6ef7);border-bottom-color:var(--dsw-alias-brand-primary,#4f6ef7);font-weight:600}.eGUBIq_banner{background:var(--dsw-alias-bg-layer-2,#fdf3e3);border:1px solid var(--dsw-alias-border-l2,#f3e3c3);border-radius:8px;align-items:center;gap:8px;margin:0;padding:8px 12px;font-size:12px;display:flex}.eGUBIq_bannerIcon{color:var(--dsw-alias-label-secondary,#6b7280);flex-shrink:0}.eGUBIq_bannerHint{color:var(--dsw-alias-label-tertiary,#8b93a1);cursor:help;display:inline-flex}.eGUBIq_body{flex:1;padding:12px 4px 24px;overflow-x:hidden;overflow-y:auto}.eGUBIq_cats{z-index:5;background:var(--dsw-alias-bg-layer-2,#f7f8fa);margin:-12px -4px 2px;padding:12px 4px 4px;position:sticky;top:-13px}.eGUBIq_catsRow{align-items:flex-start;gap:8px;display:flex;position:relative}.eGUBIq_star{color:var(--dsw-alias-label-secondary,#9ca3af);font-size:11px}.eGUBIq_top{z-index:20;display:inline-flex;position:absolute;bottom:18px;right:18px}.eGUBIq_topBtn{border-radius:99px;width:38px;height:38px;padding:0}.eGUBIq_tag{border:1px solid var(--dsw-alias-border-l3,#d9dde3);color:var(--dsw-alias-label-secondary,#6b7280);border-radius:4px;flex-shrink:0;padding:1px 6px;font-size:11px;line-height:16px}.eGUBIq_okState{color:var(--dsw-alias-state-success-primary,#16a34a);white-space:nowrap;font-size:12px;font-weight:600}.eGUBIq_catsWrap{flex-wrap:wrap;flex:1;align-items:center;gap:6px;min-width:0;display:flex}.eGUBIq_catsCollapsed{max-height:62px;overflow:hidden}.eGUBIq_catsToggle.eGUBIq_catsToggle{height:26px;min-height:26px;color:var(--dsw-alias-label-secondary,#6b7280);padding:0 6px}.eGUBIq_shots{-webkit-overflow-scrolling:touch;scrollbar-width:thin;gap:8px;margin:0 0 8px;padding:2px 0 6px;display:flex;overflow-x:auto}.eGUBIq_shot{object-fit:cover;border:1px solid var(--dsw-alias-border-default,#e5e7eb);background:var(--dsw-alias-bg-layer-2,#f3f4f6);border-radius:8px;flex:none;max-width:260px;height:150px}.eGUBIq_cmd{background:var(--dsw-alias-bg-layer-2,#f3f4f6);word-break:break-all;border-radius:6px;margin:8px 0 0;padding:8px 10px;font-family:ui-monospace,Menlo,monospace;font-size:11px;line-height:18px}.eGUBIq_warnLine{color:var(--dsw-alias-state-warn-primary,#b45309);align-items:center;gap:4px;margin:0;font-size:12px;font-weight:600;line-height:18px;display:flex}.eGUBIq_modalNote{color:var(--dsw-alias-label-tertiary,#8b93a1);align-items:center;gap:4px;margin:12px 0 0;font-size:12px;line-height:18px;display:flex}.eGUBIq_grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;display:grid}.eGUBIq_swatches{border:1px solid var(--dsw-alias-border-l2,#e5e7eb);border-radius:8px;gap:0;height:34px;display:flex;overflow:hidden}.eGUBIq_themesGrid{margin-bottom:12px}.eGUBIq_swatches i{flex:1}.eGUBIq_card{background:var(--dsw-alias-bg-layer-1,#fff);border:1px solid var(--dsw-alias-border-l2,#e5e7eb);border-radius:12px;flex-direction:column;gap:12px;padding:12px 14px;display:flex}.eGUBIq_row1{align-items:center;gap:10px;min-width:0;display:flex}.eGUBIq_srcBtn{flex-shrink:0;align-self:flex-start}.eGUBIq_av{color:#fff;object-fit:cover;background:var(--dsw-alias-bg-layer-2,#f3f4f6);border-radius:8px;flex-shrink:0;place-items:center;width:32px;height:32px;font-size:14px;font-weight:700;display:grid}.eGUBIq_nm{text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:500;line-height:22px;overflow:hidden}.eGUBIq_owner{color:var(--dsw-alias-label-secondary,#9ca3af);font-size:11px}.eGUBIq_desc{color:var(--dsw-alias-label-tertiary,#8b93a1);min-height:36px;margin:0;font-size:12px;line-height:18px}.eGUBIq_foot{align-items:center;gap:8px;margin-top:auto;display:flex}.eGUBIq_grow{flex:1}.eGUBIq_titleRow{align-items:center;gap:10px;display:flex}.eGUBIq_version{color:var(--dsw-alias-label-tertiary,#8b93a1);font-variant-numeric:tabular-nums;flex-shrink:0;font-size:12px;line-height:20px}.eGUBIq_descTight{min-height:0}.eGUBIq_src{color:var(--dsw-alias-label-secondary,#9ca3af);font-size:11px;text-decoration:none}.eGUBIq_src:hover{color:var(--dsw-alias-brand-primary,#4f6ef7)}.eGUBIq_dot{vertical-align:2px;margin-left:5px}.eGUBIq_act{flex-wrap:wrap;align-items:center;gap:6px;margin-top:6px;font-size:11px;display:flex}.eGUBIq_actLive{color:var(--dsw-alias-state-success-primary,#16a34a);align-items:center;gap:4px;font-weight:600;display:inline-flex}.eGUBIq_actWarn{color:var(--dsw-alias-state-warn-primary,#b45309);align-items:center;gap:4px;font-weight:600;display:inline-flex}.eGUBIq_actBroken{color:var(--dsw-alias-state-error-primary,#dc2626);align-items:center;gap:4px;font-weight:600;display:inline-flex}.eGUBIq_actWhy{color:var(--dsw-alias-label-secondary,#6b7280);margin-top:2px}.eGUBIq_loading{color:var(--dsw-alias-label-secondary,#9ca3af);flex-direction:column;align-items:center;gap:12px;padding:48px;font-size:13px;display:flex}.eGUBIq_spin{color:var(--dsw-alias-brand-primary,#4f6ef7);flex-shrink:0;animation:.8s linear infinite eGUBIq_sp;display:inline-flex}@keyframes eGUBIq_sp{to{transform:rotate(360deg)}}.eGUBIq_progress{background:var(--dsw-alias-bg-layer-2,#f3f4f6);border:1px solid var(--dsw-alias-border-l2,#e5e7eb);color:var(--dsw-alias-label-secondary,#6b7280);border-radius:8px;flex-wrap:wrap;align-items:center;gap:9px;margin:0;padding:8px 12px;font-size:12px;display:flex}.eGUBIq_bar{background:var(--dsw-alias-border-l1,#e5e7eb);border-radius:99px;width:100%;height:4px;overflow:hidden}.eGUBIq_barFill{background:var(--dsw-alias-brand-primary,#4f6ef7);border-radius:99px;height:100%;transition:width .6s}.eGUBIq_barWave{width:30%;animation:1.2s ease-in-out infinite eGUBIq_dshmSlide}@keyframes eGUBIq_dshmSlide{0%{margin-left:-30%}to{margin-left:100%}}.eGUBIq_irow .eGUBIq_progress{margin-top:8px}.eGUBIq_progress code{text-overflow:ellipsis;white-space:nowrap;font-family:ui-monospace,Menlo,monospace;font-size:11px;overflow:hidden}.eGUBIq_empty{color:var(--dsw-alias-label-secondary,#9ca3af);text-align:center;padding:32px;font-size:13px}.eGUBIq_err{color:var(--dsw-alias-state-error-primary,#dc2626);white-space:pre-wrap;word-break:break-all;margin:8px 0;font-size:12px}.eGUBIq_irow{background:var(--dsw-alias-bg-layer-1,#fff);border:1px solid var(--dsw-alias-border-l2,#e5e7eb);border-radius:12px;align-items:center;gap:10px;margin-bottom:8px;padding:12px 14px;display:flex}.eGUBIq_irowMissing{filter:grayscale();opacity:.5}.eGUBIq_irow>.eGUBIq_src,.eGUBIq_irow>.eGUBIq_owner,.eGUBIq_irow button{white-space:nowrap;flex-shrink:0}.eGUBIq_tabSearchRow{padding:0 4px 10px;display:flex}.eGUBIq_tabSearch{width:260px}.eGUBIq_spec{color:var(--dsw-alias-label-secondary,#9ca3af);overflow-wrap:anywhere;min-width:0;font-family:ui-monospace,Menlo,monospace;font-size:11px}.eGUBIq_specTag{white-space:nowrap;border-radius:4px;flex-shrink:0;align-items:center;height:16px;padding:0 5px;font-size:10px;font-weight:600;display:inline-flex}.eGUBIq_specTagGit{color:#0b7285;background:#12a3c41f}.eGUBIq_specTagFile{color:#b07d1b;background:#f0b42924}.eGUBIq_backupCheckList .eGUBIq_grow{white-space:nowrap;text-overflow:ellipsis;flex:70%;min-width:0;overflow:hidden}.eGUBIq_backupCheckList .eGUBIq_spec{text-align:right;white-space:nowrap;text-overflow:ellipsis;flex:0 30%;max-width:30%;overflow:hidden}.eGUBIq_staleAction{margin-top:8px}.eGUBIq_pct{color:var(--dsw-alias-label-secondary,#6b7280);flex-shrink:0;font-size:11px;font-weight:600}.eGUBIq_pager{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin:16px 0 4px;display:flex}.eGUBIq_pagerPages{flex-wrap:wrap;flex:1;justify-content:center;align-items:center;gap:6px;min-width:0;display:flex}.eGUBIq_pageEllipsis{color:var(--dsw-alias-label-secondary,#9ca3af);padding:0 2px;font-size:12px}.eGUBIq_pageInfo{color:var(--dsw-alias-label-secondary,#6b7280);white-space:nowrap;font-size:12px}.eGUBIq_depBadge{border:1px solid var(--dsw-alias-state-warn-primary,#b45309);color:var(--dsw-alias-state-warn-primary,#b45309);white-space:nowrap;border-radius:4px;flex-shrink:0;margin-left:6px;padding:1px 6px;font-size:11px;font-weight:600;line-height:16px}.eGUBIq_deprecate{color:var(--dsw-alias-state-warn-primary,#b45309);background:var(--dsw-alias-bg-layer-2,#fdf3e3);border:1px solid var(--dsw-alias-border-l2,#f3e3c3);border-radius:8px;margin:0;padding:8px 10px;font-size:12px;line-height:18px}.eGUBIq_deprecate a{color:var(--dsw-alias-state-warn-primary,#b45309);text-decoration:underline}.eGUBIq_deprecate .eGUBIq_src{margin-left:8px}.eGUBIq_depLine{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.eGUBIq_switch{border:1px solid var(--dsw-alias-border-l2,#d9dde3);background:var(--dsw-alias-bg-layer-2,#e5e7eb);cursor:pointer;border-radius:99px;flex-shrink:0;width:38px;height:22px;padding:0;transition:background .15s,border-color .15s;position:relative}.eGUBIq_switchOn{background:var(--dsw-alias-state-success-primary,#16a34a);border-color:var(--dsw-alias-state-success-primary,#16a34a)}.eGUBIq_switchMixed{background:var(--dsw-alias-state-warn-primary,#b45309);border-color:var(--dsw-alias-state-warn-primary,#b45309)}.eGUBIq_switchKnob{background:#fff;border-radius:99px;width:16px;height:16px;transition:left .15s;position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #00000040}.eGUBIq_switchOn .eGUBIq_switchKnob,.eGUBIq_switchMixed .eGUBIq_switchKnob{left:18px}.eGUBIq_switch:disabled{opacity:.5;cursor:default}.eGUBIq_viewBar{border:1px solid var(--dsw-alias-border-l2,#e5e7eb);border-radius:8px;align-items:center;gap:2px;width:fit-content;margin-bottom:12px;padding:2px;display:flex}.eGUBIq_viewBtn{font:inherit;color:var(--dsw-alias-label-secondary,#6b7280);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:6px;padding:4px 10px;font-size:12px;line-height:18px}.eGUBIq_viewBtn:hover{color:var(--dsw-alias-brand-primary,#4f6ef7)}.eGUBIq_viewOn{background:var(--dsw-alias-bg-layer-2,#eef0f4);color:var(--dsw-alias-label-primary,#1f2328);font-weight:600}.eGUBIq_groupRow{background:var(--dsw-alias-bg-layer-1,#fff);border:1px solid var(--dsw-alias-border-l2,#e5e7eb);border-radius:12px;margin-bottom:10px;padding:12px 14px}.eGUBIq_groupHead{align-items:center;gap:10px;min-width:0;display:flex}.eGUBIq_groupName{text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600;line-height:20px;overflow:hidden}.eGUBIq_groupActions{flex-shrink:0;align-items:center;gap:6px;display:flex}.eGUBIq_groupMembers{flex-direction:column;gap:6px;margin-top:10px;display:flex}.eGUBIq_groupMember{background:var(--dsw-alias-bg-layer-2,#f7f8fa);border-radius:8px;align-items:center;gap:8px;padding:6px 8px;font-size:12px;line-height:18px;display:flex}.eGUBIq_groupMember .eGUBIq_nm{flex:1;min-width:0;font-size:12px}.eGUBIq_groupAddPanel{border-top:1px dashed var(--dsw-alias-border-l2,#e5e7eb);flex-direction:column;gap:6px;margin-top:10px;padding-top:10px;display:flex}.eGUBIq_groupCreate{align-items:center;gap:8px;margin-bottom:10px;display:flex}.eGUBIq_inlineInput{flex:1;min-width:120px}.eGUBIq_assignRow{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.eGUBIq_assignSelect{border:1px solid var(--dsw-alias-border-l2,#e5e7eb);background:var(--dsw-alias-bg-layer-1,#fff);color:var(--dsw-alias-label-primary,#1f2328);font:inherit;border-radius:6px;padding:3px 6px;font-size:12px;line-height:18px}.eGUBIq_groupHint{color:var(--dsw-alias-label-tertiary,#8b93a1);font-size:11px}.eGUBIq_sectAction{color:var(--dsw-alias-label-secondary,#6b7280);align-items:center;gap:8px;margin:14px 2px 8px;font-size:12px;font-weight:600;display:flex}.eGUBIq_backupGrid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px;display:grid}.eGUBIq_backupCard{background:var(--dsw-alias-bg-layer-1,#fff);border:1px solid var(--dsw-alias-border-l2,#e5e7eb);border-radius:12px;flex-direction:column;gap:10px;padding:16px;display:flex}.eGUBIq_backupCard h3{margin:0;font-size:14px}.eGUBIq_backupCard p{color:var(--dsw-alias-label-secondary,#6b7280);margin:0;font-size:12px;line-height:18px}.eGUBIq_backupActions{flex-wrap:wrap;gap:8px;display:flex;position:relative}.eGUBIq_hiddenFile{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.eGUBIq_backupInput{box-sizing:border-box;width:100%}.eGUBIq_backupCheck{cursor:pointer;align-items:center;gap:6px;font-size:12px;display:flex}.eGUBIq_backupWarn{margin:0;font-size:12px;line-height:18px;color:var(--dsw-alias-state-warn-primary,#b45309)!important}.eGUBIq_backupMessage{color:var(--dsw-alias-label-secondary,#6b7280);grid-column:1/-1;font-size:12px}.eGUBIq_backupCheckList{flex-direction:column;gap:6px;max-height:260px;margin:10px 0 4px;padding-right:4px;display:flex;overflow-y:auto}.eGUBIq_backupCheckList .eGUBIq_backupCheck{justify-content:space-between;gap:8px}.eGUBIq_diagPage{flex-direction:column;gap:12px;height:100%;min-height:0;display:flex;overflow-y:auto}.eGUBIq_diagSummary{background:var(--dsw-alias-bg-layer-1,#fff);border:1px solid var(--dsw-alias-border-l2,#e5e7eb);border-radius:12px;flex-wrap:wrap;align-items:center;gap:12px;padding:10px 14px;font-size:12px;display:flex}.eGUBIq_diagSummaryItem{color:var(--dsw-alias-label-secondary,#6b7280);white-space:nowrap;align-items:center;gap:6px;display:inline-flex}.eGUBIq_diagSummaryMeta{color:var(--dsw-alias-label-tertiary,#9ca3af);text-overflow:ellipsis;white-space:nowrap;max-width:320px;font-family:ui-monospace,Menlo,monospace;font-size:11px;overflow:hidden}.eGUBIq_diagSection{background:var(--dsw-alias-bg-layer-1,#fff);border:1px solid var(--dsw-alias-border-l2,#e5e7eb);border-radius:12px;flex-direction:column;gap:8px;padding:12px 14px;display:flex}.eGUBIq_diagSection h3{color:var(--dsw-alias-label-primary,#1f2328);margin:0;font-size:13px;font-weight:600}.eGUBIq_diagCount{color:var(--dsw-alias-label-tertiary,#9ca3af);font-size:11px;font-weight:400}.eGUBIq_diagEmpty{color:var(--dsw-alias-label-secondary,#9ca3af);padding:8px 0;font-size:12px}.eGUBIq_diagBundle{border-top:1px solid var(--dsw-alias-border-l2,#f0f1f3);flex-direction:column;gap:6px;padding-top:8px;display:flex}.eGUBIq_diagBundle:first-of-type{border-top:none;padding-top:0}.eGUBIq_diagRow{flex-wrap:wrap;align-items:center;gap:8px;min-width:0;font-size:12px;line-height:18px;display:flex}.eGUBIq_diagMeta{align-items:baseline;gap:8px;min-width:0;font-size:12px;display:flex}.eGUBIq_diagKey{color:var(--dsw-alias-label-tertiary,#9ca3af);flex-shrink:0;min-width:64px;font-size:11px}.eGUBIq_diagVal{color:var(--dsw-alias-label-primary,#1f2328);overflow-wrap:anywhere;min-width:0;font-family:ui-monospace,Menlo,monospace;font-size:12px;font-weight:500}.eGUBIq_diagIndex{background:var(--dsw-alias-bg-layer-2,#f3f4f6);min-width:18px;height:18px;color:var(--dsw-alias-label-secondary,#6b7280);border-radius:9px;flex-shrink:0;justify-content:center;align-items:center;font-size:11px;font-weight:600;display:inline-flex}.eGUBIq_diagArrow{color:var(--dsw-alias-label-tertiary,#9ca3af);flex-shrink:0;font-size:12px}.eGUBIq_diagBadgeOfficial{background:var(--dsw-alias-brand-primary,#4f6ef7);color:#fff;border-radius:9px;flex-shrink:0;align-items:center;height:18px;padding:0 8px;font-size:11px;font-weight:600;display:inline-flex}.eGUBIq_diagBadgeCommunity{background:var(--dsw-alias-bg-layer-2,#f3f4f6);height:18px;color:var(--dsw-alias-label-secondary,#6b7280);border-radius:9px;flex-shrink:0;align-items:center;padding:0 8px;font-size:11px;display:inline-flex}.eGUBIq_diagBadgeShadow{background:var(--dsw-alias-state-error-primary,#dc2626);color:#fff;border-radius:9px;flex-shrink:0;align-items:center;height:18px;padding:0 8px;font-size:11px;font-weight:600;display:inline-flex}.eGUBIq_diagList{flex-direction:column;gap:6px;display:flex}.eGUBIq_sectionOverview{color:var(--dsw-alias-label-tertiary,#8b93a1);text-overflow:ellipsis;white-space:nowrap;max-width:100%;padding:2px 0 6px;font-size:12px;line-height:18px;overflow:hidden}.eGUBIq_diagAlert{color:var(--dsw-alias-state-warn-primary,#b45309)}.eGUBIq_ovRow{background:var(--dsw-alias-bg-layer-2,#f7f8fa);border-radius:8px;flex-wrap:wrap;align-items:center;gap:8px;min-width:0;padding:6px 10px;font-size:12px;line-height:18px;display:flex}.eGUBIq_ovArrow{color:var(--dsw-alias-label-tertiary,#9ca3af);flex-shrink:0;font-size:12px}.eGUBIq_ovByTag{background:var(--dsw-alias-brand-primary,#4f6ef7);color:#fff;text-overflow:ellipsis;white-space:nowrap;border-radius:9px;flex-shrink:0;align-items:center;max-width:260px;height:18px;padding:0 8px;font-size:11px;font-weight:600;display:inline-flex;overflow:hidden}.eGUBIq_ovFrom{color:var(--dsw-alias-label-secondary,#6b7280);text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:12px;overflow:hidden}.eGUBIq_orphRow{background:var(--dsw-alias-bg-layer-2,#f7f8fa);border-radius:8px;flex-wrap:wrap;align-items:center;gap:8px;min-width:0;padding:6px 10px;font-size:12px;line-height:18px;display:flex}.eGUBIq_orphBadge{background:var(--dsw-alias-state-warn-primary,#b45309);color:#fff;white-space:nowrap;border-radius:9px;flex-shrink:0;align-items:center;height:18px;padding:0 8px;font-size:11px;font-weight:600;display:inline-flex}.eGUBIq_dragHandle{width:20px;height:20px;color:var(--dsw-alias-label-tertiary,#9ca3af);cursor:grab;-webkit-user-select:none;user-select:none;flex-shrink:0;justify-content:center;align-items:center;font-size:12px;line-height:20px;display:inline-flex}.eGUBIq_dragOver{outline:2px dashed var(--dsw-alias-brand-primary,#4f6ef7);outline-offset:2px;background:var(--dsw-alias-bg-layer-2,#f0f2f8);border-radius:8px}.eGUBIq_dragging{opacity:.45;background:var(--dsw-alias-bg-layer-2,#f3f4f6)}.eGUBIq_collapseHead{font:inherit;color:var(--dsw-alias-label-primary,#1f2328);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:8px;width:100%;padding:0;font-size:13px;font-weight:600;display:flex}.eGUBIq_collapseIcon{color:var(--dsw-alias-label-secondary,#6b7280);flex-shrink:0;display:inline-flex}.eGUBIq_collapseTitle{flex:1;min-width:0}.eGUBIq_collapseBody{border-top:1px solid var(--dsw-alias-border-l2,#f0f1f3);overflow-wrap:anywhere;flex-direction:column;gap:10px;min-width:0;margin-top:8px;padding-top:10px;display:flex}.eGUBIq_panelNote{color:var(--dsw-alias-label-secondary,#6b7280);margin:0;font-size:12px;line-height:18px}.eGUBIq_fixFallback{flex-direction:column;gap:6px;margin:8px 0;display:flex}.eGUBIq_fixFallbackText{box-sizing:border-box;width:100%;color:var(--dsw-alias-label-primary,#1f2328);background:var(--dsw-alias-bg-layer-2,#f3f4f6);border:1px solid var(--dsw-alias-border-l2,#e5e7eb);resize:vertical;white-space:pre-wrap;word-break:break-all;border-radius:6px;padding:8px 10px;font-family:ui-monospace,Menlo,monospace;font-size:11px;line-height:16px}";
|
|
920
|
+
const css = ".eGUBIq_root{min-width:0;height:100%;color:var(--dsw-alias-label-primary,#1f2328);flex-direction:column;display:flex;position:relative}.eGUBIq_head{flex-direction:column;gap:12px;padding:4px 4px 12px;display:flex}.eGUBIq_title{margin:0;font-size:16px;font-weight:500;line-height:24px}.eGUBIq_sub{color:var(--dsw-alias-label-tertiary,#8b93a1);align-items:center;gap:8px;margin:0;font-size:14px;line-height:22px;display:flex}.eGUBIq_tabs{border-bottom:1px solid var(--dsw-alias-border-l2,#e5e7eb);align-items:flex-end;gap:2px;display:flex}.eGUBIq_tab{font:inherit;color:var(--dsw-alias-label-secondary,#6b7280);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;padding:7px 12px;font-size:13px}.eGUBIq_tab.eGUBIq_on{color:var(--dsw-alias-brand-primary,#4f6ef7);border-bottom-color:var(--dsw-alias-brand-primary,#4f6ef7);font-weight:600}.eGUBIq_banner{background:var(--dsw-alias-bg-layer-2,#fdf3e3);border:1px solid var(--dsw-alias-border-l2,#f3e3c3);border-radius:8px;align-items:center;gap:8px;margin:0;padding:8px 12px;font-size:12px;display:flex}.eGUBIq_bannerIcon{color:var(--dsw-alias-label-secondary,#6b7280);flex-shrink:0}.eGUBIq_bannerHint{color:var(--dsw-alias-label-tertiary,#8b93a1);cursor:help;display:inline-flex}.eGUBIq_body{flex:1;padding:12px 4px 24px;overflow-x:hidden;overflow-y:auto}.eGUBIq_cats{z-index:5;background:var(--dsw-alias-bg-layer-2,#f7f8fa);margin:0 -4px 2px;padding:12px 4px 4px;position:sticky;top:-1px}.eGUBIq_catsRow{align-items:flex-start;gap:8px;display:flex;position:relative}.eGUBIq_star{color:var(--dsw-alias-label-secondary,#9ca3af);font-size:11px}.eGUBIq_top{z-index:20;display:inline-flex;position:absolute;bottom:18px;right:18px}.eGUBIq_topBtn{border-radius:99px;width:38px;height:38px;padding:0}.eGUBIq_tag{border:1px solid var(--dsw-alias-border-l3,#d9dde3);color:var(--dsw-alias-label-secondary,#6b7280);border-radius:4px;flex-shrink:0;padding:1px 6px;font-size:11px;line-height:16px}.eGUBIq_okState{color:var(--dsw-alias-state-success-primary,#16a34a);white-space:nowrap;font-size:12px;font-weight:600}.eGUBIq_catsWrap{flex-wrap:wrap;flex:1;align-items:center;gap:6px;min-width:0;display:flex}.eGUBIq_catsCollapsed{max-height:62px;overflow:hidden}.eGUBIq_catsToggle.eGUBIq_catsToggle{height:26px;min-height:26px;color:var(--dsw-alias-label-secondary,#6b7280);padding:0 6px}.eGUBIq_shots{-webkit-overflow-scrolling:touch;scrollbar-width:thin;gap:8px;margin:0 0 8px;padding:2px 0 6px;display:flex;overflow-x:auto}.eGUBIq_shot{object-fit:cover;border:1px solid var(--dsw-alias-border-default,#e5e7eb);background:var(--dsw-alias-bg-layer-2,#f3f4f6);border-radius:8px;flex:none;max-width:260px;height:150px}.eGUBIq_cmd{background:var(--dsw-alias-bg-layer-2,#f3f4f6);word-break:break-all;border-radius:6px;margin:8px 0 0;padding:8px 10px;font-family:ui-monospace,Menlo,monospace;font-size:11px;line-height:18px}.eGUBIq_warnLine{color:var(--dsw-alias-state-warn-primary,#b45309);align-items:center;gap:4px;margin:0;font-size:12px;font-weight:600;line-height:18px;display:flex}.eGUBIq_modalNote{color:var(--dsw-alias-label-tertiary,#8b93a1);align-items:center;gap:4px;margin:12px 0 0;font-size:12px;line-height:18px;display:flex}.eGUBIq_grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;display:grid}.eGUBIq_swatches{border:1px solid var(--dsw-alias-border-l2,#e5e7eb);border-radius:8px;gap:0;height:34px;display:flex;overflow:hidden}.eGUBIq_themesGrid{margin-bottom:12px}.eGUBIq_swatches i{flex:1}.eGUBIq_card{background:var(--dsw-alias-bg-layer-1,#fff);border:1px solid var(--dsw-alias-border-l2,#e5e7eb);border-radius:12px;flex-direction:column;gap:12px;padding:12px 14px;display:flex}.eGUBIq_row1{align-items:center;gap:10px;min-width:0;display:flex}.eGUBIq_srcBtn{flex-shrink:0;align-self:flex-start}.eGUBIq_av{color:#fff;object-fit:cover;background:var(--dsw-alias-bg-layer-2,#f3f4f6);border-radius:8px;flex-shrink:0;place-items:center;width:32px;height:32px;font-size:14px;font-weight:700;display:grid}.eGUBIq_nm{text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:500;line-height:22px;overflow:hidden}.eGUBIq_owner{color:var(--dsw-alias-label-secondary,#9ca3af);font-size:11px}.eGUBIq_desc{color:var(--dsw-alias-label-tertiary,#8b93a1);min-height:36px;margin:0;font-size:12px;line-height:18px}.eGUBIq_foot{align-items:center;gap:8px;margin-top:auto;display:flex}.eGUBIq_grow{flex:1}.eGUBIq_titleRow{align-items:center;gap:10px;display:flex}.eGUBIq_version{color:var(--dsw-alias-label-tertiary,#8b93a1);font-variant-numeric:tabular-nums;flex-shrink:0;font-size:12px;line-height:20px}.eGUBIq_descTight{min-height:0}.eGUBIq_src{color:var(--dsw-alias-label-secondary,#9ca3af);font-size:11px;text-decoration:none}.eGUBIq_src:hover{color:var(--dsw-alias-brand-primary,#4f6ef7)}.eGUBIq_dot{vertical-align:2px;margin-left:5px}.eGUBIq_act{flex-wrap:wrap;align-items:center;gap:6px;margin-top:6px;font-size:11px;display:flex}.eGUBIq_actLive{color:var(--dsw-alias-state-success-primary,#16a34a);align-items:center;gap:4px;font-weight:600;display:inline-flex}.eGUBIq_actWarn{color:var(--dsw-alias-state-warn-primary,#b45309);align-items:center;gap:4px;font-weight:600;display:inline-flex}.eGUBIq_actBroken{color:var(--dsw-alias-state-error-primary,#dc2626);align-items:center;gap:4px;font-weight:600;display:inline-flex}.eGUBIq_actWhy{color:var(--dsw-alias-label-secondary,#6b7280);margin-top:2px}.eGUBIq_loading{color:var(--dsw-alias-label-secondary,#9ca3af);flex-direction:column;align-items:center;gap:12px;padding:48px;font-size:13px;display:flex}.eGUBIq_spin{color:var(--dsw-alias-brand-primary,#4f6ef7);flex-shrink:0;animation:.8s linear infinite eGUBIq_sp;display:inline-flex}@keyframes eGUBIq_sp{to{transform:rotate(360deg)}}.eGUBIq_progress{background:var(--dsw-alias-bg-layer-2,#f3f4f6);border:1px solid var(--dsw-alias-border-l2,#e5e7eb);color:var(--dsw-alias-label-secondary,#6b7280);border-radius:8px;flex-wrap:wrap;align-items:center;gap:9px;margin:0;padding:8px 12px;font-size:12px;display:flex}.eGUBIq_bar{background:var(--dsw-alias-border-l1,#e5e7eb);border-radius:99px;width:100%;height:4px;overflow:hidden}.eGUBIq_barFill{background:var(--dsw-alias-brand-primary,#4f6ef7);border-radius:99px;height:100%;transition:width .6s}.eGUBIq_barWave{width:30%;animation:1.2s ease-in-out infinite eGUBIq_dshmSlide}@keyframes eGUBIq_dshmSlide{0%{margin-left:-30%}to{margin-left:100%}}.eGUBIq_irow .eGUBIq_progress{margin-top:8px}.eGUBIq_progress code{text-overflow:ellipsis;white-space:nowrap;font-family:ui-monospace,Menlo,monospace;font-size:11px;overflow:hidden}.eGUBIq_empty{color:var(--dsw-alias-label-secondary,#9ca3af);text-align:center;padding:32px;font-size:13px}.eGUBIq_err{color:var(--dsw-alias-state-error-primary,#dc2626);white-space:pre-wrap;word-break:break-all;margin:8px 0;font-size:12px}.eGUBIq_irow{background:var(--dsw-alias-bg-layer-1,#fff);border:1px solid var(--dsw-alias-border-l2,#e5e7eb);border-radius:12px;align-items:center;gap:10px;margin-bottom:8px;padding:12px 14px;display:flex}.eGUBIq_irowMissing{filter:grayscale();opacity:.5}.eGUBIq_irow>.eGUBIq_src,.eGUBIq_irow>.eGUBIq_owner,.eGUBIq_irow button{white-space:nowrap;flex-shrink:0}.eGUBIq_tabSearchRow{padding:0 4px 10px;display:flex}.eGUBIq_tabSearch{width:260px}.eGUBIq_spec{color:var(--dsw-alias-label-secondary,#9ca3af);overflow-wrap:anywhere;min-width:0;font-family:ui-monospace,Menlo,monospace;font-size:11px}.eGUBIq_specTag{white-space:nowrap;border-radius:4px;flex-shrink:0;align-items:center;height:16px;padding:0 5px;font-size:10px;font-weight:600;display:inline-flex}.eGUBIq_specTagGit{color:#0b7285;background:#12a3c41f}.eGUBIq_specTagFile{color:#b07d1b;background:#f0b42924}.eGUBIq_backupCheckList .eGUBIq_grow{white-space:nowrap;text-overflow:ellipsis;flex:70%;min-width:0;overflow:hidden}.eGUBIq_backupCheckList .eGUBIq_spec{text-align:right;white-space:nowrap;text-overflow:ellipsis;flex:0 30%;max-width:30%;overflow:hidden}.eGUBIq_staleAction{margin-top:8px}.eGUBIq_pct{color:var(--dsw-alias-label-secondary,#6b7280);flex-shrink:0;font-size:11px;font-weight:600}.eGUBIq_pager{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin:16px 0 4px;display:flex}.eGUBIq_pagerPages{flex-wrap:wrap;flex:1;justify-content:center;align-items:center;gap:6px;min-width:0;display:flex}.eGUBIq_pageEllipsis{color:var(--dsw-alias-label-secondary,#9ca3af);padding:0 2px;font-size:12px}.eGUBIq_pageInfo{color:var(--dsw-alias-label-secondary,#6b7280);white-space:nowrap;font-size:12px}.eGUBIq_depBadge{border:1px solid var(--dsw-alias-state-warn-primary,#b45309);color:var(--dsw-alias-state-warn-primary,#b45309);white-space:nowrap;border-radius:4px;flex-shrink:0;margin-left:6px;padding:1px 6px;font-size:11px;font-weight:600;line-height:16px}.eGUBIq_deprecate{color:var(--dsw-alias-state-warn-primary,#b45309);background:var(--dsw-alias-bg-layer-2,#fdf3e3);border:1px solid var(--dsw-alias-border-l2,#f3e3c3);border-radius:8px;margin:0;padding:8px 10px;font-size:12px;line-height:18px}.eGUBIq_deprecate a{color:var(--dsw-alias-state-warn-primary,#b45309);text-decoration:underline}.eGUBIq_deprecate .eGUBIq_src{margin-left:8px}.eGUBIq_depLine{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.eGUBIq_switch{border:1px solid var(--dsw-alias-border-l2,#d9dde3);background:var(--dsw-alias-bg-layer-2,#e5e7eb);cursor:pointer;border-radius:99px;flex-shrink:0;width:38px;height:22px;padding:0;transition:background .15s,border-color .15s;position:relative}.eGUBIq_switchOn{background:var(--dsw-alias-state-success-primary,#16a34a);border-color:var(--dsw-alias-state-success-primary,#16a34a)}.eGUBIq_switchMixed{background:var(--dsw-alias-state-warn-primary,#b45309);border-color:var(--dsw-alias-state-warn-primary,#b45309)}.eGUBIq_switchKnob{background:#fff;border-radius:99px;width:16px;height:16px;transition:left .15s;position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #00000040}.eGUBIq_switchOn .eGUBIq_switchKnob,.eGUBIq_switchMixed .eGUBIq_switchKnob{left:18px}.eGUBIq_switch:disabled{opacity:.5;cursor:default}.eGUBIq_viewBar{border:1px solid var(--dsw-alias-border-l2,#e5e7eb);border-radius:8px;align-items:center;gap:2px;width:fit-content;margin-bottom:12px;padding:2px;display:flex}.eGUBIq_viewBtn{font:inherit;color:var(--dsw-alias-label-secondary,#6b7280);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:6px;padding:4px 10px;font-size:12px;line-height:18px}.eGUBIq_viewBtn:hover{color:var(--dsw-alias-brand-primary,#4f6ef7)}.eGUBIq_viewOn{background:var(--dsw-alias-bg-layer-2,#eef0f4);color:var(--dsw-alias-label-primary,#1f2328);font-weight:600}.eGUBIq_groupRow{background:var(--dsw-alias-bg-layer-1,#fff);border:1px solid var(--dsw-alias-border-l2,#e5e7eb);border-radius:12px;margin-bottom:10px;padding:12px 14px}.eGUBIq_groupHead{align-items:center;gap:10px;min-width:0;display:flex}.eGUBIq_groupName{text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600;line-height:20px;overflow:hidden}.eGUBIq_groupActions{flex-shrink:0;align-items:center;gap:6px;display:flex}.eGUBIq_groupMembers{flex-direction:column;gap:6px;margin-top:10px;display:flex}.eGUBIq_groupMember{background:var(--dsw-alias-bg-layer-2,#f7f8fa);border-radius:8px;align-items:center;gap:8px;padding:6px 8px;font-size:12px;line-height:18px;display:flex}.eGUBIq_groupMember .eGUBIq_nm{flex:1;min-width:0;font-size:12px}.eGUBIq_groupAddPanel{border-top:1px dashed var(--dsw-alias-border-l2,#e5e7eb);flex-direction:column;gap:6px;margin-top:10px;padding-top:10px;display:flex}.eGUBIq_groupCreate{align-items:center;gap:8px;margin-bottom:10px;display:flex}.eGUBIq_inlineInput{flex:1;min-width:120px}.eGUBIq_assignRow{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.eGUBIq_assignSelect{border:1px solid var(--dsw-alias-border-l2,#e5e7eb);background:var(--dsw-alias-bg-layer-1,#fff);color:var(--dsw-alias-label-primary,#1f2328);font:inherit;border-radius:6px;padding:3px 6px;font-size:12px;line-height:18px}.eGUBIq_groupHint{color:var(--dsw-alias-label-tertiary,#8b93a1);font-size:11px}.eGUBIq_sectAction{color:var(--dsw-alias-label-secondary,#6b7280);align-items:center;gap:8px;margin:14px 2px 8px;font-size:12px;font-weight:600;display:flex}.eGUBIq_backupGrid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px;display:grid}.eGUBIq_backupCard{background:var(--dsw-alias-bg-layer-1,#fff);border:1px solid var(--dsw-alias-border-l2,#e5e7eb);border-radius:12px;flex-direction:column;gap:10px;padding:16px;display:flex}.eGUBIq_backupCard h3{margin:0;font-size:14px}.eGUBIq_backupCard p{color:var(--dsw-alias-label-secondary,#6b7280);margin:0;font-size:12px;line-height:18px}.eGUBIq_backupActions{flex-wrap:wrap;gap:8px;display:flex;position:relative}.eGUBIq_hiddenFile{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.eGUBIq_backupInput{box-sizing:border-box;width:100%}.eGUBIq_backupCheck{cursor:pointer;align-items:center;gap:6px;font-size:12px;display:flex}.eGUBIq_backupWarn{margin:0;font-size:12px;line-height:18px;color:var(--dsw-alias-state-warn-primary,#b45309)!important}.eGUBIq_backupMessage{color:var(--dsw-alias-label-secondary,#6b7280);grid-column:1/-1;font-size:12px}.eGUBIq_backupCheckList{flex-direction:column;gap:6px;max-height:260px;margin:10px 0 4px;padding-right:4px;display:flex;overflow-y:auto}.eGUBIq_backupCheckList .eGUBIq_backupCheck{justify-content:space-between;gap:8px}.eGUBIq_diagPage{flex-direction:column;gap:12px;height:100%;min-height:0;display:flex;overflow-y:auto}.eGUBIq_diagSummary{background:var(--dsw-alias-bg-layer-1,#fff);border:1px solid var(--dsw-alias-border-l2,#e5e7eb);border-radius:12px;flex-wrap:wrap;align-items:center;gap:12px;padding:10px 14px;font-size:12px;display:flex}.eGUBIq_diagSummaryItem{color:var(--dsw-alias-label-secondary,#6b7280);white-space:nowrap;align-items:center;gap:6px;display:inline-flex}.eGUBIq_diagSummaryMeta{color:var(--dsw-alias-label-tertiary,#9ca3af);text-overflow:ellipsis;white-space:nowrap;max-width:320px;font-family:ui-monospace,Menlo,monospace;font-size:11px;overflow:hidden}.eGUBIq_diagSection{background:var(--dsw-alias-bg-layer-1,#fff);border:1px solid var(--dsw-alias-border-l2,#e5e7eb);border-radius:12px;flex-direction:column;gap:8px;padding:12px 14px;display:flex}.eGUBIq_diagSection h3{color:var(--dsw-alias-label-primary,#1f2328);margin:0;font-size:13px;font-weight:600}.eGUBIq_diagCount{color:var(--dsw-alias-label-tertiary,#9ca3af);font-size:11px;font-weight:400}.eGUBIq_diagEmpty{color:var(--dsw-alias-label-secondary,#9ca3af);padding:8px 0;font-size:12px}.eGUBIq_diagBundle{border-top:1px solid var(--dsw-alias-border-l2,#f0f1f3);flex-direction:column;gap:6px;padding-top:8px;display:flex}.eGUBIq_diagBundle:first-of-type{border-top:none;padding-top:0}.eGUBIq_diagRow{flex-wrap:wrap;align-items:center;gap:8px;min-width:0;font-size:12px;line-height:18px;display:flex}.eGUBIq_diagMeta{align-items:baseline;gap:8px;min-width:0;font-size:12px;display:flex}.eGUBIq_diagKey{color:var(--dsw-alias-label-tertiary,#9ca3af);flex-shrink:0;min-width:64px;font-size:11px}.eGUBIq_diagVal{color:var(--dsw-alias-label-primary,#1f2328);overflow-wrap:anywhere;min-width:0;font-family:ui-monospace,Menlo,monospace;font-size:12px;font-weight:500}.eGUBIq_diagIndex{background:var(--dsw-alias-bg-layer-2,#f3f4f6);min-width:18px;height:18px;color:var(--dsw-alias-label-secondary,#6b7280);border-radius:9px;flex-shrink:0;justify-content:center;align-items:center;font-size:11px;font-weight:600;display:inline-flex}.eGUBIq_diagArrow{color:var(--dsw-alias-label-tertiary,#9ca3af);flex-shrink:0;font-size:12px}.eGUBIq_diagBadgeOfficial{background:var(--dsw-alias-brand-primary,#4f6ef7);color:#fff;border-radius:9px;flex-shrink:0;align-items:center;height:18px;padding:0 8px;font-size:11px;font-weight:600;display:inline-flex}.eGUBIq_diagBadgeCommunity{background:var(--dsw-alias-bg-layer-2,#f3f4f6);height:18px;color:var(--dsw-alias-label-secondary,#6b7280);border-radius:9px;flex-shrink:0;align-items:center;padding:0 8px;font-size:11px;display:inline-flex}.eGUBIq_diagBadgeShadow{background:var(--dsw-alias-state-error-primary,#dc2626);color:#fff;border-radius:9px;flex-shrink:0;align-items:center;height:18px;padding:0 8px;font-size:11px;font-weight:600;display:inline-flex}.eGUBIq_diagList{flex-direction:column;gap:6px;display:flex}.eGUBIq_sectionOverview{color:var(--dsw-alias-label-tertiary,#8b93a1);text-overflow:ellipsis;white-space:nowrap;max-width:100%;padding:2px 0 6px;font-size:12px;line-height:18px;overflow:hidden}.eGUBIq_diagAlert{color:var(--dsw-alias-state-warn-primary,#b45309)}.eGUBIq_ovRow{background:var(--dsw-alias-bg-layer-2,#f7f8fa);border-radius:8px;flex-wrap:wrap;align-items:center;gap:8px;min-width:0;padding:6px 10px;font-size:12px;line-height:18px;display:flex}.eGUBIq_ovArrow{color:var(--dsw-alias-label-tertiary,#9ca3af);flex-shrink:0;font-size:12px}.eGUBIq_ovByTag{background:var(--dsw-alias-brand-primary,#4f6ef7);color:#fff;text-overflow:ellipsis;white-space:nowrap;border-radius:9px;flex-shrink:0;align-items:center;max-width:260px;height:18px;padding:0 8px;font-size:11px;font-weight:600;display:inline-flex;overflow:hidden}.eGUBIq_ovFrom{color:var(--dsw-alias-label-secondary,#6b7280);text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:12px;overflow:hidden}.eGUBIq_orphRow{background:var(--dsw-alias-bg-layer-2,#f7f8fa);border-radius:8px;flex-wrap:wrap;align-items:center;gap:8px;min-width:0;padding:6px 10px;font-size:12px;line-height:18px;display:flex}.eGUBIq_orphBadge{background:var(--dsw-alias-state-warn-primary,#b45309);color:#fff;white-space:nowrap;border-radius:9px;flex-shrink:0;align-items:center;height:18px;padding:0 8px;font-size:11px;font-weight:600;display:inline-flex}.eGUBIq_dragHandle{width:20px;height:20px;color:var(--dsw-alias-label-tertiary,#9ca3af);cursor:grab;-webkit-user-select:none;user-select:none;flex-shrink:0;justify-content:center;align-items:center;font-size:12px;line-height:20px;display:inline-flex}.eGUBIq_dragOver{outline:2px dashed var(--dsw-alias-brand-primary,#4f6ef7);outline-offset:2px;background:var(--dsw-alias-bg-layer-2,#f0f2f8);border-radius:8px}.eGUBIq_dragging{opacity:.45;background:var(--dsw-alias-bg-layer-2,#f3f4f6)}.eGUBIq_collapseHead{font:inherit;color:var(--dsw-alias-label-primary,#1f2328);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:8px;width:100%;padding:0;font-size:13px;font-weight:600;display:flex}.eGUBIq_collapseIcon{color:var(--dsw-alias-label-secondary,#6b7280);flex-shrink:0;display:inline-flex}.eGUBIq_collapseTitle{flex:1;min-width:0}.eGUBIq_collapseBody{border-top:1px solid var(--dsw-alias-border-l2,#f0f1f3);overflow-wrap:anywhere;flex-direction:column;gap:10px;min-width:0;margin-top:8px;padding-top:10px;display:flex}.eGUBIq_panelNote{color:var(--dsw-alias-label-secondary,#6b7280);margin:0;font-size:12px;line-height:18px}.eGUBIq_fixFallback{flex-direction:column;gap:6px;margin:8px 0;display:flex}.eGUBIq_fixFallbackText{box-sizing:border-box;width:100%;color:var(--dsw-alias-label-primary,#1f2328);background:var(--dsw-alias-bg-layer-2,#f3f4f6);border:1px solid var(--dsw-alias-border-l2,#e5e7eb);resize:vertical;white-space:pre-wrap;word-break:break-all;border-radius:6px;padding:8px 10px;font-family:ui-monospace,Menlo,monospace;font-size:11px;line-height:16px}.eGUBIq_setCard{border:1px solid var(--dsw-alias-border-l2,#e5e7eb);border-radius:12px;flex-direction:column;gap:14px;padding:16px 18px;display:flex}.eGUBIq_setHead{flex-direction:column;gap:4px;display:flex}.eGUBIq_setTitle{font-size:15px;font-weight:600;line-height:22px}.eGUBIq_setDesc{color:var(--dsw-alias-label-tertiary,#8b93a1);font-size:13px;line-height:20px}.eGUBIq_setRow{align-items:flex-start;gap:12px;display:flex}.eGUBIq_setLabelBox{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.eGUBIq_setLabel{font-size:13px;line-height:20px}.eGUBIq_setHint{color:var(--dsw-alias-label-tertiary,#8b93a1);font-size:12px;line-height:18px}.eGUBIq_setRevert{font:inherit;color:var(--dsw-alias-brand-primary,#4f6ef7);cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:0;font-size:12px}.eGUBIq_setRevert:disabled{color:var(--dsw-alias-label-tertiary,#8b93a1);cursor:default}";
|
|
913
921
|
const tagId = "dshmarket/Market.module.css";
|
|
914
922
|
if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId) + "]") === null) {
|
|
915
923
|
const tag = document.createElement("style");
|
|
@@ -919,146 +927,155 @@ window.__ModuleLoader__.load({ id: "dshmarket", factory: (require) => {
|
|
|
919
927
|
document.head.appendChild(tag);
|
|
920
928
|
}
|
|
921
929
|
var Market_module_css_default = {
|
|
922
|
-
"
|
|
923
|
-
"
|
|
924
|
-
"
|
|
925
|
-
"
|
|
926
|
-
"
|
|
927
|
-
"
|
|
928
|
-
"ovByTag": "eGUBIq_ovByTag",
|
|
929
|
-
"spec": "eGUBIq_spec",
|
|
930
|
-
"inlineInput": "eGUBIq_inlineInput",
|
|
931
|
-
"star": "eGUBIq_star",
|
|
932
|
-
"backupWarn": "eGUBIq_backupWarn",
|
|
933
|
-
"specTagGit": "eGUBIq_specTagGit",
|
|
934
|
-
"groupHead": "eGUBIq_groupHead",
|
|
930
|
+
"sub": "eGUBIq_sub",
|
|
931
|
+
"nm": "eGUBIq_nm",
|
|
932
|
+
"err": "eGUBIq_err",
|
|
933
|
+
"setDesc": "eGUBIq_setDesc",
|
|
934
|
+
"diagKey": "eGUBIq_diagKey",
|
|
935
|
+
"grid": "eGUBIq_grid",
|
|
935
936
|
"collapseIcon": "eGUBIq_collapseIcon",
|
|
936
|
-
"
|
|
937
|
-
"
|
|
938
|
-
"
|
|
939
|
-
"
|
|
940
|
-
"
|
|
941
|
-
"owner": "eGUBIq_owner",
|
|
942
|
-
"groupMember": "eGUBIq_groupMember",
|
|
943
|
-
"cmd": "eGUBIq_cmd",
|
|
937
|
+
"root": "eGUBIq_root",
|
|
938
|
+
"depBadge": "eGUBIq_depBadge",
|
|
939
|
+
"dshmSlide": "eGUBIq_dshmSlide",
|
|
940
|
+
"groupAddPanel": "eGUBIq_groupAddPanel",
|
|
941
|
+
"catsToggle": "eGUBIq_catsToggle",
|
|
944
942
|
"bannerIcon": "eGUBIq_bannerIcon",
|
|
945
|
-
"
|
|
946
|
-
"
|
|
947
|
-
"
|
|
948
|
-
"
|
|
949
|
-
"diagPage": "eGUBIq_diagPage",
|
|
950
|
-
"titleRow": "eGUBIq_titleRow",
|
|
951
|
-
"tabs": "eGUBIq_tabs",
|
|
952
|
-
"diagRow": "eGUBIq_diagRow",
|
|
943
|
+
"diagSection": "eGUBIq_diagSection",
|
|
944
|
+
"groupHead": "eGUBIq_groupHead",
|
|
945
|
+
"diagBadgeOfficial": "eGUBIq_diagBadgeOfficial",
|
|
946
|
+
"ovByTag": "eGUBIq_ovByTag",
|
|
953
947
|
"sectionOverview": "eGUBIq_sectionOverview",
|
|
954
|
-
"
|
|
948
|
+
"backupCard": "eGUBIq_backupCard",
|
|
949
|
+
"diagSummaryMeta": "eGUBIq_diagSummaryMeta",
|
|
950
|
+
"diagSummary": "eGUBIq_diagSummary",
|
|
951
|
+
"empty": "eGUBIq_empty",
|
|
952
|
+
"modalNote": "eGUBIq_modalNote",
|
|
953
|
+
"descTight": "eGUBIq_descTight",
|
|
954
|
+
"topBtn": "eGUBIq_topBtn",
|
|
955
|
+
"actWarn": "eGUBIq_actWarn",
|
|
956
|
+
"assignRow": "eGUBIq_assignRow",
|
|
957
|
+
"catsCollapsed": "eGUBIq_catsCollapsed",
|
|
955
958
|
"switch": "eGUBIq_switch",
|
|
956
|
-
"
|
|
959
|
+
"assignSelect": "eGUBIq_assignSelect",
|
|
957
960
|
"orphBadge": "eGUBIq_orphBadge",
|
|
958
|
-
"
|
|
959
|
-
"
|
|
960
|
-
"
|
|
961
|
+
"fixFallbackText": "eGUBIq_fixFallbackText",
|
|
962
|
+
"setRevert": "eGUBIq_setRevert",
|
|
963
|
+
"barFill": "eGUBIq_barFill",
|
|
964
|
+
"groupMembers": "eGUBIq_groupMembers",
|
|
965
|
+
"diagIndex": "eGUBIq_diagIndex",
|
|
966
|
+
"diagList": "eGUBIq_diagList",
|
|
967
|
+
"fixFallback": "eGUBIq_fixFallback",
|
|
968
|
+
"setTitle": "eGUBIq_setTitle",
|
|
969
|
+
"backupCheck": "eGUBIq_backupCheck",
|
|
970
|
+
"top": "eGUBIq_top",
|
|
971
|
+
"loading": "eGUBIq_loading",
|
|
972
|
+
"dragging": "eGUBIq_dragging",
|
|
973
|
+
"progress": "eGUBIq_progress",
|
|
961
974
|
"backupCheckList": "eGUBIq_backupCheckList",
|
|
962
|
-
"
|
|
963
|
-
"
|
|
975
|
+
"depLine": "eGUBIq_depLine",
|
|
976
|
+
"diagBundle": "eGUBIq_diagBundle",
|
|
977
|
+
"sectAction": "eGUBIq_sectAction",
|
|
964
978
|
"av": "eGUBIq_av",
|
|
965
|
-
"
|
|
966
|
-
"
|
|
967
|
-
"grow": "eGUBIq_grow",
|
|
968
|
-
"pager": "eGUBIq_pager",
|
|
969
|
-
"depBadge": "eGUBIq_depBadge",
|
|
970
|
-
"groupRow": "eGUBIq_groupRow",
|
|
971
|
-
"act": "eGUBIq_act",
|
|
972
|
-
"version": "eGUBIq_version",
|
|
973
|
-
"viewBar": "eGUBIq_viewBar",
|
|
979
|
+
"groupMember": "eGUBIq_groupMember",
|
|
980
|
+
"diagPage": "eGUBIq_diagPage",
|
|
974
981
|
"switchKnob": "eGUBIq_switchKnob",
|
|
975
|
-
"
|
|
976
|
-
"diagBundle": "eGUBIq_diagBundle",
|
|
977
|
-
"panelNote": "eGUBIq_panelNote",
|
|
978
|
-
"tag": "eGUBIq_tag",
|
|
982
|
+
"deprecate": "eGUBIq_deprecate",
|
|
979
983
|
"diagSummaryItem": "eGUBIq_diagSummaryItem",
|
|
980
|
-
"
|
|
981
|
-
"progress": "eGUBIq_progress",
|
|
982
|
-
"catsCollapsed": "eGUBIq_catsCollapsed",
|
|
983
|
-
"row1": "eGUBIq_row1",
|
|
984
|
-
"dot": "eGUBIq_dot",
|
|
985
|
-
"ovRow": "eGUBIq_ovRow",
|
|
986
|
-
"specTagFile": "eGUBIq_specTagFile",
|
|
987
|
-
"root": "eGUBIq_root",
|
|
988
|
-
"cats": "eGUBIq_cats",
|
|
989
|
-
"pct": "eGUBIq_pct",
|
|
990
|
-
"desc": "eGUBIq_desc",
|
|
991
|
-
"switchOn": "eGUBIq_switchOn",
|
|
992
|
-
"backupInput": "eGUBIq_backupInput",
|
|
993
|
-
"actLive": "eGUBIq_actLive",
|
|
994
|
-
"assignRow": "eGUBIq_assignRow",
|
|
995
|
-
"groupMembers": "eGUBIq_groupMembers",
|
|
996
|
-
"groupCreate": "eGUBIq_groupCreate",
|
|
997
|
-
"shot": "eGUBIq_shot",
|
|
998
|
-
"diagSummaryMeta": "eGUBIq_diagSummaryMeta",
|
|
999
|
-
"diagMeta": "eGUBIq_diagMeta",
|
|
1000
|
-
"viewOn": "eGUBIq_viewOn",
|
|
984
|
+
"pagerPages": "eGUBIq_pagerPages",
|
|
1001
985
|
"ovArrow": "eGUBIq_ovArrow",
|
|
986
|
+
"sp": "eGUBIq_sp",
|
|
1002
987
|
"diagVal": "eGUBIq_diagVal",
|
|
1003
|
-
"staleAction": "eGUBIq_staleAction",
|
|
1004
|
-
"collapseHead": "eGUBIq_collapseHead",
|
|
1005
|
-
"dshmSlide": "eGUBIq_dshmSlide",
|
|
1006
|
-
"bannerHint": "eGUBIq_bannerHint",
|
|
1007
|
-
"dragOver": "eGUBIq_dragOver",
|
|
1008
|
-
"diagIndex": "eGUBIq_diagIndex",
|
|
1009
|
-
"actWarn": "eGUBIq_actWarn",
|
|
1010
|
-
"diagAlert": "eGUBIq_diagAlert",
|
|
1011
|
-
"backupGrid": "eGUBIq_backupGrid",
|
|
1012
|
-
"empty": "eGUBIq_empty",
|
|
1013
|
-
"diagBadgeCommunity": "eGUBIq_diagBadgeCommunity",
|
|
1014
|
-
"top": "eGUBIq_top",
|
|
1015
|
-
"fixFallback": "eGUBIq_fixFallback",
|
|
1016
|
-
"diagList": "eGUBIq_diagList",
|
|
1017
|
-
"srcBtn": "eGUBIq_srcBtn",
|
|
1018
|
-
"tabSearch": "eGUBIq_tabSearch",
|
|
1019
988
|
"orphRow": "eGUBIq_orphRow",
|
|
1020
|
-
"
|
|
1021
|
-
"
|
|
1022
|
-
"diagEmpty": "eGUBIq_diagEmpty",
|
|
1023
|
-
"modalNote": "eGUBIq_modalNote",
|
|
1024
|
-
"grid": "eGUBIq_grid",
|
|
1025
|
-
"nm": "eGUBIq_nm",
|
|
1026
|
-
"depLine": "eGUBIq_depLine",
|
|
1027
|
-
"switchMixed": "eGUBIq_switchMixed",
|
|
989
|
+
"title": "eGUBIq_title",
|
|
990
|
+
"dragHandle": "eGUBIq_dragHandle",
|
|
1028
991
|
"src": "eGUBIq_src",
|
|
1029
|
-
"
|
|
1030
|
-
"
|
|
1031
|
-
"
|
|
1032
|
-
"
|
|
1033
|
-
"
|
|
1034
|
-
"
|
|
1035
|
-
"
|
|
1036
|
-
"
|
|
1037
|
-
"backupCheck": "eGUBIq_backupCheck",
|
|
1038
|
-
"diagSection": "eGUBIq_diagSection",
|
|
1039
|
-
"topBtn": "eGUBIq_topBtn",
|
|
1040
|
-
"banner": "eGUBIq_banner",
|
|
992
|
+
"tabSearch": "eGUBIq_tabSearch",
|
|
993
|
+
"version": "eGUBIq_version",
|
|
994
|
+
"viewOn": "eGUBIq_viewOn",
|
|
995
|
+
"groupName": "eGUBIq_groupName",
|
|
996
|
+
"diagBadgeShadow": "eGUBIq_diagBadgeShadow",
|
|
997
|
+
"body": "eGUBIq_body",
|
|
998
|
+
"viewBar": "eGUBIq_viewBar",
|
|
999
|
+
"setLabel": "eGUBIq_setLabel",
|
|
1041
1000
|
"catsWrap": "eGUBIq_catsWrap",
|
|
1001
|
+
"viewBtn": "eGUBIq_viewBtn",
|
|
1002
|
+
"barWave": "eGUBIq_barWave",
|
|
1003
|
+
"groupHint": "eGUBIq_groupHint",
|
|
1004
|
+
"spec": "eGUBIq_spec",
|
|
1005
|
+
"cmd": "eGUBIq_cmd",
|
|
1006
|
+
"shot": "eGUBIq_shot",
|
|
1007
|
+
"groupRow": "eGUBIq_groupRow",
|
|
1008
|
+
"panelNote": "eGUBIq_panelNote",
|
|
1009
|
+
"switchOn": "eGUBIq_switchOn",
|
|
1010
|
+
"setHead": "eGUBIq_setHead",
|
|
1011
|
+
"desc": "eGUBIq_desc",
|
|
1012
|
+
"setRow": "eGUBIq_setRow",
|
|
1013
|
+
"collapseTitle": "eGUBIq_collapseTitle",
|
|
1014
|
+
"ovRow": "eGUBIq_ovRow",
|
|
1015
|
+
"swatches": "eGUBIq_swatches",
|
|
1016
|
+
"hiddenFile": "eGUBIq_hiddenFile",
|
|
1017
|
+
"warnLine": "eGUBIq_warnLine",
|
|
1018
|
+
"backupWarn": "eGUBIq_backupWarn",
|
|
1019
|
+
"diagRow": "eGUBIq_diagRow",
|
|
1020
|
+
"actBroken": "eGUBIq_actBroken",
|
|
1021
|
+
"dragOver": "eGUBIq_dragOver",
|
|
1022
|
+
"catsRow": "eGUBIq_catsRow",
|
|
1042
1023
|
"themesGrid": "eGUBIq_themesGrid",
|
|
1024
|
+
"staleAction": "eGUBIq_staleAction",
|
|
1043
1025
|
"irow": "eGUBIq_irow",
|
|
1026
|
+
"card": "eGUBIq_card",
|
|
1027
|
+
"backupGrid": "eGUBIq_backupGrid",
|
|
1028
|
+
"foot": "eGUBIq_foot",
|
|
1044
1029
|
"groupActions": "eGUBIq_groupActions",
|
|
1045
|
-
"
|
|
1046
|
-
"
|
|
1047
|
-
"
|
|
1048
|
-
"
|
|
1030
|
+
"act": "eGUBIq_act",
|
|
1031
|
+
"groupCreate": "eGUBIq_groupCreate",
|
|
1032
|
+
"backupInput": "eGUBIq_backupInput",
|
|
1033
|
+
"setLabelBox": "eGUBIq_setLabelBox",
|
|
1034
|
+
"ovFrom": "eGUBIq_ovFrom",
|
|
1035
|
+
"srcBtn": "eGUBIq_srcBtn",
|
|
1036
|
+
"spin": "eGUBIq_spin",
|
|
1037
|
+
"diagCount": "eGUBIq_diagCount",
|
|
1038
|
+
"tab": "eGUBIq_tab",
|
|
1039
|
+
"star": "eGUBIq_star",
|
|
1040
|
+
"bar": "eGUBIq_bar",
|
|
1041
|
+
"tag": "eGUBIq_tag",
|
|
1042
|
+
"collapseBody": "eGUBIq_collapseBody",
|
|
1043
|
+
"diagBadgeCommunity": "eGUBIq_diagBadgeCommunity",
|
|
1049
1044
|
"pageEllipsis": "eGUBIq_pageEllipsis",
|
|
1050
|
-
"
|
|
1051
|
-
"
|
|
1045
|
+
"owner": "eGUBIq_owner",
|
|
1046
|
+
"specTag": "eGUBIq_specTag",
|
|
1047
|
+
"specTagGit": "eGUBIq_specTagGit",
|
|
1048
|
+
"shots": "eGUBIq_shots",
|
|
1049
|
+
"inlineInput": "eGUBIq_inlineInput",
|
|
1050
|
+
"titleRow": "eGUBIq_titleRow",
|
|
1051
|
+
"backupMessage": "eGUBIq_backupMessage",
|
|
1052
|
+
"on": "eGUBIq_on",
|
|
1053
|
+
"actWhy": "eGUBIq_actWhy",
|
|
1054
|
+
"pager": "eGUBIq_pager",
|
|
1055
|
+
"setHint": "eGUBIq_setHint",
|
|
1056
|
+
"head": "eGUBIq_head",
|
|
1057
|
+
"actLive": "eGUBIq_actLive",
|
|
1058
|
+
"tabSearchRow": "eGUBIq_tabSearchRow",
|
|
1059
|
+
"row1": "eGUBIq_row1",
|
|
1052
1060
|
"diagArrow": "eGUBIq_diagArrow",
|
|
1053
|
-
"
|
|
1054
|
-
"
|
|
1055
|
-
"
|
|
1056
|
-
"
|
|
1057
|
-
"
|
|
1058
|
-
"
|
|
1059
|
-
"
|
|
1061
|
+
"diagAlert": "eGUBIq_diagAlert",
|
|
1062
|
+
"backupActions": "eGUBIq_backupActions",
|
|
1063
|
+
"bannerHint": "eGUBIq_bannerHint",
|
|
1064
|
+
"cats": "eGUBIq_cats",
|
|
1065
|
+
"grow": "eGUBIq_grow",
|
|
1066
|
+
"dot": "eGUBIq_dot",
|
|
1067
|
+
"switchMixed": "eGUBIq_switchMixed",
|
|
1068
|
+
"diagEmpty": "eGUBIq_diagEmpty",
|
|
1069
|
+
"okState": "eGUBIq_okState",
|
|
1070
|
+
"tabs": "eGUBIq_tabs",
|
|
1071
|
+
"diagMeta": "eGUBIq_diagMeta",
|
|
1072
|
+
"banner": "eGUBIq_banner",
|
|
1073
|
+
"specTagFile": "eGUBIq_specTagFile",
|
|
1074
|
+
"setCard": "eGUBIq_setCard",
|
|
1075
|
+
"pct": "eGUBIq_pct",
|
|
1060
1076
|
"pageInfo": "eGUBIq_pageInfo",
|
|
1061
|
-
"
|
|
1077
|
+
"collapseHead": "eGUBIq_collapseHead",
|
|
1078
|
+
"irowMissing": "eGUBIq_irowMissing"
|
|
1062
1079
|
};
|
|
1063
1080
|
//#endregion
|
|
1064
1081
|
//#region src/client/Diagnostics.tsx
|
|
@@ -4256,7 +4273,7 @@ window.__ModuleLoader__.load({ id: "dshmarket", factory: (require) => {
|
|
|
4256
4273
|
className: Market_module_css_default.catsRow,
|
|
4257
4274
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
4258
4275
|
ref: catsWrapRef,
|
|
4259
|
-
className:
|
|
4276
|
+
className: visibleCats === null ? `${Market_module_css_default.catsWrap} ${Market_module_css_default.catsCollapsed}` : Market_module_css_default.catsWrap,
|
|
4260
4277
|
children: (() => {
|
|
4261
4278
|
const ordered = orderedCategories(categories, cat, catsOpen);
|
|
4262
4279
|
const shown = catsOpen || visibleCats === null ? ordered : ordered.slice(0, Math.max(0, visibleCats - 1));
|
|
@@ -5207,6 +5224,59 @@ window.__ModuleLoader__.load({ id: "dshmarket", factory: (require) => {
|
|
|
5207
5224
|
});
|
|
5208
5225
|
}
|
|
5209
5226
|
//#endregion
|
|
5227
|
+
//#region src/client/SettingsCard.tsx
|
|
5228
|
+
/**
|
|
5229
|
+
* The market's card on the plugin configuration page (dsh >= 0.1.0-rc.7).
|
|
5230
|
+
*
|
|
5231
|
+
* One switch: whether the market may relaunch the host. Turning it off is
|
|
5232
|
+
* the documented answer for a host owned by systemd, launchd or pm2, and
|
|
5233
|
+
* until this card the only way to say it was hand-editing YAML.
|
|
5234
|
+
*
|
|
5235
|
+
* The chrome is drawn here rather than imported: the section's own cards
|
|
5236
|
+
* come from `dsh-client-ui-settings-plugins`, and a VALUE import from that
|
|
5237
|
+
* package fails the client bundle-purity gate — a card is expected to own
|
|
5238
|
+
* its appearance. The switch reuses the market's existing one so a user
|
|
5239
|
+
* meets the same control on both pages.
|
|
5240
|
+
*
|
|
5241
|
+
* Writes go through the settings scope, which fences each one with the
|
|
5242
|
+
* revision it read, so two surfaces editing this namespace cannot silently
|
|
5243
|
+
* overwrite each other. A field counts as overridden by its PRESENCE in the
|
|
5244
|
+
* user layer, never by comparing values: an override that happens to equal
|
|
5245
|
+
* the composed default is still the user's choice, and reverting has to be
|
|
5246
|
+
* able to remove it.
|
|
5247
|
+
*/
|
|
5248
|
+
/** Whether the user layer carries this field — presence, not value. */
|
|
5249
|
+
function isOverridden(user, field) {
|
|
5250
|
+
return typeof user === "object" && user !== null && Object.hasOwn(user, field);
|
|
5251
|
+
}
|
|
5252
|
+
function SettingsCard({ scope, t }) {
|
|
5253
|
+
const snapshot = (0, react.useSyncExternalStore)((0, react.useCallback)((listener) => scope.subscribe(listener), [scope]), (0, react.useCallback)(() => scope.getSnapshot(), [scope]));
|
|
5254
|
+
const allowRestart = snapshot.value?.allowRestart !== false;
|
|
5255
|
+
const onToggle = (0, react.useCallback)(() => {
|
|
5256
|
+
scope.set("allowRestart", !allowRestart);
|
|
5257
|
+
}, [scope, allowRestart]);
|
|
5258
|
+
const onRevert = (0, react.useCallback)(() => {
|
|
5259
|
+
scope.unset("allowRestart");
|
|
5260
|
+
}, [scope]);
|
|
5261
|
+
if (snapshot.status === "unavailable") return null;
|
|
5262
|
+
const busy = !snapshot.writable || snapshot.status === "loading";
|
|
5263
|
+
const overridden = isOverridden(snapshot.user, "allowRestart");
|
|
5264
|
+
return (0, react.createElement)("div", { className: Market_module_css_default.setCard }, (0, react.createElement)("div", { className: Market_module_css_default.setHead }, (0, react.createElement)("div", { className: Market_module_css_default.setTitle }, t("nav")), (0, react.createElement)("div", { className: Market_module_css_default.setDesc }, t("setCardDesc"))), (0, react.createElement)("div", { className: Market_module_css_default.setRow }, (0, react.createElement)("button", {
|
|
5265
|
+
type: "button",
|
|
5266
|
+
role: "switch",
|
|
5267
|
+
"aria-checked": allowRestart,
|
|
5268
|
+
"aria-label": t("setAllowRestart"),
|
|
5269
|
+
className: allowRestart ? `${Market_module_css_default.switch} ${Market_module_css_default.switchOn}` : Market_module_css_default.switch,
|
|
5270
|
+
disabled: busy,
|
|
5271
|
+
onClick: onToggle
|
|
5272
|
+
}, (0, react.createElement)("span", { className: Market_module_css_default.switchKnob })), (0, react.createElement)("div", { className: Market_module_css_default.setLabelBox }, (0, react.createElement)("div", { className: Market_module_css_default.setLabel }, t("setAllowRestart")), (0, react.createElement)("div", { className: Market_module_css_default.setHint }, t("setAllowRestartHint"))), overridden ? (0, react.createElement)("button", {
|
|
5273
|
+
type: "button",
|
|
5274
|
+
className: Market_module_css_default.setRevert,
|
|
5275
|
+
disabled: busy,
|
|
5276
|
+
onClick: onRevert
|
|
5277
|
+
}, t("setRevert")) : null));
|
|
5278
|
+
}
|
|
5279
|
+
//#endregion
|
|
5210
5280
|
//#region src/client/index.ts
|
|
5211
5281
|
/**
|
|
5212
5282
|
* dsh-market client: registers a "Market" settings section rendering the
|
|
@@ -5265,6 +5335,18 @@ window.__ModuleLoader__.load({ id: "dshmarket", factory: (require) => {
|
|
|
5265
5335
|
getSnapshot: () => ctx.theme.getTheme()
|
|
5266
5336
|
}
|
|
5267
5337
|
})));
|
|
5338
|
+
ctx.inject(["settingsScope"], (scoped) => {
|
|
5339
|
+
const scope = scoped.settingsScope.bind({ namespace: NS });
|
|
5340
|
+
scoped.slots.inject("settings.plugin.item", () => scoped.slots.register({
|
|
5341
|
+
name: "settings.plugin.item",
|
|
5342
|
+
key: NS,
|
|
5343
|
+
locale: NS,
|
|
5344
|
+
inject: () => ({ t })
|
|
5345
|
+
}, () => (0, react.createElement)(SettingsCard, {
|
|
5346
|
+
scope,
|
|
5347
|
+
t
|
|
5348
|
+
})));
|
|
5349
|
+
});
|
|
5268
5350
|
const Toast = () => (0, react.createElement)(InstallToast, { t });
|
|
5269
5351
|
ctx.slots.inject("shell.overlay", () => ctx.slots.register({
|
|
5270
5352
|
name: "shell.overlay",
|