dsh-plugin-core-demo 0.2.7 → 0.2.8
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/dist/client.js +40 -23
- package/package.json +1 -1
package/dist/client.js
CHANGED
|
@@ -139,6 +139,10 @@ body{
|
|
|
139
139
|
\u5426\u5219\u6574\u6761 background:var(--seg-track) \u4F5C\u5E9F \u21D2 \u5206\u6BB5\u8F68\u9053\u900F\u660E\uFF08\u771F\u8E29\u8FC7\uFF1A\u9884\u89C8\u7AD9\u8F68\u9053\u6D88\u5931\uFF09\u3002 */
|
|
140
140
|
--dshpc-hover:rgba(15,15,15,.10);
|
|
141
141
|
--dshpc-active:rgba(15,15,15,.18);
|
|
142
|
+
/* \u5206\u6BB5\u63A7\u4EF6\u8F68\u9053\u5E95\uFF1A\u4E13\u7528 token\uFF08rgba \u5B57\u9762\u91CF\u3001\u4E0D\u501F --dshpc-hover \u4E2D\u8F6C\uFF09\u2014\u2014
|
|
143
|
+
2026-10-19 \u6559\u8BAD\uFF1A\u53D8\u91CF\u94FE\u4E2D\u95F4\u4EFB\u4F55\u4E00\u73AF invalid \u21D2 background \u6574\u6761\u4F5C\u5E9F\u3001\u8F68\u9053\u5168\u900F\u660E\u3002
|
|
144
|
+
\u4EAE\u8272\uFF1A\u9ED1 7%\uFF08\u6BD4 hover \u7684 10% \u6DE1\u4E00\u6863\uFF0C\u9009\u4E2D\u767D\u7247\u624D\u8DF3\u5F97\u51FA\uFF09\u3002 */
|
|
145
|
+
--dshpc-seg-track:rgba(15,15,15,.07);
|
|
142
146
|
--dshpc-mask:var(--dsw-alias-bg-mask-1,#0000003d);
|
|
143
147
|
/* \u300C\u9009\u4E2D\u9762\u300D\uFF082026-10-06\uFF0C\u4EFB\u52A1\u65E5\u7A0B\u9875\u9996\u521B\uFF09= \u5F53\u524D\u5E95\u8272**\u671D\u66F4\u6DF1\u63BA 12% \u6587\u5B57\u8272**\uFF1A
|
|
144
148
|
\u6D45\u8272\u4E3B\u9898\u4E0B\u6587\u5B57\u8272\u662F\u9ED1 \u21D2 \u9009\u4E2D\u9762\u6BD4\u5E38\u6001\u5E95\u8272**\u6DF1\u4E00\u6863**\u3002\u6DF1\u8272\u5206\u652F\u89C1 body[data-ds-dark-theme]\uFF08\u671D\u80CC\u666F\u8272\u63BA\uFF09\u3002
|
|
@@ -244,6 +248,8 @@ body[data-ds-dark-theme]{
|
|
|
244
248
|
/* \u6697\u8272 hover \u63BA\u767D 14% / active 24%\uFF08\u5BF9\u9F50\u4E0A\u9762 2026-10-18 \u7684\u52A0\u91CD\u62CD\u677F\uFF09\u3002rgba \u515C\u5E95\u884C\u540C\u4E0A\u3002 */
|
|
245
249
|
--dshpc-hover:rgba(255,255,255,.14);
|
|
246
250
|
--dshpc-active:rgba(255,255,255,.24);
|
|
251
|
+
/* \u5206\u6BB5\u8F68\u9053\uFF08\u6697\u8272\u7248\uFF09\uFF1A\u767D 10%\u2014\u2014\u6BD4 hover \u6DE1\u4E00\u6863\uFF0C\u9009\u4E2D\u4EAE\u7247\u624D\u8DF3\u5F97\u51FA\u3002 */
|
|
252
|
+
--dshpc-seg-track:rgba(255,255,255,.10);
|
|
247
253
|
--dshpc-plate:var(--dsw-static-neutral-850,#212123);
|
|
248
254
|
--dshpc-plate-hover:var(--dsw-static-neutral-800,#292929);
|
|
249
255
|
--dshpc-icon-plate:rgba(255,255,255,.05);
|
|
@@ -365,15 +371,16 @@ var SEGMENTED_CSS = `
|
|
|
365
371
|
/* \u26A0\uFE0F \u8F68\u9053 / \u9009\u4E2D\u7247\u7684\u989C\u8272\u53D8\u91CF\u5728\u57FA\u7840\u7C7B\u4E0A\u7ED9**\u9ED8\u8BA4\u503C**\uFF08= inset \u89C2\u611F\uFF09\uFF0Cvariant \u7C7B\u53EA\u505A\u8986\u76D6\uFF1A
|
|
366
372
|
\u6B64\u524D --seg-track \u53EA\u7531 variant \u7C7B\u5B9A\u4E49\uFF0C\u7C7B\u4E00\u65E6\u6CA1\u751F\u6548\uFF08\u5BBF\u4E3B\u6837\u5F0F\u88C1\u526A / \u9009\u62E9\u5668\u88AB\u88C1 / \u7248\u672C\u9519\u4F4D\uFF09\uFF0C
|
|
367
373
|
background:var(--seg-track) \u6574\u6761\u4F5C\u5E9F \u21D2 \u8F68\u9053\u5168\u900F\u660E\u3001\u300C\u5C31\u5269\u51E0\u4E2A\u5B57\u6D6E\u5728\u9875\u9762\u4E0A\u300D\uFF080.2.2 \u771F\u673A\u73B0\u8C61\uFF09\u3002
|
|
368
|
-
|
|
369
|
-
|
|
374
|
+
--seg-track \u7684\u94FE\u672B\u662F\u4E13\u7528 token --dshpc-seg-track\uFF08rgba \u5B57\u9762\u91CF\u3001\u4E0D\u7ECF --dshpc-hover \u4E2D\u8F6C\uFF09\uFF1A
|
|
375
|
+
2026-10-19 \u7684\u6559\u8BAD\u662F\u300C\u53D8\u91CF\u94FE\u4E2D\u95F4\u4EFB\u4F55\u4E00\u73AF invalid\uFF0C\u6574\u6761\u5C5E\u6027\u4F5C\u5E9F\u300D\uFF0C\u6240\u4EE5\u8F68\u9053\u8272\u5FC5\u987B\u81EA\u5DF1\u4E00\u6761\u8DEF\u3002 */
|
|
376
|
+
.dshpc-seg{--seg-track:var(--dshpc-seg-track);--seg-thumb:var(--dshpc-surface-raised);
|
|
370
377
|
display:inline-flex;align-items:center;gap:2px;padding:2px;border-radius:var(--dshpc-radius-md);background:var(--seg-track);}
|
|
371
378
|
/* \u9009\u4E2D\u7247 = --dshpc-surface-raised\uFF08\u5144\u5F1F\u9879\u76EE dsh-task-dispatch-table \u7684\u53D6\u6CD5\uFF0C2026-10-19 \u7528\u6237\u70B9\u540D
|
|
372
379
|
\u300C\u628A\u5144\u5F1F\u7684\u6837\u5F0F\u6E05\u4E86\u5C31\u4E0D\u6B63\u5E38 \u21D2 \u6CA1\u642C\u5168\u300D\u540E\u6539\u56DE\uFF09\u300210-18 \u66FE\u6539\u6210 --dshpc-solid\uFF0C\u4F46\u5B83\u5728\u6697\u8272\u4E3B\u9898\u4E0B
|
|
373
380
|
\u662F\u8FD1\u9ED1\uFF08\u6BD4\u8F68\u9053\u8FD8\u6697\uFF09\u21D2 \u9009\u4E2D\u7247\u9677\u8FDB\u8F68\u9053\u91CC\uFF1Braised \u5728\u4E24\u4E2A\u4E3B\u9898\u4E0B\u90FD\u6BD4\u8F68\u9053\u4EAE\u4E00\u6863\uFF0C\u65B9\u5411\u6B63\u786E\u3002
|
|
374
381
|
raised \u4E0E\u5361\u7247\u5E95\u540C\u4E3A bg-layer-1 \u21D2 \u9009\u4E2D\u7247\u9760**1px \u63CF\u8FB9 + \u9634\u5F71**\u4E0E\u5361\u7247\u533A\u5206\uFF08\u89C1 __item[aria-pressed]\uFF09\u3002 */
|
|
375
382
|
.dshpc-seg--default{--seg-track:var(--dshpc-surface-2);--seg-thumb:var(--dshpc-surface-raised);border:1px solid var(--dshpc-border);}
|
|
376
|
-
.dshpc-seg--inset{--seg-track:var(--dshpc-
|
|
383
|
+
.dshpc-seg--inset{--seg-track:var(--dshpc-seg-track);--seg-thumb:var(--dshpc-surface-raised);border:0;padding:3px;}
|
|
377
384
|
|
|
378
385
|
.dshpc-seg__item{appearance:none;display:inline-flex;align-items:center;gap:4px;box-sizing:border-box;
|
|
379
386
|
height:calc(var(--dshpc-control-h-sm) - 6px);padding:0 12px;border:1px solid transparent;border-radius:var(--dshpc-radius-sm);
|
|
@@ -421,7 +428,7 @@ var SEGMENTED_CSS = `
|
|
|
421
428
|
- \u9009\u4E2D\u6001\u7528\u54C1\u724C\u84DD\uFF08--dshpc-business\uFF09\u3001\u53CD\u767D\u5B57\uFF0C\u8F68\u9053\u7528 hover \u7070\uFF08\u4E0E\u539F\u81EA\u7ED8\u8F68\u9053\u4E00\u81F4\uFF09\u3002
|
|
422
429
|
2026-10-18 \u7528\u6237\u91CD\u7533\uFF08\u5BF9\u9F50\u771F\u5B9E\u622A\u56FE\uFF09\uFF1A**\u65E0\u5916\u63CF\u8FB9**\uFF08\u4E0D\u7BA1\u6302\u54EA\u4E2A variant\uFF0C\u8FD9\u91CC\u4E00\u5F8B\u64A4\u8FB9\uFF09\uFF0C
|
|
423
430
|
\u4E14\u65B9\u5757\u4E4B\u95F4\u8981\u6709\u95F4\u8DDD\uFF08gap 6px\uFF0C\u4E0D\u518D 2px \u6324\u6210\u4E00\u5768\uFF09\u3002 */
|
|
424
|
-
.dshpc-seg--weekday{--seg-track:var(--dshpc-
|
|
431
|
+
.dshpc-seg--weekday{--seg-track:var(--dshpc-seg-track);gap:6px;border:0;padding:3px;}
|
|
425
432
|
.dshpc-seg--weekday .dshpc-seg__item{width:calc(var(--dshpc-control-h-lg) - 6px);padding:0;justify-content:center;}
|
|
426
433
|
.dshpc-seg--weekday .dshpc-seg__item[aria-pressed='true']{background:var(--dshpc-business);color:var(--dshpc-fg-inverse);box-shadow:var(--dshpc-shadow-raised);}
|
|
427
434
|
|
|
@@ -460,11 +467,13 @@ var BUTTON_CSS = `
|
|
|
460
467
|
\u628A\u53F3\u5185\u8FB9\u8DDD\u8865\u4E0A\u300C\u56FE\u6807\u5BBD + \u95F4\u8DDD\u300D\uFF0C\u53EF\u7528\u76D2\u968F\u4E4B\u5DE6\u79FB\u540C\u91CF \u21D2 \u6587\u5B57\u843D\u56DE\u89C6\u89C9\u4E2D\u5FC3\uFF0C\u56FE\u6807\u8D34\u5DE6\u4FA7\u3002
|
|
461
468
|
\u56FE\u6807\u5BBD\u6309 1.2em \u4F30\uFF08\u5B98\u65B9\u56FE\u6807 14/16px vs \u5B57\u53F7 12/13px\uFF09\uFF0Cem \u968F\u5B57\u53F7\u6863\u81EA\u52A8\u7F29\u653E\u3002 */
|
|
462
469
|
.dshpc-btn--block.dshpc-btn--icon-start{padding-right:calc(var(--btn-pad) + 1.2em + 6px);}
|
|
463
|
-
.dshpc-btn__icon,.dshpc-btn__icon-end{display:inline-flex;align-items:center;justify-content:center;flex:none;}
|
|
470
|
+
.dshpc-btn__icon,.dshpc-btn__icon-end{display:inline-flex;align-items:center;justify-content:center;flex:none;line-height:0;}
|
|
471
|
+
.dshpc-btn__icon svg,.dshpc-btn__icon-end svg{display:block;margin:0;}
|
|
464
472
|
/* loading\uFF1A\u4E0D\u6362 DOM \u7ED3\u6784\uFF0C\u53EA\u5728\u6587\u6848\u524D\u63D2\u4E00\u4E2A\u540C\u8272\u5C0F\u5708\uFF08\u5C3A\u5BF8\u968F\u5B57\u53F7\uFF0C\u7F29\u653E\u4E0D\u4F9D\u8D56\u5E38\u91CF\uFF09 */
|
|
465
|
-
.dshpc-btn__spinner{display:
|
|
466
|
-
border:1.5px solid currentColor;border-right-color:transparent;border-radius:
|
|
473
|
+
.dshpc-btn__spinner{display:block;flex:none;width:12px;height:12px;box-sizing:border-box;
|
|
474
|
+
border:1.5px solid currentColor;border-right-color:transparent;border-radius:999px;
|
|
467
475
|
animation:dshpc-btn-spin .7s linear infinite;}
|
|
476
|
+
/* shortcut: 12px \u662F\u56FA\u5B9A\u503C\uFF0C\u4E0D\u968F\u6309\u94AE\u5B57\u53F7\u7F29\u653E\uFF1B\u8981\u66F4\u5927\u5C31\u6539\u8FD9\u4E00\u5904\u3002 */
|
|
468
477
|
@keyframes dshpc-btn-spin{to{transform:rotate(360deg)}}
|
|
469
478
|
|
|
470
479
|
/* \u4EA4\u4E92\u6001\uFF1A\u989C\u8272\u53D8\u5316\u5199\u5728\u53D8\u91CF\u4E0A \u21D2 \u6240\u6709\u6863\u4F4D\u4E00\u6B21\u751F\u6548\uFF0C\u4E14\u53D8\u5316\u5E45\u5EA6\u7531 token \u51B3\u5B9A\uFF08\u591F\u660E\u663E\uFF09 */
|
|
@@ -2030,7 +2039,7 @@ var DICT2 = {
|
|
|
2030
2039
|
tooltipAnchorButton: "\u6309\u94AE\u951A\u70B9",
|
|
2031
2040
|
tooltipLong: "\u957F\u6587\u672C\u6362\u884C",
|
|
2032
2041
|
tooltipName: "\u5F20\u4E09\u4E30",
|
|
2033
|
-
tooltipRich: "\u5BCC\u5361\u7247
|
|
2042
|
+
tooltipRich: "\u5BCC\u5361\u7247",
|
|
2034
2043
|
tooltipMultiline: "\u4E24\u6BB5\u5F0F",
|
|
2035
2044
|
tooltipLongText: "\u8FD9\u662F\u4E00\u6BB5\u8DB3\u591F\u957F\u7684\u63D0\u793A\u6587\u5B57\uFF1A\u6C14\u6CE1\u9047\u5230 maxWidth \u4F1A\u81EA\u52A8\u6362\u884C\uFF0C\u800C\u4E0D\u4F1A\u4E00\u8DEF\u6491\u5230\u534A\u4E2A\u5C4F\u5E55\u5BBD\uFF0C anchored \u5143\u7D20\u5728\u8FB9\u7F18\u65F6\u5B98\u65B9\u8FD8\u4F1A\u81EA\u52A8\u628A\u6C14\u6CE1\u6536\u56DE\u89C6\u53E3\u5185\u3002",
|
|
2036
2045
|
btnHintTitle: "\u95EE\u53F7\u63D0\u793A\uFF08FieldHint\uFF09",
|
|
@@ -2111,7 +2120,7 @@ var DICT2 = {
|
|
|
2111
2120
|
tooltipAnchorButton: "Button anchor",
|
|
2112
2121
|
tooltipLong: "Long label",
|
|
2113
2122
|
tooltipName: "Alex Chen",
|
|
2114
|
-
tooltipRich: "Rich card
|
|
2123
|
+
tooltipRich: "Rich card",
|
|
2115
2124
|
tooltipMultiline: "Two-part",
|
|
2116
2125
|
tooltipLongText: "A deliberately long hint: the bubble wraps at maxWidth instead of stretching to half the viewport, and the official layer pulls it back inside the viewport near the edges.",
|
|
2117
2126
|
btnHintTitle: "Question-mark hint (FieldHint)",
|
|
@@ -2302,7 +2311,7 @@ function tipAnchor(text, side, align) {
|
|
|
2302
2311
|
background: "var(--dshpc-surface-1)",
|
|
2303
2312
|
color: "var(--dshpc-fg)",
|
|
2304
2313
|
fontSize: "12px",
|
|
2305
|
-
cursor: "
|
|
2314
|
+
cursor: "pointer"
|
|
2306
2315
|
}
|
|
2307
2316
|
}, text));
|
|
2308
2317
|
}
|
|
@@ -2313,7 +2322,7 @@ function Labeled(props) {
|
|
|
2313
2322
|
return (0, import_react20.createElement)(
|
|
2314
2323
|
"div",
|
|
2315
2324
|
{ style: { display: "flex", gap: "10px", alignItems: "center", flexWrap: "wrap" } },
|
|
2316
|
-
(0, import_react20.createElement)("span", { style: { width: "64px", flex: "none", color: "var(--dshpc-fg-3)", fontSize: "12px" } }, props.label),
|
|
2325
|
+
(0, import_react20.createElement)("span", { style: { width: "auto", minWidth: "64px", flex: "none", whiteSpace: "normal", color: "var(--dshpc-fg-3)", fontSize: "12px" } }, props.label),
|
|
2317
2326
|
props.children
|
|
2318
2327
|
);
|
|
2319
2328
|
}
|
|
@@ -2444,14 +2453,14 @@ function ButtonsSection() {
|
|
|
2444
2453
|
import_dsh_client_ui_primitives.Tooltip,
|
|
2445
2454
|
{ label: t2("tooltipHint"), side: "top" },
|
|
2446
2455
|
(0, import_react20.createElement)("span", {
|
|
2447
|
-
style: { borderBottom: "1px dashed var(--dshpc-border-strong)", cursor: "
|
|
2456
|
+
style: { borderBottom: "1px dashed var(--dshpc-border-strong)", cursor: "pointer", fontSize: "13px" }
|
|
2448
2457
|
}, t2("tooltipAnchorText"))
|
|
2449
2458
|
),
|
|
2450
2459
|
(0, import_react20.createElement)(
|
|
2451
2460
|
import_dsh_client_ui_primitives.Tooltip,
|
|
2452
2461
|
{ label: t2("tooltipLongText"), side: "bottom", maxWidth: 240 },
|
|
2453
2462
|
(0, import_react20.createElement)("span", {
|
|
2454
|
-
style: { borderBottom: "1px dashed var(--dshpc-border-strong)", cursor: "
|
|
2463
|
+
style: { borderBottom: "1px dashed var(--dshpc-border-strong)", cursor: "pointer", fontSize: "13px" }
|
|
2455
2464
|
}, t2("tooltipLong"))
|
|
2456
2465
|
)
|
|
2457
2466
|
),
|
|
@@ -2464,7 +2473,7 @@ function ButtonsSection() {
|
|
|
2464
2473
|
{ label: `${t2("tooltipName")}
|
|
2465
2474
|
${t2("tooltipLongText")}`, side: "top", maxWidth: 260 },
|
|
2466
2475
|
(0, import_react20.createElement)("span", {
|
|
2467
|
-
style: { borderBottom: "1px dashed var(--dshpc-border-strong)", cursor: "
|
|
2476
|
+
style: { borderBottom: "1px dashed var(--dshpc-border-strong)", cursor: "pointer", fontSize: "13px" }
|
|
2468
2477
|
}, t2("tooltipName"))
|
|
2469
2478
|
)
|
|
2470
2479
|
),
|
|
@@ -2476,7 +2485,7 @@ ${t2("tooltipLongText")}`, side: "top", maxWidth: 260 },
|
|
|
2476
2485
|
variant: "compact",
|
|
2477
2486
|
openDelayMs: 200,
|
|
2478
2487
|
anchor: (0, import_react20.createElement)("span", {
|
|
2479
|
-
style: { borderBottom: "1px dashed var(--dshpc-border-strong)", cursor: "
|
|
2488
|
+
style: { borderBottom: "1px dashed var(--dshpc-border-strong)", cursor: "pointer", fontSize: "13px" }
|
|
2480
2489
|
}, t2("tooltipName")),
|
|
2481
2490
|
content: (0, import_react20.createElement)(
|
|
2482
2491
|
"div",
|
|
@@ -3489,6 +3498,17 @@ function useLocaleTick() {
|
|
|
3489
3498
|
function DemoPage() {
|
|
3490
3499
|
useLocaleTick();
|
|
3491
3500
|
const [active, setActive] = (0, import_react31.useState)(ALL_SECTIONS[0].id);
|
|
3501
|
+
const [diag, setDiag] = (0, import_react31.useState)("seg: \u2026");
|
|
3502
|
+
(0, import_react31.useEffect)(() => {
|
|
3503
|
+
const el = document.querySelector(".dshpc-seg");
|
|
3504
|
+
if (el === null) {
|
|
3505
|
+
setDiag("seg: no element");
|
|
3506
|
+
return;
|
|
3507
|
+
}
|
|
3508
|
+
const cs = getComputedStyle(el);
|
|
3509
|
+
setDiag(`seg ${cs.backgroundColor} gap ${cs.gap}${el.classList.contains("dshpc-seg--weekday") ? " weekday" : ""}`);
|
|
3510
|
+
}, [active]);
|
|
3511
|
+
const dark = typeof document !== "undefined" && document.body.hasAttribute("data-ds-dark-theme");
|
|
3492
3512
|
return (0, import_react31.createElement)(
|
|
3493
3513
|
"div",
|
|
3494
3514
|
{ style: { display: "flex", alignItems: "stretch", height: "100%", minHeight: 0, overflow: "hidden" } },
|
|
@@ -3532,7 +3552,7 @@ function DemoPage() {
|
|
|
3532
3552
|
t2(s.titleKey)
|
|
3533
3553
|
)
|
|
3534
3554
|
),
|
|
3535
|
-
// 底部常驻:bundle 的真实版本 +
|
|
3555
|
+
// 底部常驻:bundle 的真实版本 + 当前暗色判据 + Segmented 实测(查「改了没生效」类问题的锚点)。
|
|
3536
3556
|
(0, import_react31.createElement)(
|
|
3537
3557
|
"div",
|
|
3538
3558
|
{
|
|
@@ -3545,13 +3565,10 @@ function DemoPage() {
|
|
|
3545
3565
|
fontFamily: "var(--dshpc-font-mono)"
|
|
3546
3566
|
}
|
|
3547
3567
|
},
|
|
3548
|
-
(0, import_react31.createElement)("div", null, `core v${"0.2.
|
|
3549
|
-
(0, import_react31.createElement)("div", null, `demo v${"0.2.
|
|
3550
|
-
(0, import_react31.createElement)(
|
|
3551
|
-
|
|
3552
|
-
{ title: "body[data-ds-dark-theme]" },
|
|
3553
|
-
`dark: ${typeof document !== "undefined" && document.body.hasAttribute("data-ds-dark-theme") ? "yes" : "no"}`
|
|
3554
|
-
)
|
|
3568
|
+
(0, import_react31.createElement)("div", null, `core v${"0.2.8"}`),
|
|
3569
|
+
(0, import_react31.createElement)("div", null, `demo v${"0.2.8"}`),
|
|
3570
|
+
(0, import_react31.createElement)("div", { title: "body[data-ds-dark-theme]" }, `dark: ${dark ? "yes" : "no"}`),
|
|
3571
|
+
(0, import_react31.createElement)("div", { title: "\u5B9E\u6D4B\u9875\u9762\u4E0A\u7B2C\u4E00\u4E2A .dshpc-seg \u7684\u8F68\u9053\u5E95\u8272\u4E0E\u95F4\u8DDD" }, diag)
|
|
3555
3572
|
)
|
|
3556
3573
|
),
|
|
3557
3574
|
(0, import_react31.createElement)(
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dsh-plugin-core-demo",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.8",
|
|
4
4
|
"description": "dsh-plugin-core 的组件预览插件:装进 DSH 宿主后,在真实宿主环境里预览控件与业务组件",
|
|
5
5
|
"keywords": ["deepseek", "harness", "dsh", "dsh-plugin", "dsh-plugin-core"],
|
|
6
6
|
"homepage": "https://github.com/cq-guojia/dsh-plugin-core/tree/main/packages/demo",
|