dsh-plugin-core-demo 0.2.2 → 0.2.4
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 +176 -43
- package/package.json +1 -1
package/dist/client.js
CHANGED
|
@@ -102,6 +102,10 @@ body{
|
|
|
102
102
|
--dshpc-on-signal:#fff;
|
|
103
103
|
/* \u9EC4\u5E95\u4E0A\u7684\u5B57\uFF1A\u9EC4\u8272\u662F\u4E2D\u9AD8\u660E\u5EA6\uFF0C\u767D\u5B57\u770B\u4E0D\u6E05 \u21D2 \u56FA\u5B9A\u6DF1\u8272\uFF08\u4E0E\u4E3B\u9898\u65E0\u5173\uFF09\u3002 */
|
|
104
104
|
--dshpc-on-warning:#1f2328;
|
|
105
|
+
/* \u60AC\u505C\u63D0\u793A\u6C14\u6CE1\uFF08\u5BF9\u9F50\u5B98\u65B9 Tooltip \u7684\u7528\u8272\uFF1A\u5E95\u8D70\u5BBF\u4E3B alias-tooltip-bg\uFF0C\u7F3A\u5931\u65F6\u7ED9\u56FA\u5B9A\u4E2D\u6027\u515C\u5E95\uFF09\u3002
|
|
106
|
+
FieldHint \u7684\u81EA\u7ED8\u6C14\u6CE1\u4E5F\u5403\u8FD9\u4E24\u6761 \u2014\u2014 \u4FDD\u8BC1\u300C\u95EE\u53F7\u63D0\u793A\u300D\u4E0E\u300C\u5B98\u65B9 Tooltip\u300D\u540C\u4E00\u79CD\u6C14\u6CE1\u76AE\u80A4\u3002 */
|
|
107
|
+
--dshpc-tooltip-bg:var(--dsw-alias-tooltip-bg,#1f2328);
|
|
108
|
+
--dshpc-tooltip-fg:#ffffff;
|
|
105
109
|
|
|
106
110
|
/* \u2500\u2500 \u5B9E\u5FC3\u6309\u94AE\u7684 hover / active \u6D3E\u751F\u6001\uFF082026-10-19 \u7528\u6237\u70B9\u540D\uFF09\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500
|
|
107
111
|
\u539F\u5B9E\u73B0\u662F :hover \u76F4\u63A5\u538B opacity .9\uFF1A\u9ED1\u5E95\u538B 10% \u51E0\u4E4E\u770B\u4E0D\u51FA\u6765\uFF0C\u7528\u6237\u539F\u8BDD\u300C\u5B8C\u5168\u611F\u89C9\u4E0D\u5230\u989C\u8272\u53D8\u4E86\u300D\u3002
|
|
@@ -231,6 +235,9 @@ body{
|
|
|
231
235
|
body[data-ds-dark-theme]{
|
|
232
236
|
--dshpc-solid:var(--dsw-static-neutral-900,#0f0f0f);
|
|
233
237
|
--dshpc-on-solid:var(--dsw-static-neutral-00,#fff);
|
|
238
|
+
/* \u60AC\u505C\u63D0\u793A\u6C14\u6CE1\uFF08\u6697\u8272\u7248\uFF09\uFF1A\u5B98\u65B9 alias \u5728\u6697\u8272\u4E0B\u81EA\u52A8\u6362\u503C\uFF1Balias \u7F3A\u5931\u65F6\u7ED9\u4EAE\u5E95\u6DF1\u5B57\uFF08\u4E0E\u5B98\u65B9\u6697\u8272\u6C14\u6CE1\u540C\u5411\uFF09\u3002 */
|
|
239
|
+
--dshpc-tooltip-bg:var(--dsw-alias-tooltip-bg,#e8e8e8);
|
|
240
|
+
--dshpc-tooltip-fg:#1f2328;
|
|
234
241
|
/* \u5B9E\u5FC3\u6309\u94AE hover / active\uFF08\u6697\u8272\u7248\uFF09\uFF1A\u9ED1\u5E95\uFF08\u6D45\u8272\u4E3B\u9898\u7684\u8FD1\u9ED1 \u2192 \u6697\u8272\u4E0B\u7684\u8FD1\u767D\uFF09\u63BA\u9ED1\u538B\u6DF1\uFF1B
|
|
235
242
|
\u7EA2 / \u7EFF / \u9EC4 / \u84DD\u63BA\u767D\u63D0\u4EAE\u3002\u4E0E\u4EAE\u8272\u6BB5\u65B9\u5411\u76F8\u53CD\uFF0C\u4FDD\u8BC1\u4E24\u79CD\u4E3B\u9898\u4E0B\u300C\u4E00\u773C\u770B\u51FA\u53D8\u4E86\u300D\u3002 */
|
|
236
243
|
--dshpc-accent-hover:color-mix(in srgb,var(--dshpc-accent) 80%,#000000);
|
|
@@ -369,7 +376,12 @@ var SEGMENTED_CSS = `
|
|
|
369
376
|
\u51E0\u4F55 = \u6BB5\u9AD8 = token \u2212 6px\uFF08\u4E0A\u4E0B\u5404 2px padding + 1px \u8FB9\u6846\uFF09\uFF1Bdefault \u771F\u8FB9\u6846 1px + padding 2px\uFF0C
|
|
370
377
|
inset \u65E0\u8FB9\u6846\u6545 padding \u6536 3px \u628A\u7F3A\u7684 1px \u8865\u56DE\uFF0C\u4E24\u79CD\u5916\u89C2\u603B\u9AD8\u90FD == token\uFF0824/28/32\uFF09\uFF0C\u4E0D\u518D\u591A +2px\u3002
|
|
371
378
|
\u4EE5\u540E Button / Input \u7684\u6709\u8FB9 / \u65E0\u8FB9\u540C\u6B64\u89C4\u5219\u3002 */
|
|
372
|
-
|
|
379
|
+
/* \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
|
|
380
|
+
\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
|
|
381
|
+
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
|
|
382
|
+
var() \u7684\u7B2C\u4E8C\u53C2\u515C\u5E95\u4FDD\u8BC1\u4EFB\u4F55\u60C5\u51B5\u4E0B\u8F68\u9053\u90FD\u6709\u5E95\u3001\u9009\u4E2D\u7247\u90FD\u6709\u8272\u3002 */
|
|
383
|
+
.dshpc-seg{--seg-track:var(--dshpc-hover);--seg-thumb:var(--dshpc-surface-raised);
|
|
384
|
+
display:inline-flex;align-items:center;gap:2px;padding:2px;border-radius:var(--dshpc-radius-md);background:var(--seg-track);}
|
|
373
385
|
/* \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
|
|
374
386
|
\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
|
|
375
387
|
\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
|
|
@@ -389,7 +401,7 @@ var SEGMENTED_CSS = `
|
|
|
389
401
|
.dshpc-seg__item:hover:not([aria-pressed='true']):not(:disabled){color:var(--dshpc-fg);background:var(--dshpc-hover);}
|
|
390
402
|
.dshpc-seg--inset .dshpc-seg__item:hover:not([aria-pressed='true']):not(:disabled){background:var(--dshpc-active);}
|
|
391
403
|
/* \u9009\u4E2D\u7247\uFF1A\u4EAE\u7247 + \u63CF\u8FB9 + \u6D6E\u8D77\u9634\u5F71 \u21D2 \u5728\u5361\u7247\u5E95\uFF08\u4E0E\u4EAE\u7247\u540C\u8272\uFF09\u4E0A\u4E5F\u770B\u5F97\u51FA\u8FB9\u754C */
|
|
392
|
-
.dshpc-seg__item[aria-pressed='true']{background:var(--seg-thumb);border-color:var(--dshpc-border);
|
|
404
|
+
.dshpc-seg__item[aria-pressed='true']{background:var(--seg-thumb,var(--dshpc-surface-raised));border-color:var(--dshpc-border);
|
|
393
405
|
box-shadow:var(--dshpc-shadow-raised);color:var(--dshpc-fg);font-weight:600;}
|
|
394
406
|
.dshpc-seg__item:focus-visible{outline:2px solid var(--dshpc-focus);outline-offset:-2px;}
|
|
395
407
|
.dshpc-seg__item:disabled{cursor:default;opacity:.4;}
|
|
@@ -518,21 +530,6 @@ var BUTTON_CSS = `
|
|
|
518
530
|
.dshpc-iconbtn:focus-visible{outline:2px solid var(--dshpc-focus);outline-offset:2px;}
|
|
519
531
|
.dshpc-iconbtn:disabled{cursor:default;opacity:.4;}
|
|
520
532
|
|
|
521
|
-
.dshpc-iconbtn{appearance:none;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;
|
|
522
|
-
border:1px solid transparent;border-radius:var(--dshpc-radius-sm);background:transparent;color:var(--dshpc-fg-2);
|
|
523
|
-
font-family:inherit;cursor:pointer;flex:none;
|
|
524
|
-
transition:background-color var(--dshpc-dur-fast) var(--dshpc-ease),border-color var(--dshpc-dur-fast) var(--dshpc-ease),color var(--dshpc-dur-fast) var(--dshpc-ease),opacity var(--dshpc-dur-fast) var(--dshpc-ease);}
|
|
525
|
-
.dshpc-iconbtn--sm{width:var(--dshpc-control-h-sm);height:var(--dshpc-control-h-sm);font-size:var(--dshpc-font-sm);}
|
|
526
|
-
.dshpc-iconbtn--md{width:var(--dshpc-control-h-md);height:var(--dshpc-control-h-md);font-size:var(--dshpc-font-md);}
|
|
527
|
-
.dshpc-iconbtn--lg{width:var(--dshpc-control-h-lg);height:var(--dshpc-control-h-lg);font-size:var(--dshpc-font-md);}
|
|
528
|
-
.dshpc-iconbtn--plain{color:var(--dshpc-fg-2);}
|
|
529
|
-
.dshpc-iconbtn--outline{background:var(--dshpc-surface-1);border-color:var(--dshpc-border);color:var(--dshpc-fg-2);}
|
|
530
|
-
.dshpc-iconbtn--danger{color:var(--dshpc-danger);}
|
|
531
|
-
.dshpc-iconbtn:hover:not(:disabled){background:var(--dshpc-hover);color:var(--dshpc-fg);}
|
|
532
|
-
.dshpc-iconbtn--danger:hover:not(:disabled){background:var(--dshpc-hover);color:var(--dshpc-danger);}
|
|
533
|
-
.dshpc-iconbtn:focus-visible{outline:2px solid var(--dshpc-focus);outline-offset:2px;}
|
|
534
|
-
.dshpc-iconbtn:disabled{cursor:default;opacity:.4;}
|
|
535
|
-
|
|
536
533
|
/* \u2500\u2500 \u884C\u5F0F\u6587\u4EF6\u6309\u94AE\uFF08\u56FE\u6807 + \u6587\u4EF6\u540D\uFF09P2\uFF1A**\u5168\u7AD9\u552F\u4E00\u5B9E\u73B0**\uFF082026-10-04 \u6536\u7F16\uFF09\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500
|
|
537
534
|
\u7528\u9014\uFF1A\u300C\u4EA7\u51FA\u7269 / \u9644\u4EF6\u300D\u90A3\u79CD**\u4E00\u884C\u4E00\u4E2A\u6587\u4EF6**\u7684\u6E05\u5355\u9879\uFF08\u57FA\u7840\u4FE1\u606F\u53F3\u680F\u4EA7\u51FA\u7269\u6E05\u5355\u3001\u9644\u4EF6\u533A\u3001
|
|
538
535
|
\u6267\u884C\u8BB0\u5F55\u9875\u7684\u5C55\u5F00\u533A\uFF09\u3002\u5E73\u65F6\u900F\u660E\u3001**\u9F20\u6807\u79FB\u4E0A\u53BB\u624D\u51FA\u6D45\u5E95**\uFF08\u6CBF\u7528\u7528\u6237 2026-10-03 \u5B9A\u7684\u89C2\u611F\uFF09\u3002
|
|
@@ -730,10 +727,15 @@ var HINT_CSS = `
|
|
|
730
727
|
transition:color var(--dshpc-dur-fast) var(--dshpc-ease);}
|
|
731
728
|
.dshpc-hint:hover,.dshpc-hint:focus-visible{color:var(--dshpc-fg);background:0 0;}
|
|
732
729
|
.dshpc-hint:focus-visible{outline:2px solid var(--dshpc-focus);outline-offset:1px;}
|
|
730
|
+
/* \u6C14\u6CE1\u76AE\u80A4 = \u5B98\u65B9 Tooltip \u540C\u6B3E\uFF082026-10-19 \u7528\u6237\u70B9\u540D\u300C\u4E24\u4E2A\u6C14\u6CE1\u5FC5\u987B\u4E00\u79CD\u76AE\u80A4\u300D\uFF09\uFF1A
|
|
731
|
+
\u5E95\u8272\u8D70 --dsw-alias-tooltip-bg \u7684 token \u5305\u88C5\uFF08--dshpc-tooltip-bg\uFF0C\u660E\u6697\u5404\u7ED9\u515C\u5E95\uFF09\u3001
|
|
732
|
+
13px \u5B57\u53F7\u3001\u5C0F\u5185\u8DDD\u3001radius-sm\uFF1Bwhite-space:pre-line \u21D2 \u6587\u672C\u91CC\u7684
|
|
733
|
+
\u662F\u771F\u5B9E\u6362\u884C
|
|
734
|
+
\uFF08\u7B2C\u4E00\u884C\u540D\u5B57\u3001\u7B2C\u4E8C\u884C\u6B63\u6587\u7684\u4E24\u6BB5\u5F0F\u63D0\u793A\u5C31\u9760\u5B83\uFF09\u3002 */
|
|
733
735
|
.dshpc-hint__bubble{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translateX(-50%);
|
|
734
|
-
box-sizing:border-box;width:max-content;max-width:280px;padding:
|
|
735
|
-
border-radius:var(--dshpc-radius-sm);background:var(--dshpc-
|
|
736
|
-
font-size:var(--dshpc-font-
|
|
736
|
+
box-sizing:border-box;width:max-content;max-width:280px;padding:5px 9px;
|
|
737
|
+
border-radius:var(--dshpc-radius-sm);background:var(--dshpc-tooltip-bg);color:var(--dshpc-tooltip-fg);
|
|
738
|
+
font-size:var(--dshpc-font-md);line-height:1.55;text-align:left;white-space:pre-line;
|
|
737
739
|
box-shadow:var(--dshpc-shadow-2);z-index:var(--dshpc-z-menu);
|
|
738
740
|
opacity:0;visibility:hidden;pointer-events:none;
|
|
739
741
|
transition:opacity var(--dshpc-dur-fast) var(--dshpc-ease);}
|
|
@@ -2027,7 +2029,15 @@ var DICT2 = {
|
|
|
2027
2029
|
btnVariantHint: "\u5B9E\u5FC3\uFF1Aprimary / secondary / danger / success / warning / info\uFF1B\u7EBF\u6846\uFF1Aoutline / danger-outline\uFF1B\u65E0\u5E95\uFF1Aghost / link",
|
|
2028
2030
|
btnSizeTitle: "\u5C3A\u5BF8 / \u56FE\u6807 / block",
|
|
2029
2031
|
btnSizeHint: "sm 24 \xB7 md 28 \xB7 lg 32 \u540C\u9AD8\uFF1Bicon \u6536\u7684\u662F ReactNode\u2014\u2014\u5B98\u65B9\u56FE\u6807\u7EC4\u4EF6\u3001\u81EA\u7ED8 SVG\u3001\u751A\u81F3\u4E00\u4E2A\u5B57\u7B26\u90FD\u884C\uFF0C\u4E0D\u662F\u540D\u5B57\u4E5F\u4E0D\u662F class\uFF08\u4E0B\u9762\u4E09\u9897\u5206\u522B\u662F\u8FD9\u4E09\u79CD\uFF09\uFF1BiconRight \u540E\u7F6E\u3001block \u6491\u6EE1\u7236\u5BBD",
|
|
2030
|
-
btnIconOnly: "
|
|
2032
|
+
btnIconOnly: "icon only",
|
|
2033
|
+
tooltipTitle: "Tooltip\uFF08\u9F20\u6807\u60AC\u505C\u63D0\u793A\uFF09",
|
|
2034
|
+
tooltipHint: "\u5B98\u65B9 Tooltip\uFF1Aside \u4E0A / \u4E0B / \u53F3 \xD7 align \u5C45\u4E2D / \u8D34\u8FB9\uFF1B\u951A\u70B9\u53EF\u4EE5\u662F\u6309\u94AE\u6216\u4E00\u6BB5\u6587\u5B57\uFF1B\u957F\u6587\u672C\u6309 maxWidth \u81EA\u52A8\u6298\u884C\uFF1B\u6700\u53F3\u4E00\u9897\u662F\u300C\u540D\u5B57 + \u6B63\u6587\u300D\u4E24\u6BB5\u5F0F\u2014\u2014\u6587\u672C\u91CC\u7684 \n \u5C31\u662F\u771F\u5B9E\u6362\u884C",
|
|
2035
|
+
tooltipAnchorText: "\u6587\u5B57\u951A\u70B9",
|
|
2036
|
+
tooltipAnchorButton: "\u6309\u94AE\u951A\u70B9",
|
|
2037
|
+
tooltipLong: "\u957F\u6587\u672C\u6362\u884C",
|
|
2038
|
+
tooltipName: "\u5F20\u4E09\u4E30",
|
|
2039
|
+
tooltipMultiline: "\u4E24\u6BB5\u5F0F\uFF08\u540D\u5B57 + \u6B63\u6587\uFF09",
|
|
2040
|
+
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",
|
|
2031
2041
|
btnHintTitle: "\u95EE\u53F7\u63D0\u793A\uFF08FieldHint\uFF09",
|
|
2032
2042
|
btnHintHint: "\u72EC\u7ACB\u7EC4\u4EF6\uFF0C\u653E\u54EA\u90FD\u884C\uFF1A\u6807\u9898\u540E / \u6309\u94AE\u540E / \u4E00\u6BB5\u6587\u5B57\u540E / \u8F93\u5165\u6846\u540E\uFF1B\u9F20\u6807\u60AC\u505C\u6216\u952E\u76D8\u805A\u7126\u6D6E\u51FA\u6C14\u6CE1",
|
|
2033
2043
|
btnStateTitle: "\u72B6\u6001",
|
|
@@ -2039,7 +2049,24 @@ var DICT2 = {
|
|
|
2039
2049
|
btnLabelDelete: "\u5220\u9664",
|
|
2040
2050
|
btnLabelMixed: "\u4FDD\u5B58 Save",
|
|
2041
2051
|
inputHint: "Input / PrefixedInput / NumberInput / Textarea\uFF0C\u90FD\u652F\u6301 error \u63CF\u7EA2\uFF1B\u884C\u5C3E\u53EF\u6302 FieldHint \u95EE\u53F7\u63D0\u793A",
|
|
2042
|
-
checkboxHint: "\u5916\u89C2\u5BF9\u9F50\u771F\u5B9E\u63D2\u4EF6\uFF1A\u7070\u5E95 inset\uFF08\u65E0\u5916\u63CF\u8FB9\uFF09\uFF1B\u5E26\u63CF\u8FB9\u7684 default \u4EC5\u4F9B\u7279\u6B8A\u573A\u5408\uFF0C\
|
|
2052
|
+
checkboxHint: "\u5916\u89C2\u5BF9\u9F50\u771F\u5B9E\u63D2\u4EF6\uFF1A\u7070\u5E95 inset\uFF08\u65E0\u5916\u63CF\u8FB9\uFF09\uFF1B\u5E26\u63CF\u8FB9\u7684 default \u4EC5\u4F9B\u7279\u6B8A\u573A\u5408\uFF08\u6700\u53F3\uFF0C\u53EF\u70B9\u7740\u73A9\uFF09\uFF1B\u661F\u671F\u65B9\u5757\u662F\u591A\u9009\u3002\u6587\u6848\u968F\u8BED\u8A00\u5207\u6362",
|
|
2053
|
+
segDay: "\u65E5",
|
|
2054
|
+
segWeek: "\u5468",
|
|
2055
|
+
segMonth: "\u6708",
|
|
2056
|
+
segAll: "\u5168\u90E8",
|
|
2057
|
+
segDoing: "\u8FDB\u884C\u4E2D",
|
|
2058
|
+
segClaimed: "\u5F85\u8BA4\u9886",
|
|
2059
|
+
segBlocked: "\u963B\u585E",
|
|
2060
|
+
segStalled: "\u505C\u6EDE",
|
|
2061
|
+
segPreview: "\u9884\u89C8",
|
|
2062
|
+
segSource: "\u6E90\u7801",
|
|
2063
|
+
weekday1: "\u4E00",
|
|
2064
|
+
weekday2: "\u4E8C",
|
|
2065
|
+
weekday3: "\u4E09",
|
|
2066
|
+
weekday4: "\u56DB",
|
|
2067
|
+
weekday5: "\u4E94",
|
|
2068
|
+
weekday6: "\u516D",
|
|
2069
|
+
weekday7: "\u65E5",
|
|
2043
2070
|
designTokenHint: "\u989C\u8272\u5168\u90E8\u6765\u81EA design \u7684 token\uFF1B\u5207\u6362\u53F3\u4E0A\u89D2\u660E\u6697\uFF0C\u4E0B\u9762\u4F1A\u8DDF\u7740\u53D8",
|
|
2044
2071
|
designInjectHint: "\u63A7\u4EF6\u6E32\u67D3\u524D\u8C03\u4E00\u6B21 setStyleKit + ensureControls\uFF0Ctoken \u4E0E\u63A7\u4EF6 CSS \u7531 kit \u6CE8\u5165 <head>",
|
|
2045
2072
|
fieldHintDate: "\u4EFB\u52A1\u81EA\u8BE5\u65E5\u8D77\u5F00\u59CB\u6267\u884C\u3002\u53EF\u63D0\u524D\u521B\u5EFA\u4EFB\u52A1\uFF0C\u81F3\u8BE5\u65E5\u81EA\u52A8\u5F00\u8DD1\uFF1B\u300C\u6BCF N \u5468\u300D\u4EA6\u81EA\u8BE5\u65E5\u8D77\u7B97\u9996\u5468\u3002",
|
|
@@ -2082,7 +2109,15 @@ var DICT2 = {
|
|
|
2082
2109
|
btnVariantHint: "Solid: primary / secondary / danger / success / warning / info; outlined: outline / danger-outline; flat: ghost / link",
|
|
2083
2110
|
btnSizeTitle: "Sizes / icons / block",
|
|
2084
2111
|
btnSizeHint: "sm 24 \xB7 md 28 \xB7 lg 32, same height; icon takes any ReactNode \u2014 an official icon component, your own SVG, even a single character (not a name, not a class); iconRight trails, block fills the parent",
|
|
2085
|
-
btnIconOnly: "
|
|
2112
|
+
btnIconOnly: "icon only",
|
|
2113
|
+
tooltipTitle: "Tooltip (hover hint)",
|
|
2114
|
+
tooltipHint: "Official Tooltip: side top / bottom / right x align center / end; anchor can be a button or a span of text; long labels wrap at maxWidth; the rightmost one is a two-part hint (name + body) where \n in the text is a real line break",
|
|
2115
|
+
tooltipAnchorText: "Text anchor",
|
|
2116
|
+
tooltipAnchorButton: "Button anchor",
|
|
2117
|
+
tooltipLong: "Long label",
|
|
2118
|
+
tooltipName: "Alex Chen",
|
|
2119
|
+
tooltipMultiline: "Two-part (name + body)",
|
|
2120
|
+
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.",
|
|
2086
2121
|
btnHintTitle: "Question-mark hint (FieldHint)",
|
|
2087
2122
|
btnHintHint: "Standalone component, drop it anywhere: after a title, a button, a sentence, or an input; hover or keyboard-focus to reveal",
|
|
2088
2123
|
btnStateTitle: "States",
|
|
@@ -2094,7 +2129,24 @@ var DICT2 = {
|
|
|
2094
2129
|
btnLabelDelete: "Delete",
|
|
2095
2130
|
btnLabelMixed: "Save \u4FDD\u5B58",
|
|
2096
2131
|
inputHint: "Input / PrefixedInput / NumberInput / Textarea, all support error highlighting; a FieldHint question-mark tip can hang at the row end",
|
|
2097
|
-
checkboxHint: "Looks match the real plugin: grey inset background (no outer border); the bordered default is for special cases
|
|
2132
|
+
checkboxHint: "Looks match the real plugin: grey inset background (no outer border); the bordered default (rightmost, clickable) is for special cases; the weekday squares are multi-select. Labels follow the locale",
|
|
2133
|
+
segDay: "Day",
|
|
2134
|
+
segWeek: "Week",
|
|
2135
|
+
segMonth: "Month",
|
|
2136
|
+
segAll: "All",
|
|
2137
|
+
segDoing: "Doing",
|
|
2138
|
+
segClaimed: "Open",
|
|
2139
|
+
segBlocked: "Blocked",
|
|
2140
|
+
segStalled: "Stalled",
|
|
2141
|
+
segPreview: "Render",
|
|
2142
|
+
segSource: "Source",
|
|
2143
|
+
weekday1: "Mo",
|
|
2144
|
+
weekday2: "Tu",
|
|
2145
|
+
weekday3: "We",
|
|
2146
|
+
weekday4: "Th",
|
|
2147
|
+
weekday5: "Fr",
|
|
2148
|
+
weekday6: "Sa",
|
|
2149
|
+
weekday7: "Su",
|
|
2098
2150
|
designTokenHint: "All colors come from design tokens; switch light/dark at top-right and these update with it",
|
|
2099
2151
|
designInjectHint: "Call setStyleKit + ensureControls once before controls render; the kit injects tokens and control CSS into <head>",
|
|
2100
2152
|
fieldHintDate: 'The task runs starting from this date. You can create it ahead of time and it auto-starts on that day; "every N weeks" also counts its first week from this date.',
|
|
@@ -2242,6 +2294,22 @@ var VARIANTS = [
|
|
|
2242
2294
|
{ value: "link", icon: "search" }
|
|
2243
2295
|
];
|
|
2244
2296
|
var CUSTOM_COLORS = ["#7c3aed", "#0ea5e9", "#f97316", "#16a34a"];
|
|
2297
|
+
function tipAnchor(text, side, align) {
|
|
2298
|
+
const props = { label: text, side };
|
|
2299
|
+
if (align !== void 0) props.align = align;
|
|
2300
|
+
return (0, import_react20.createElement)(import_dsh_client_ui_primitives.Tooltip, props, (0, import_react20.createElement)("button", {
|
|
2301
|
+
type: "button",
|
|
2302
|
+
style: {
|
|
2303
|
+
padding: "4px 10px",
|
|
2304
|
+
border: "1px solid var(--dshpc-border)",
|
|
2305
|
+
borderRadius: "6px",
|
|
2306
|
+
background: "var(--dshpc-surface-1)",
|
|
2307
|
+
color: "var(--dshpc-fg)",
|
|
2308
|
+
fontSize: "12px",
|
|
2309
|
+
cursor: "help"
|
|
2310
|
+
}
|
|
2311
|
+
}, text));
|
|
2312
|
+
}
|
|
2245
2313
|
function Row(props) {
|
|
2246
2314
|
return (0, import_react20.createElement)("div", { style: { display: "flex", gap: "8px", flexWrap: "wrap", alignItems: "center" } }, props.children);
|
|
2247
2315
|
}
|
|
@@ -2260,6 +2328,7 @@ function ButtonsSection() {
|
|
|
2260
2328
|
const [seg, setSeg] = (0, import_react20.useState)("week");
|
|
2261
2329
|
const [filter, setFilter] = (0, import_react20.useState)("all");
|
|
2262
2330
|
const [multi, setMulti] = (0, import_react20.useState)(["1"]);
|
|
2331
|
+
const [view, setView] = (0, import_react20.useState)("render");
|
|
2263
2332
|
return (0, import_react20.createElement)(
|
|
2264
2333
|
"div",
|
|
2265
2334
|
null,
|
|
@@ -2356,6 +2425,55 @@ function ButtonsSection() {
|
|
|
2356
2425
|
)
|
|
2357
2426
|
)
|
|
2358
2427
|
),
|
|
2428
|
+
// ── Tooltip:官方悬停提示,side × align 全组合 + 双锚点类型 + 长文本换行 ──
|
|
2429
|
+
(0, import_react20.createElement)(
|
|
2430
|
+
Demo,
|
|
2431
|
+
{ title: t2("tooltipTitle"), hint: t2("tooltipHint") },
|
|
2432
|
+
(0, import_react20.createElement)(
|
|
2433
|
+
"div",
|
|
2434
|
+
{ style: { display: "flex", flexDirection: "column", gap: "12px" } },
|
|
2435
|
+
(0, import_react20.createElement)(
|
|
2436
|
+
Labeled,
|
|
2437
|
+
{ label: t2("tooltipAnchorButton") },
|
|
2438
|
+
tipAnchor("top \xB7 center", "top", "center"),
|
|
2439
|
+
tipAnchor("top \xB7 end", "top", "end"),
|
|
2440
|
+
tipAnchor("bottom \xB7 center", "bottom", "center"),
|
|
2441
|
+
tipAnchor("bottom \xB7 end", "bottom", "end"),
|
|
2442
|
+
tipAnchor("right", "right")
|
|
2443
|
+
),
|
|
2444
|
+
(0, import_react20.createElement)(
|
|
2445
|
+
Labeled,
|
|
2446
|
+
{ label: t2("tooltipAnchorText") },
|
|
2447
|
+
(0, import_react20.createElement)(
|
|
2448
|
+
import_dsh_client_ui_primitives.Tooltip,
|
|
2449
|
+
{ label: t2("tooltipHint"), side: "top" },
|
|
2450
|
+
(0, import_react20.createElement)("span", {
|
|
2451
|
+
style: { borderBottom: "1px dashed var(--dshpc-border-strong)", cursor: "help", fontSize: "13px" }
|
|
2452
|
+
}, t2("tooltipAnchorText"))
|
|
2453
|
+
),
|
|
2454
|
+
(0, import_react20.createElement)(
|
|
2455
|
+
import_dsh_client_ui_primitives.Tooltip,
|
|
2456
|
+
{ label: t2("tooltipLongText"), side: "bottom", maxWidth: 240 },
|
|
2457
|
+
(0, import_react20.createElement)("span", {
|
|
2458
|
+
style: { borderBottom: "1px dashed var(--dshpc-border-strong)", cursor: "help", fontSize: "13px" }
|
|
2459
|
+
}, t2("tooltipLong"))
|
|
2460
|
+
)
|
|
2461
|
+
),
|
|
2462
|
+
// 两段式:第一行名字(短)、\n 真实换行、第二行正文(长,受 maxWidth 折行)
|
|
2463
|
+
(0, import_react20.createElement)(
|
|
2464
|
+
Labeled,
|
|
2465
|
+
{ label: t2("tooltipMultiline") },
|
|
2466
|
+
(0, import_react20.createElement)(
|
|
2467
|
+
import_dsh_client_ui_primitives.Tooltip,
|
|
2468
|
+
{ label: `${t2("tooltipName")}
|
|
2469
|
+
${t2("tooltipLongText")}`, side: "top", maxWidth: 260 },
|
|
2470
|
+
(0, import_react20.createElement)("span", {
|
|
2471
|
+
style: { borderBottom: "1px dashed var(--dshpc-border-strong)", cursor: "help", fontSize: "13px" }
|
|
2472
|
+
}, t2("tooltipName"))
|
|
2473
|
+
)
|
|
2474
|
+
)
|
|
2475
|
+
)
|
|
2476
|
+
),
|
|
2359
2477
|
// ── 问号提示:证明它不属于 Input 家族,随处可挂 ──────────────────────
|
|
2360
2478
|
(0, import_react20.createElement)(
|
|
2361
2479
|
Demo,
|
|
@@ -2465,11 +2583,11 @@ function ButtonsSection() {
|
|
|
2465
2583
|
(0, import_react20.createElement)(Segmented, {
|
|
2466
2584
|
variant: "inset",
|
|
2467
2585
|
items: [
|
|
2468
|
-
{ value: "all", label: "
|
|
2469
|
-
{ value: "doing", label: "
|
|
2470
|
-
{ value: "claimed", label: "
|
|
2471
|
-
{ value: "blocked", label: "
|
|
2472
|
-
{ value: "stalled", label: "
|
|
2586
|
+
{ value: "all", label: t2("segAll"), count: 11 },
|
|
2587
|
+
{ value: "doing", label: t2("segDoing"), count: 5 },
|
|
2588
|
+
{ value: "claimed", label: t2("segClaimed"), count: 11 },
|
|
2589
|
+
{ value: "blocked", label: t2("segBlocked") },
|
|
2590
|
+
{ value: "stalled", label: t2("segStalled") }
|
|
2473
2591
|
],
|
|
2474
2592
|
value: filter,
|
|
2475
2593
|
onChange: setFilter
|
|
@@ -2479,15 +2597,10 @@ function ButtonsSection() {
|
|
|
2479
2597
|
multiple: true,
|
|
2480
2598
|
className: "dshpc-seg--weekday",
|
|
2481
2599
|
label: "\u661F\u671F",
|
|
2482
|
-
items: [
|
|
2483
|
-
|
|
2484
|
-
|
|
2485
|
-
|
|
2486
|
-
{ value: "4", label: "\u56DB" },
|
|
2487
|
-
{ value: "5", label: "\u4E94" },
|
|
2488
|
-
{ value: "6", label: "\u516D" },
|
|
2489
|
-
{ value: "7", label: "\u65E5" }
|
|
2490
|
-
],
|
|
2600
|
+
items: [1, 2, 3, 4, 5, 6, 7].map((n) => ({
|
|
2601
|
+
value: String(n),
|
|
2602
|
+
label: t2(`weekday${n}`)
|
|
2603
|
+
})),
|
|
2491
2604
|
value: multi,
|
|
2492
2605
|
onChange: setMulti
|
|
2493
2606
|
}),
|
|
@@ -2497,12 +2610,11 @@ function ButtonsSection() {
|
|
|
2497
2610
|
variant: "default",
|
|
2498
2611
|
label: "default \u5916\u89C2\u793A\u4F8B",
|
|
2499
2612
|
items: [
|
|
2500
|
-
{ value: "render", label: "
|
|
2501
|
-
{ value: "source", label: "
|
|
2613
|
+
{ value: "render", label: t2("segPreview") },
|
|
2614
|
+
{ value: "source", label: t2("segSource") }
|
|
2502
2615
|
],
|
|
2503
|
-
value:
|
|
2504
|
-
onChange:
|
|
2505
|
-
}
|
|
2616
|
+
value: view,
|
|
2617
|
+
onChange: setView
|
|
2506
2618
|
})
|
|
2507
2619
|
)
|
|
2508
2620
|
)
|
|
@@ -3405,6 +3517,27 @@ function DemoPage() {
|
|
|
3405
3517
|
},
|
|
3406
3518
|
t2(s.titleKey)
|
|
3407
3519
|
)
|
|
3520
|
+
),
|
|
3521
|
+
// 底部常驻:bundle 的真实版本 + 当前暗色判据实测值(查「改了没生效」类问题的锚点)。
|
|
3522
|
+
(0, import_react31.createElement)(
|
|
3523
|
+
"div",
|
|
3524
|
+
{
|
|
3525
|
+
style: {
|
|
3526
|
+
marginTop: "18px",
|
|
3527
|
+
paddingTop: "10px",
|
|
3528
|
+
borderTop: "1px solid var(--dshpc-border-faint)",
|
|
3529
|
+
color: "var(--dshpc-fg-3)",
|
|
3530
|
+
fontSize: "11px",
|
|
3531
|
+
fontFamily: "var(--dshpc-font-mono)"
|
|
3532
|
+
}
|
|
3533
|
+
},
|
|
3534
|
+
(0, import_react31.createElement)("div", null, `core v${"0.2.4"}`),
|
|
3535
|
+
(0, import_react31.createElement)("div", null, `demo v${"0.2.4"}`),
|
|
3536
|
+
(0, import_react31.createElement)(
|
|
3537
|
+
"div",
|
|
3538
|
+
{ title: "body[data-ds-dark-theme]" },
|
|
3539
|
+
`dark: ${typeof document !== "undefined" && document.body.hasAttribute("data-ds-dark-theme") ? "yes" : "no"}`
|
|
3540
|
+
)
|
|
3408
3541
|
)
|
|
3409
3542
|
),
|
|
3410
3543
|
(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.4",
|
|
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",
|