dsh-plugin 0.1.0 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.en.md +3 -1
- package/README.md +3 -1
- package/client/client.js +39 -39
- package/package.json +1 -1
- package/src/client/Section.module.css +51 -31
package/README.en.md
CHANGED
|
@@ -55,12 +55,14 @@ Every DSH plugin links back to its GitHub source repository with stars, forks an
|
|
|
55
55
|
|
|
56
56
|
## Install DSH-Plugin Hub
|
|
57
57
|
|
|
58
|
-
|
|
58
|
+
Install from npm (recommended):
|
|
59
59
|
|
|
60
60
|
```bash
|
|
61
61
|
dsh plugin --profile web add dsh-plugin
|
|
62
62
|
```
|
|
63
63
|
|
|
64
|
+
The plugin is published to the npm registry as `dsh-plugin` — one command installs and it just works, no build step required.
|
|
65
|
+
|
|
64
66
|
Install from GitHub:
|
|
65
67
|
|
|
66
68
|
```bash
|
package/README.md
CHANGED
|
@@ -55,12 +55,14 @@ DSH-Plugin 插件中心收录 **4,261** 个 DeepSeek Harness Plugin(DSH)插
|
|
|
55
55
|
|
|
56
56
|
## 安装 DSH-Plugin Hub
|
|
57
57
|
|
|
58
|
-
|
|
58
|
+
从 npm 安装(推荐):
|
|
59
59
|
|
|
60
60
|
```bash
|
|
61
61
|
dsh plugin --profile web add dsh-plugin
|
|
62
62
|
```
|
|
63
63
|
|
|
64
|
+
插件已发布到 npm registry(包名 `dsh-plugin`),一条命令即可安装使用,无需任何构建。
|
|
65
|
+
|
|
64
66
|
从 GitHub 安装:
|
|
65
67
|
|
|
66
68
|
```bash
|
package/client/client.js
CHANGED
|
@@ -6,7 +6,7 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
6
6
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
7
7
|
let react = require("react");
|
|
8
8
|
//#region \0dsh-css:src/client/Section.module.css.mjs
|
|
9
|
-
const css = ".XlLbKa_root{min-width:0;height:100%;color:var(--dsw-alias-label-primary,#1f2328);flex-direction:column;gap:8px;display:flex}.XlLbKa_header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:2px 2px 0;display:flex}.XlLbKa_brand{align-items:center;gap:10px;min-width:0;display:flex}.XlLbKa_brandText{flex-direction:column;gap:1px;min-width:0;display:flex}.XlLbKa_title{margin:0;font-size:14px;font-weight:600;line-height:20px}.XlLbKa_tagline{color:var(--dsw-alias-label-tertiary,#8b93a1);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:12px;line-height:18px;display:-webkit-box;overflow:hidden}.XlLbKa_controls{flex-shrink:0;align-items:center;gap:8px;display:flex}.XlLbKa_adBanner{color:#fff;cursor:pointer;background:linear-gradient(90deg,#4f46e5 0%,#7c3aed 100%);border:1px solid #8b5cf68c;border-radius:8px;align-items:center;gap:8px;padding:7px 12px;text-decoration:none;transition:filter .15s,box-shadow .15s;display:flex;box-shadow:0 2px 10px #4f46e547}.XlLbKa_adBanner:hover{filter:brightness(1.1);box-shadow:0 4px 16px #7c3aed6b}.XlLbKa_adBadge{letter-spacing:.04em;color:#fff;white-space:nowrap;background:#ffffff29;border:1px solid #ffffff8c;border-radius:4px;flex-shrink:0;padding:3px 6px;font-size:10px;font-weight:700;line-height:1}.XlLbKa_adText{text-overflow:ellipsis;white-space:nowrap;color:#fff;min-width:0;font-size:12px;line-height:18px;overflow:hidden}.XlLbKa_adArrow{color:#fff;flex-shrink:0;margin-left:auto;font-size:13px}.XlLbKa_search{width:190px;color:inherit;border:1px solid var(--dsw-alias-border-l2,#e5e7eb);background:0 0;border-radius:6px;outline:none;padding:4px 9px;font-size:12px;line-height:18px;transition:border-color .12s}.XlLbKa_search::placeholder{color:var(--dsw-alias-label-tertiary,#8b93a1)}.XlLbKa_search:focus{border-color:var(--dsw-alias-brand-primary,#4f6ef7)}.XlLbKa_sort{color:var(--dsw-alias-label-secondary,#6b7280);border:1px solid var(--dsw-alias-border-l2,#e5e7eb);cursor:pointer;background:0 0;border-radius:6px;outline:none;padding:4px 8px;font-size:12px;line-height:18px}.XlLbKa_sort:hover{color:var(--dsw-alias-brand-primary,#4f6ef7);border-color:var(--dsw-alias-brand-primary,#4f6ef7)}.XlLbKa_langBtn{color:var(--dsw-alias-label-secondary,#6b7280);border:1px solid var(--dsw-alias-border-l2,#e5e7eb);cursor:pointer;background:0 0;border-radius:6px;flex-shrink:0;padding:4px 9px;font-size:12px;line-height:18px;transition:color .12s,border-color .12s}.XlLbKa_langBtn:hover{color:var(--dsw-alias-brand-primary,#4f6ef7);border-color:var(--dsw-alias-brand-primary,#4f6ef7)}.XlLbKa_openBtn{color:var(--dsw-alias-label-secondary,#6b7280);border:1px solid var(--dsw-alias-border-l2,#e5e7eb);cursor:pointer;white-space:nowrap;background:0 0;border-radius:6px;flex-shrink:0;align-items:center;gap:4px;padding:3px 9px;font-size:12px;font-weight:500;line-height:20px;text-decoration:none;transition:color .12s,border-color .12s;display:inline-flex}.XlLbKa_openBtn:hover{color:var(--dsw-alias-brand-primary,#4f6ef7);border-color:var(--dsw-alias-brand-primary,#4f6ef7)}.XlLbKa_openArrow{font-size:12px;line-height:1}.XlLbKa_tabs{border-bottom:1px solid var(--dsw-alias-border-l1,#eceef1);flex-wrap:wrap;align-items:center;gap:6px;padding:2px 2px 8px;display:flex}.XlLbKa_tab,.XlLbKa_tabActive{cursor:pointer;border:1px solid #0000;border-radius:999px;flex-shrink:0;align-items:center;gap:6px;padding:3px 10px;font-size:12px;line-height:18px;transition:color .12s,background .12s,border-color .12s;display:inline-flex}.XlLbKa_tab{color:var(--dsw-alias-label-secondary,#6b7280);border-color:var(--dsw-alias-border-l2,#e5e7eb);background:0 0}.XlLbKa_tab:hover{color:var(--dsw-alias-label-primary,#1f2328);background:var(--dsw-alias-interactive-bg-hover,#80808014);border-color:var(--dsw-alias-border-l1,#eceef1)}.XlLbKa_tabActive{color:#fff;background:var(--dsw-alias-brand-primary,#4f6ef7);border-color:var(--dsw-alias-brand-primary,#4f6ef7)}.XlLbKa_tabCount,.XlLbKa_tabCountActive{text-align:center;border-radius:999px;min-width:16px;padding:0 5px;font-size:10px;line-height:14px}.XlLbKa_tabCount{color:var(--dsw-alias-label-tertiary,#8b93a1);background:var(--dsw-alias-bg-layer-2,#8080801a)}.XlLbKa_tabActive .XlLbKa_tabCountActive{color:#fff;background:#ffffff38}.XlLbKa_body{flex-direction:column;flex:1;min-height:0;display:flex}.XlLbKa_list{flex-direction:column;flex:1;gap:6px;min-height:0;padding:2px 4px 4px 2px;display:flex;overflow-y:auto}.XlLbKa_card{border:1px solid var(--dsw-alias-border-l2,#e5e7eb);background:var(--dsw-alias-bg-layer-1,#8080800f);border-radius:8px;justify-content:space-between;align-items:stretch;gap:12px;padding:9px 12px;transition:border-color .12s,background .12s;display:flex}.XlLbKa_card:hover{border-color:var(--dsw-alias-brand-primary,#4f6ef7);background:var(--dsw-alias-bg-layer-2,#8080801a)}.XlLbKa_cardMain{flex-direction:column;gap:4px;min-width:0;display:flex}.XlLbKa_cardHead{align-items:center;gap:6px;min-width:0;display:flex}.XlLbKa_cardTitle{white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:600;line-height:18px;overflow:hidden}.XlLbKa_categoryBadge,.XlLbKa_verified{border:1px solid #0000;border-radius:4px;flex-shrink:0;padding:0 6px;font-size:10px;line-height:16px}.XlLbKa_categoryBadge{color:var(--dsw-alias-brand-primary,#4f6ef7);border-color:var(--dsw-alias-button-ghost-active-border,#4f6ef740)}.XlLbKa_verified{color:var(--dsw-alias-state-success-primary,#1a7f37);border-color:var(--dsw-alias-state-success-secondary,#1a7f374d)}.XlLbKa_desc{color:var(--dsw-alias-label-secondary,#6b7280);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:12px;line-height:18px;display:-webkit-box;overflow:hidden}.XlLbKa_topics{flex-wrap:wrap;align-items:center;gap:4px;min-width:0;display:flex}.XlLbKa_topic{color:var(--dsw-alias-label-tertiary,#8b93a1);background:var(--dsw-alias-bg-layer-2,#8080801a);white-space:nowrap;border-radius:4px;flex-shrink:0;padding:0 6px;font-size:10px;line-height:16px}.XlLbKa_cardSide{flex-direction:column;flex-shrink:0;justify-content:space-between;align-items:flex-end;gap:6px;display:flex}.XlLbKa_stats{flex-direction:column;align-items:flex-end;gap:1px;display:flex}.XlLbKa_star{color:var(--dsw-alias-state-warn-primary,#b8860b);white-space:nowrap;font-size:11px;line-height:16px}.XlLbKa_fork{color:var(--dsw-alias-label-tertiary,#8b93a1);white-space:nowrap;font-size:11px;line-height:16px}.XlLbKa_date{color:var(--dsw-alias-label-tertiary,#8b93a1);white-space:nowrap;font-size:10px;line-height:14px}.XlLbKa_installBtn,.XlLbKa_installBtnCopied,.XlLbKa_detailBtn{cursor:pointer;border-radius:6px;padding:2px 10px;font-size:11px;line-height:18px;transition:color .12s,border-color .12s,background .12s}.XlLbKa_installBtn{color:var(--dsw-alias-label-secondary,#6b7280);border:1px solid var(--dsw-alias-border-l2,#e5e7eb);background:0 0}.XlLbKa_installBtn:hover{color:#4f6ef7;border-color:#4f6ef7}.XlLbKa_detailBtn{color:#4f6ef7;background:0 0;border:1px solid #4f6ef7;align-items:center;font-weight:500;text-decoration:none;display:inline-flex}.XlLbKa_detailBtn:hover{color:#fff;background:#4f6ef7}.XlLbKa_actions{align-items:center;gap:6px;display:flex}.XlLbKa_installBtnCopied{color:#fff;background:#4f6ef7;border:1px solid #4f6ef7}.XlLbKa_toast{z-index:1000;color:#f9fafb;pointer-events:none;white-space:nowrap;background:#111827;border:1px solid #ffffff1a;border-radius:8px;padding:10px 16px;font-size:12px;line-height:18px;animation:.22s ease-out XlLbKa_toastIn;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 6px 24px #00000038}@keyframes XlLbKa_toastIn{0%{opacity:0;transform:translate(-50%,-44%)}to{opacity:1;transform:translate(-50%,-50%)}}.XlLbKa_state{text-align:center;min-height:160px;color:var(--dsw-alias-label-tertiary,#8b93a1);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:8px;padding:24px;font-size:12px;line-height:18px;display:flex}.XlLbKa_stateTitle{color:var(--dsw-alias-label-primary,#1f2328);font-size:13px;font-weight:600}.XlLbKa_stateDesc{max-width:420px}.XlLbKa_retryBtn{color:var(--dsw-alias-label-secondary,#6b7280);border:1px solid var(--dsw-alias-border-l2,#e5e7eb);cursor:pointer;background:0 0;border-radius:6px;margin-top:4px;padding:4px 12px;font-size:12px;line-height:18px}.XlLbKa_retryBtn:hover{color:var(--dsw-alias-brand-primary,#4f6ef7);border-color:var(--dsw-alias-brand-primary,#4f6ef7)}.XlLbKa_footer{border-top:1px solid var(--dsw-alias-border-l1,#eceef1);flex-shrink:0;justify-content:space-between;align-items:center;gap:8px;padding:6px 4px 0;display:flex}.XlLbKa_footText{color:var(--dsw-alias-label-tertiary,#8b93a1);font-size:11px;line-height:16px}.XlLbKa_footLink{color:var(--dsw-alias-brand-primary,#4f6ef7);white-space:nowrap;font-size:11px;line-height:16px;text-decoration:none}.XlLbKa_footLink:hover{text-decoration:underline}";
|
|
9
|
+
const css = ".XlLbKa_root{min-width:0;height:100%;color:var(--dsw-alias-label-primary,#1f2328);flex-direction:column;gap:8px;display:flex}.XlLbKa_header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:2px 2px 0;display:flex}.XlLbKa_brand{align-items:center;gap:10px;min-width:0;display:flex}.XlLbKa_brandText{flex-direction:column;gap:1px;min-width:0;display:flex}.XlLbKa_title{margin:0;font-size:14px;font-weight:600;line-height:20px}.XlLbKa_tagline{color:var(--dsw-alias-label-tertiary,#8b93a1);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:12px;line-height:18px;display:-webkit-box;overflow:hidden}.XlLbKa_controls{flex-shrink:0;align-items:center;gap:8px;display:flex}.XlLbKa_adBanner{color:#fff;cursor:pointer;-webkit-user-select:none;user-select:none;background:linear-gradient(90deg,#4f46e5 0%,#7c3aed 100%);border:1px solid #8b5cf68c;border-radius:8px;align-items:center;gap:8px;padding:7px 12px;text-decoration:none;transition:filter .15s,box-shadow .15s;display:flex;box-shadow:0 2px 10px #4f46e547}.XlLbKa_adBanner:hover{filter:brightness(1.1);box-shadow:0 4px 16px #7c3aed6b}.XlLbKa_adBadge{letter-spacing:.04em;color:#fff;white-space:nowrap;background:#ffffff29;border:1px solid #ffffff8c;border-radius:4px;flex-shrink:0;padding:3px 6px;font-size:10px;font-weight:700;line-height:1}.XlLbKa_adText{text-overflow:ellipsis;white-space:nowrap;color:#fff;min-width:0;font-size:12px;line-height:18px;overflow:hidden}.XlLbKa_adArrow{color:#fff;flex-shrink:0;margin-left:auto;font-size:13px}.XlLbKa_search{width:190px;color:inherit;border:1px solid var(--dsw-alias-border-l2,#e5e7eb);background:0 0;border-radius:6px;outline:none;padding:4px 9px;font-size:12px;line-height:18px;transition:border-color .12s}.XlLbKa_search::placeholder{color:var(--dsw-alias-label-tertiary,#8b93a1)}.XlLbKa_search:focus{border-color:var(--dsw-alias-brand-primary,#4f6ef7)}.XlLbKa_sort{color:var(--dsw-alias-label-secondary,#6b7280);border:1px solid var(--dsw-alias-border-l2,#e5e7eb);cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border-radius:6px;outline:none;padding:4px 8px;font-size:12px;line-height:18px}.XlLbKa_sort:hover{color:var(--dsw-alias-label-primary,#1f2328);background:var(--dsw-alias-interactive-bg-hover,#80808014);border-color:var(--dsw-alias-button-ghost-active-border,#d0d4da)}.XlLbKa_langBtn{color:var(--dsw-alias-label-secondary,#6b7280);border:1px solid var(--dsw-alias-border-l2,#e5e7eb);cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border-radius:6px;flex-shrink:0;padding:4px 9px;font-size:12px;line-height:18px;transition:color .12s,border-color .12s}.XlLbKa_langBtn:hover{color:var(--dsw-alias-label-primary,#1f2328);background:var(--dsw-alias-interactive-bg-hover,#80808014);border-color:var(--dsw-alias-button-ghost-active-border,#d0d4da)}.XlLbKa_openBtn{color:var(--dsw-alias-label-secondary,#6b7280);border:1px solid var(--dsw-alias-border-l2,#e5e7eb);cursor:pointer;white-space:nowrap;-webkit-user-select:none;user-select:none;background:0 0;border-radius:6px;flex-shrink:0;align-items:center;gap:4px;padding:3px 9px;font-size:12px;font-weight:500;line-height:20px;text-decoration:none;transition:color .12s,border-color .12s;display:inline-flex}.XlLbKa_openBtn:hover{color:var(--dsw-alias-label-primary,#1f2328);background:var(--dsw-alias-interactive-bg-hover,#80808014);border-color:var(--dsw-alias-button-ghost-active-border,#d0d4da)}.XlLbKa_openArrow{font-size:12px;line-height:1}.XlLbKa_tabs{border-bottom:1px solid var(--dsw-alias-border-l1,#eceef1);flex-wrap:wrap;align-items:center;gap:6px;padding:2px 2px 8px;display:flex}.XlLbKa_tab,.XlLbKa_tabActive{cursor:pointer;-webkit-user-select:none;user-select:none;border:1px solid #0000;border-radius:999px;flex-shrink:0;align-items:center;gap:6px;padding:3px 10px;font-size:12px;line-height:18px;transition:color .12s,background .12s,border-color .12s;display:inline-flex}.XlLbKa_tab{color:var(--dsw-alias-label-secondary,#6b7280);border-color:var(--dsw-alias-border-l2,#e5e7eb);background:0 0}.XlLbKa_tab:hover{color:var(--dsw-alias-label-primary,#1f2328);background:var(--dsw-alias-interactive-bg-hover,#80808014);border-color:var(--dsw-alias-border-l1,#eceef1)}.XlLbKa_tabActive{color:var(--dsw-alias-label-primary-foreground,#fff);background:var(--dsw-alias-button-primary-fill,#1f2328);border-color:var(--dsw-alias-button-primary-fill,#1f2328)}.XlLbKa_tabCount,.XlLbKa_tabCountActive{text-align:center;border-radius:999px;min-width:16px;padding:0 5px;font-size:10px;line-height:14px}.XlLbKa_tabCount{color:var(--dsw-alias-label-tertiary,#8b93a1);background:var(--dsw-alias-bg-layer-2,#8080801a)}.XlLbKa_tabActive .XlLbKa_tabCountActive{color:var(--dsw-alias-label-primary-foreground,#fff);background:#80808038}.XlLbKa_body{flex-direction:column;flex:1;min-height:0;display:flex}.XlLbKa_list{flex-direction:column;flex:1;gap:6px;min-height:0;padding:2px 4px 4px 2px;display:flex;overflow-y:auto}.XlLbKa_card{border:1px solid var(--dsw-alias-border-l2,#e5e7eb);background:var(--dsw-alias-bg-layer-1,#8080800f);border-radius:8px;justify-content:space-between;align-items:stretch;gap:12px;padding:9px 12px;transition:border-color .12s,background .12s;display:flex}.XlLbKa_card:hover{border-color:var(--dsw-alias-brand-primary,#4f6ef7);background:var(--dsw-alias-bg-layer-2,#8080801a)}.XlLbKa_cardMain{flex-direction:column;gap:4px;min-width:0;display:flex}.XlLbKa_cardHead{align-items:center;gap:6px;min-width:0;display:flex}.XlLbKa_cardTitle{white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:600;line-height:18px;overflow:hidden}.XlLbKa_categoryBadge,.XlLbKa_verified{border:1px solid #0000;border-radius:4px;flex-shrink:0;padding:0 6px;font-size:10px;line-height:16px}.XlLbKa_categoryBadge{color:var(--dsw-alias-brand-primary,#4f6ef7);border-color:var(--dsw-alias-button-ghost-active-border,#4f6ef740)}.XlLbKa_verified{color:var(--dsw-alias-state-success-primary,#1a7f37);border-color:var(--dsw-alias-state-success-secondary,#1a7f374d)}.XlLbKa_desc{color:var(--dsw-alias-label-secondary,#6b7280);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:12px;line-height:18px;display:-webkit-box;overflow:hidden}.XlLbKa_topics{flex-wrap:wrap;align-items:center;gap:4px;min-width:0;display:flex}.XlLbKa_topic{color:var(--dsw-alias-label-tertiary,#8b93a1);background:var(--dsw-alias-bg-layer-2,#8080801a);white-space:nowrap;border-radius:4px;flex-shrink:0;padding:0 6px;font-size:10px;line-height:16px}.XlLbKa_cardSide{flex-direction:column;flex-shrink:0;justify-content:space-between;align-items:flex-end;gap:6px;display:flex}.XlLbKa_stats{flex-direction:column;align-items:flex-end;gap:1px;display:flex}.XlLbKa_star{color:var(--dsw-alias-state-warn-primary,#b8860b);white-space:nowrap;font-size:11px;line-height:16px}.XlLbKa_fork{color:var(--dsw-alias-label-tertiary,#8b93a1);white-space:nowrap;font-size:11px;line-height:16px}.XlLbKa_date{color:var(--dsw-alias-label-tertiary,#8b93a1);white-space:nowrap;font-size:10px;line-height:14px}.XlLbKa_installBtn,.XlLbKa_installBtnCopied,.XlLbKa_detailBtn{cursor:pointer;border-radius:6px;padding:2px 10px;font-size:11px;line-height:18px;transition:color .12s,border-color .12s,background .12s}.XlLbKa_installBtn{color:var(--dsw-alias-label-primary,#1f2328);background:var(--dsw-alias-bg-layer-2,#8080800f);border:1px solid var(--dsw-alias-border-l2,#e5e7eb);-webkit-user-select:none;user-select:none}.XlLbKa_installBtn:hover{color:var(--dsw-alias-label-primary,#1f2328);background:var(--dsw-alias-interactive-bg-hover,#8080801f);border-color:var(--dsw-alias-button-ghost-active-border,#d0d4da)}.XlLbKa_detailBtn{color:var(--dsw-alias-label-primary-foreground,#fff);background:var(--dsw-alias-button-primary-fill,#1f2328);-webkit-user-select:none;user-select:none;border:1px solid #0000;align-items:center;font-weight:500;text-decoration:none;display:inline-flex}.XlLbKa_detailBtn:hover{background:var(--dsw-alias-button-primary-hover,#43454a)}.XlLbKa_actions{align-items:center;gap:6px;display:flex}.XlLbKa_installBtnCopied{color:var(--dsw-alias-state-success-primary,#1a7f37);border:1px solid var(--dsw-alias-state-success-secondary,#1a7f3766);-webkit-user-select:none;user-select:none;background:#22c55e24}.XlLbKa_toast{z-index:1000;background:var(--dsw-alias-button-primary-fill,#1f2328);color:var(--dsw-alias-label-primary-foreground,#fff);pointer-events:none;white-space:nowrap;border:1px solid #0000;border-radius:8px;padding:10px 16px;font-size:12px;font-weight:500;line-height:18px;animation:.22s ease-out XlLbKa_toastIn;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 6px 24px #00000047}@keyframes XlLbKa_toastIn{0%{opacity:0;transform:translate(-50%,-44%)}to{opacity:1;transform:translate(-50%,-50%)}}.XlLbKa_state{text-align:center;min-height:160px;color:var(--dsw-alias-label-tertiary,#8b93a1);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:8px;padding:24px;font-size:12px;line-height:18px;display:flex}.XlLbKa_stateTitle{color:var(--dsw-alias-label-primary,#1f2328);font-size:13px;font-weight:600}.XlLbKa_stateDesc{max-width:420px}.XlLbKa_retryBtn{color:var(--dsw-alias-label-secondary,#6b7280);border:1px solid var(--dsw-alias-border-l2,#e5e7eb);cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border-radius:6px;margin-top:4px;padding:4px 12px;font-size:12px;line-height:18px}.XlLbKa_retryBtn:hover{color:var(--dsw-alias-label-primary,#1f2328);background:var(--dsw-alias-interactive-bg-hover,#80808014);border-color:var(--dsw-alias-button-ghost-active-border,#d0d4da)}.XlLbKa_footer{border-top:1px solid var(--dsw-alias-border-l1,#eceef1);flex-shrink:0;justify-content:space-between;align-items:center;gap:8px;padding:6px 4px 0;display:flex}.XlLbKa_footText{color:var(--dsw-alias-label-tertiary,#8b93a1);font-size:11px;line-height:16px}.XlLbKa_footLink{color:var(--dsw-alias-brand-primary,#4f6ef7);white-space:nowrap;-webkit-user-select:none;user-select:none;font-size:11px;line-height:16px;text-decoration:none}.XlLbKa_footLink:hover{text-decoration:underline}";
|
|
10
10
|
const tagId = "dsh-plugin/Section.module.css";
|
|
11
11
|
if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId) + "]") === null) {
|
|
12
12
|
const tag = document.createElement("style");
|
|
@@ -16,56 +16,56 @@ window.__ModuleLoader__.load({ id: "dsh-plugin", factory: (require) => {
|
|
|
16
16
|
document.head.appendChild(tag);
|
|
17
17
|
}
|
|
18
18
|
var Section_module_css_default = {
|
|
19
|
-
"
|
|
20
|
-
"
|
|
21
|
-
"
|
|
22
|
-
"
|
|
19
|
+
"list": "XlLbKa_list",
|
|
20
|
+
"cardSide": "XlLbKa_cardSide",
|
|
21
|
+
"tabs": "XlLbKa_tabs",
|
|
22
|
+
"openBtn": "XlLbKa_openBtn",
|
|
23
|
+
"fork": "XlLbKa_fork",
|
|
24
|
+
"installBtnCopied": "XlLbKa_installBtnCopied",
|
|
23
25
|
"detailBtn": "XlLbKa_detailBtn",
|
|
24
|
-
"
|
|
25
|
-
"
|
|
26
|
-
"
|
|
27
|
-
"adBadge": "XlLbKa_adBadge",
|
|
26
|
+
"adBanner": "XlLbKa_adBanner",
|
|
27
|
+
"root": "XlLbKa_root",
|
|
28
|
+
"header": "XlLbKa_header",
|
|
28
29
|
"adText": "XlLbKa_adText",
|
|
29
|
-
"
|
|
30
|
+
"tabActive": "XlLbKa_tabActive",
|
|
31
|
+
"desc": "XlLbKa_desc",
|
|
30
32
|
"actions": "XlLbKa_actions",
|
|
31
|
-
"root": "XlLbKa_root",
|
|
32
|
-
"brandText": "XlLbKa_brandText",
|
|
33
|
-
"list": "XlLbKa_list",
|
|
34
33
|
"installBtn": "XlLbKa_installBtn",
|
|
35
|
-
"retryBtn": "XlLbKa_retryBtn",
|
|
36
|
-
"cardSide": "XlLbKa_cardSide",
|
|
37
|
-
"state": "XlLbKa_state",
|
|
38
34
|
"stateDesc": "XlLbKa_stateDesc",
|
|
39
|
-
"
|
|
40
|
-
"tabs": "XlLbKa_tabs",
|
|
41
|
-
"header": "XlLbKa_header",
|
|
35
|
+
"footer": "XlLbKa_footer",
|
|
42
36
|
"cardMain": "XlLbKa_cardMain",
|
|
43
|
-
"
|
|
44
|
-
"
|
|
45
|
-
"
|
|
37
|
+
"tabCountActive": "XlLbKa_tabCountActive",
|
|
38
|
+
"cardTitle": "XlLbKa_cardTitle",
|
|
39
|
+
"stats": "XlLbKa_stats",
|
|
40
|
+
"retryBtn": "XlLbKa_retryBtn",
|
|
41
|
+
"footText": "XlLbKa_footText",
|
|
42
|
+
"card": "XlLbKa_card",
|
|
43
|
+
"footLink": "XlLbKa_footLink",
|
|
44
|
+
"brand": "XlLbKa_brand",
|
|
45
|
+
"toastIn": "XlLbKa_toastIn",
|
|
46
46
|
"adArrow": "XlLbKa_adArrow",
|
|
47
|
+
"adBadge": "XlLbKa_adBadge",
|
|
48
|
+
"search": "XlLbKa_search",
|
|
49
|
+
"body": "XlLbKa_body",
|
|
50
|
+
"date": "XlLbKa_date",
|
|
51
|
+
"brandText": "XlLbKa_brandText",
|
|
52
|
+
"toast": "XlLbKa_toast",
|
|
53
|
+
"state": "XlLbKa_state",
|
|
54
|
+
"tab": "XlLbKa_tab",
|
|
55
|
+
"langBtn": "XlLbKa_langBtn",
|
|
47
56
|
"cardHead": "XlLbKa_cardHead",
|
|
57
|
+
"topics": "XlLbKa_topics",
|
|
58
|
+
"stateTitle": "XlLbKa_stateTitle",
|
|
59
|
+
"sort": "XlLbKa_sort",
|
|
60
|
+
"controls": "XlLbKa_controls",
|
|
48
61
|
"title": "XlLbKa_title",
|
|
49
|
-
"
|
|
50
|
-
"openArrow": "XlLbKa_openArrow",
|
|
51
|
-
"verified": "XlLbKa_verified",
|
|
62
|
+
"tagline": "XlLbKa_tagline",
|
|
52
63
|
"tabCount": "XlLbKa_tabCount",
|
|
64
|
+
"categoryBadge": "XlLbKa_categoryBadge",
|
|
53
65
|
"topic": "XlLbKa_topic",
|
|
54
|
-
"stateTitle": "XlLbKa_stateTitle",
|
|
55
|
-
"footText": "XlLbKa_footText",
|
|
56
|
-
"fork": "XlLbKa_fork",
|
|
57
|
-
"langBtn": "XlLbKa_langBtn",
|
|
58
|
-
"installBtnCopied": "XlLbKa_installBtnCopied",
|
|
59
|
-
"toast": "XlLbKa_toast",
|
|
60
|
-
"toastIn": "XlLbKa_toastIn",
|
|
61
|
-
"adBanner": "XlLbKa_adBanner",
|
|
62
|
-
"cardTitle": "XlLbKa_cardTitle",
|
|
63
|
-
"stats": "XlLbKa_stats",
|
|
64
66
|
"star": "XlLbKa_star",
|
|
65
|
-
"
|
|
66
|
-
"
|
|
67
|
-
"tabCountActive": "XlLbKa_tabCountActive",
|
|
68
|
-
"tabActive": "XlLbKa_tabActive"
|
|
67
|
+
"openArrow": "XlLbKa_openArrow",
|
|
68
|
+
"verified": "XlLbKa_verified"
|
|
69
69
|
};
|
|
70
70
|
//#endregion
|
|
71
71
|
//#region src/client/locales.ts
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dsh-plugin",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.1",
|
|
4
4
|
"description": "A community plugin marketplace for DeepSeek Harness, built to the official plugin spec — browse, search and install 4000+ human-curated community plugins without leaving the app. · DeepSeek Harness 社区插件市场(遵循官方开发规范):4000+ 人工精选社区插件,每日更新。",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "lib/index.js",
|
|
@@ -75,6 +75,7 @@
|
|
|
75
75
|
color: #ffffff;
|
|
76
76
|
text-decoration: none;
|
|
77
77
|
cursor: pointer;
|
|
78
|
+
user-select: none;
|
|
78
79
|
box-shadow: 0 2px 10px rgba(79, 70, 229, 0.28);
|
|
79
80
|
transition: filter 0.15s ease, box-shadow 0.15s ease;
|
|
80
81
|
}
|
|
@@ -146,11 +147,13 @@
|
|
|
146
147
|
padding: 4px 8px;
|
|
147
148
|
outline: none;
|
|
148
149
|
cursor: pointer;
|
|
150
|
+
user-select: none;
|
|
149
151
|
}
|
|
150
152
|
|
|
151
153
|
.sort:hover {
|
|
152
|
-
color: var(--dsw-alias-
|
|
153
|
-
|
|
154
|
+
color: var(--dsw-alias-label-primary, #1f2328);
|
|
155
|
+
background: var(--dsw-alias-interactive-bg-hover, rgba(128, 128, 128, 0.08));
|
|
156
|
+
border-color: var(--dsw-alias-button-ghost-active-border, #d0d4da);
|
|
154
157
|
}
|
|
155
158
|
|
|
156
159
|
.langBtn {
|
|
@@ -163,12 +166,14 @@
|
|
|
163
166
|
border-radius: 6px;
|
|
164
167
|
padding: 4px 9px;
|
|
165
168
|
cursor: pointer;
|
|
169
|
+
user-select: none;
|
|
166
170
|
transition: color 120ms ease, border-color 120ms ease;
|
|
167
171
|
}
|
|
168
172
|
|
|
169
173
|
.langBtn:hover {
|
|
170
|
-
color: var(--dsw-alias-
|
|
171
|
-
|
|
174
|
+
color: var(--dsw-alias-label-primary, #1f2328);
|
|
175
|
+
background: var(--dsw-alias-interactive-bg-hover, rgba(128, 128, 128, 0.08));
|
|
176
|
+
border-color: var(--dsw-alias-button-ghost-active-border, #d0d4da);
|
|
172
177
|
}
|
|
173
178
|
|
|
174
179
|
.openBtn {
|
|
@@ -187,12 +192,14 @@
|
|
|
187
192
|
background: transparent;
|
|
188
193
|
cursor: pointer;
|
|
189
194
|
white-space: nowrap;
|
|
195
|
+
user-select: none;
|
|
190
196
|
transition: color 120ms ease, border-color 120ms ease;
|
|
191
197
|
}
|
|
192
198
|
|
|
193
199
|
.openBtn:hover {
|
|
194
|
-
color: var(--dsw-alias-
|
|
195
|
-
|
|
200
|
+
color: var(--dsw-alias-label-primary, #1f2328);
|
|
201
|
+
background: var(--dsw-alias-interactive-bg-hover, rgba(128, 128, 128, 0.08));
|
|
202
|
+
border-color: var(--dsw-alias-button-ghost-active-border, #d0d4da);
|
|
196
203
|
}
|
|
197
204
|
|
|
198
205
|
.openArrow {
|
|
@@ -223,6 +230,7 @@
|
|
|
223
230
|
border-radius: 999px;
|
|
224
231
|
padding: 3px 10px;
|
|
225
232
|
cursor: pointer;
|
|
233
|
+
user-select: none;
|
|
226
234
|
transition: color 120ms ease, background 120ms ease, border-color 120ms ease;
|
|
227
235
|
}
|
|
228
236
|
|
|
@@ -239,9 +247,9 @@
|
|
|
239
247
|
}
|
|
240
248
|
|
|
241
249
|
.tabActive {
|
|
242
|
-
color: #fff;
|
|
243
|
-
background: var(--dsw-alias-
|
|
244
|
-
border-color: var(--dsw-alias-
|
|
250
|
+
color: var(--dsw-alias-label-primary-foreground, #fff);
|
|
251
|
+
background: var(--dsw-alias-button-primary-fill, #1f2328);
|
|
252
|
+
border-color: var(--dsw-alias-button-primary-fill, #1f2328);
|
|
245
253
|
}
|
|
246
254
|
|
|
247
255
|
.tabCount,
|
|
@@ -260,8 +268,8 @@
|
|
|
260
268
|
}
|
|
261
269
|
|
|
262
270
|
.tabActive .tabCountActive {
|
|
263
|
-
color: #fff;
|
|
264
|
-
background: rgba(
|
|
271
|
+
color: var(--dsw-alias-label-primary-foreground, #fff);
|
|
272
|
+
background: rgba(128, 128, 128, 0.22);
|
|
265
273
|
}
|
|
266
274
|
|
|
267
275
|
/* —— body / list —— */
|
|
@@ -422,31 +430,34 @@
|
|
|
422
430
|
}
|
|
423
431
|
|
|
424
432
|
.installBtn {
|
|
425
|
-
color: var(--dsw-alias-label-
|
|
426
|
-
background:
|
|
433
|
+
color: var(--dsw-alias-label-primary, #1f2328);
|
|
434
|
+
background: var(--dsw-alias-bg-layer-2, rgba(128, 128, 128, 0.06));
|
|
427
435
|
border: 1px solid var(--dsw-alias-border-l2, #e5e7eb);
|
|
436
|
+
user-select: none;
|
|
428
437
|
}
|
|
429
438
|
|
|
430
439
|
.installBtn:hover {
|
|
431
|
-
color: #
|
|
432
|
-
|
|
440
|
+
color: var(--dsw-alias-label-primary, #1f2328);
|
|
441
|
+
background: var(--dsw-alias-interactive-bg-hover, rgba(128, 128, 128, 0.12));
|
|
442
|
+
border-color: var(--dsw-alias-button-ghost-active-border, #d0d4da);
|
|
433
443
|
}
|
|
434
444
|
|
|
435
445
|
/* Primary action: opens the plugin detail page on dsh-plugin.org.
|
|
436
|
-
|
|
446
|
+
Uses the host primary-button tokens so it follows the active theme
|
|
447
|
+
(light: dark fill / dark: light fill). */
|
|
437
448
|
.detailBtn {
|
|
438
|
-
color: #
|
|
439
|
-
background:
|
|
440
|
-
border: 1px solid
|
|
449
|
+
color: var(--dsw-alias-label-primary-foreground, #fff);
|
|
450
|
+
background: var(--dsw-alias-button-primary-fill, #1f2328);
|
|
451
|
+
border: 1px solid transparent;
|
|
441
452
|
text-decoration: none;
|
|
442
453
|
display: inline-flex;
|
|
443
454
|
align-items: center;
|
|
444
455
|
font-weight: 500;
|
|
456
|
+
user-select: none;
|
|
445
457
|
}
|
|
446
458
|
|
|
447
459
|
.detailBtn:hover {
|
|
448
|
-
|
|
449
|
-
background: #4f6ef7;
|
|
460
|
+
background: var(--dsw-alias-button-primary-hover, #43454a);
|
|
450
461
|
}
|
|
451
462
|
|
|
452
463
|
.actions {
|
|
@@ -455,13 +466,18 @@
|
|
|
455
466
|
gap: 6px;
|
|
456
467
|
}
|
|
457
468
|
|
|
469
|
+
/* 复制成功态:成功绿描边 + 绿字 + 淡绿底,避免亮色下黑色实心块、暗色下白色实心块
|
|
470
|
+
的强对比,两种主题下都清晰醒目,且明确表达"已复制"语义。 */
|
|
458
471
|
.installBtnCopied {
|
|
459
|
-
color: #
|
|
460
|
-
background:
|
|
461
|
-
border: 1px solid
|
|
472
|
+
color: var(--dsw-alias-state-success-primary, #1a7f37);
|
|
473
|
+
background: rgba(34, 197, 94, 0.14);
|
|
474
|
+
border: 1px solid var(--dsw-alias-state-success-secondary, rgba(26, 127, 55, 0.4));
|
|
475
|
+
user-select: none;
|
|
462
476
|
}
|
|
463
477
|
|
|
464
|
-
/*
|
|
478
|
+
/* 复制成功提示条:窗口正中央浮出,无遮罩无图标。采用反色浮层——亮色模式
|
|
479
|
+
黑底白字、暗色模式白底深字(复用主按钮 token:primary-fill 与
|
|
480
|
+
label-primary-foreground 在两种主题下正好互换),与页面背景相反,始终醒目。
|
|
465
481
|
base 上直接写死居中 transform,动画结束(fill-mode 默认 none)后
|
|
466
482
|
transform 会回落到 base 值,保证动画前后位置一致、不跳动。 */
|
|
467
483
|
.toast {
|
|
@@ -472,12 +488,13 @@
|
|
|
472
488
|
z-index: 1000;
|
|
473
489
|
padding: 10px 16px;
|
|
474
490
|
border-radius: 8px;
|
|
475
|
-
background: #
|
|
476
|
-
border: 1px solid
|
|
477
|
-
color: #
|
|
491
|
+
background: var(--dsw-alias-button-primary-fill, #1f2328);
|
|
492
|
+
border: 1px solid transparent;
|
|
493
|
+
color: var(--dsw-alias-label-primary-foreground, #fff);
|
|
478
494
|
font-size: 12px;
|
|
495
|
+
font-weight: 500;
|
|
479
496
|
line-height: 18px;
|
|
480
|
-
box-shadow: 0 6px 24px rgba(0, 0, 0, 0.
|
|
497
|
+
box-shadow: 0 6px 24px rgba(0, 0, 0, 0.28);
|
|
481
498
|
animation: toastIn 220ms ease-out;
|
|
482
499
|
pointer-events: none;
|
|
483
500
|
white-space: nowrap;
|
|
@@ -531,11 +548,13 @@
|
|
|
531
548
|
padding: 4px 12px;
|
|
532
549
|
background: transparent;
|
|
533
550
|
cursor: pointer;
|
|
551
|
+
user-select: none;
|
|
534
552
|
}
|
|
535
553
|
|
|
536
554
|
.retryBtn:hover {
|
|
537
|
-
color: var(--dsw-alias-
|
|
538
|
-
|
|
555
|
+
color: var(--dsw-alias-label-primary, #1f2328);
|
|
556
|
+
background: var(--dsw-alias-interactive-bg-hover, rgba(128, 128, 128, 0.08));
|
|
557
|
+
border-color: var(--dsw-alias-button-ghost-active-border, #d0d4da);
|
|
539
558
|
}
|
|
540
559
|
|
|
541
560
|
/* —— footer —— */
|
|
@@ -562,6 +581,7 @@
|
|
|
562
581
|
color: var(--dsw-alias-brand-primary, #4f6ef7);
|
|
563
582
|
text-decoration: none;
|
|
564
583
|
white-space: nowrap;
|
|
584
|
+
user-select: none;
|
|
565
585
|
}
|
|
566
586
|
|
|
567
587
|
.footLink:hover {
|