dsh-paoding 0.4.5 → 0.4.7
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 +5 -4
- package/README_en.md +5 -4
- package/bin/dsh-paoding.mjs +22 -10
- package/docs/configuration.md +23 -0
- package/docs/configuration_en.md +23 -0
- package/docs/installation.md +23 -9
- package/docs/installation_en.md +20 -8
- package/package.json +1 -1
- package/plugins/paoding-config-ui/api-core.mjs +229 -8
- package/plugins/paoding-config-ui/index.mjs +81 -4
- package/plugins/paoding-config-ui/lib/base.css +253 -0
- package/plugins/paoding-config-ui/lib/client.js +510 -43
- package/plugins/paoding-config-ui/package.json +1 -1
- package/plugins/paoding-config-ui/stats-core.mjs +421 -0
- package/tools/lib/cli.mjs +298 -8
- package/tools/lib/config.mjs +140 -1
- package/tools/lib/doctor.mjs +82 -32
- package/tools/lib/lifecycle.mjs +333 -0
- package/tools/lib/preset-system.mjs +254 -38
- package/tools/lib/state.mjs +24 -9
|
@@ -364,6 +364,37 @@
|
|
|
364
364
|
padding: 2px 0;
|
|
365
365
|
}
|
|
366
366
|
|
|
367
|
+
/* 工具分组筛选框:分组超过 8 项时,网格上方一行小输入框。oninput 直改
|
|
368
|
+
网格单项显隐(纯 DOM,不走重渲染——重渲染会吃掉输入框焦点),观感取
|
|
369
|
+
omd-nameInput 同族(边框 / 圆角 / 字号 token 一致),尺寸更紧凑。 */
|
|
370
|
+
.omd-toolFilterWrap {
|
|
371
|
+
display: flex;
|
|
372
|
+
flex-direction: column;
|
|
373
|
+
gap: 2px;
|
|
374
|
+
padding: 2px 0;
|
|
375
|
+
}
|
|
376
|
+
|
|
377
|
+
.omd-toolFilter {
|
|
378
|
+
width: 100%;
|
|
379
|
+
box-sizing: border-box;
|
|
380
|
+
padding: 5px 8px;
|
|
381
|
+
border: 1px solid var(--dsw-alias-border-l2);
|
|
382
|
+
border-radius: 8px;
|
|
383
|
+
background: var(--dsw-alias-bg-layer-2);
|
|
384
|
+
color: var(--dsw-alias-label-primary);
|
|
385
|
+
font: inherit;
|
|
386
|
+
font-size: 12px;
|
|
387
|
+
line-height: 18px;
|
|
388
|
+
transition: border-color 0.16s ease;
|
|
389
|
+
}
|
|
390
|
+
|
|
391
|
+
.omd-toolFilter:focus-visible {
|
|
392
|
+
outline: 2px solid var(--dsw-alias-state-business-primary);
|
|
393
|
+
outline-offset: 1px;
|
|
394
|
+
}
|
|
395
|
+
|
|
396
|
+
.omd-toolFilter::placeholder { color: var(--dsw-alias-label-tertiary); }
|
|
397
|
+
|
|
367
398
|
.omd-toolItem {
|
|
368
399
|
display: flex;
|
|
369
400
|
align-items: center;
|
|
@@ -603,6 +634,64 @@
|
|
|
603
634
|
overflow-wrap: anywhere;
|
|
604
635
|
}
|
|
605
636
|
|
|
637
|
+
/* 预览「本次变更」区块:preview.diff 的结构化差分行(净新增绿 / 净移除红 /
|
|
638
|
+
变更明细中性),卡片观感同 omd-pre(描边浅底圆角),行多随预览区滚动。 */
|
|
639
|
+
.omd-diffBlock {
|
|
640
|
+
display: flex;
|
|
641
|
+
flex-direction: column;
|
|
642
|
+
gap: 4px;
|
|
643
|
+
margin: 6px 0 0;
|
|
644
|
+
padding: 8px 12px;
|
|
645
|
+
box-sizing: border-box;
|
|
646
|
+
border: 1px solid var(--dsw-alias-border-l1);
|
|
647
|
+
border-radius: 12px;
|
|
648
|
+
background: var(--dsw-alias-bg-layer-2);
|
|
649
|
+
}
|
|
650
|
+
|
|
651
|
+
.omd-diffHeading {
|
|
652
|
+
font-size: 11px;
|
|
653
|
+
line-height: 16px;
|
|
654
|
+
font-weight: 600;
|
|
655
|
+
letter-spacing: 0.05em;
|
|
656
|
+
text-transform: uppercase;
|
|
657
|
+
color: var(--dsw-alias-label-secondary);
|
|
658
|
+
}
|
|
659
|
+
|
|
660
|
+
.omd-diffLines {
|
|
661
|
+
display: flex;
|
|
662
|
+
flex-direction: column;
|
|
663
|
+
gap: 2px;
|
|
664
|
+
}
|
|
665
|
+
|
|
666
|
+
.omd-diffLine {
|
|
667
|
+
font-size: 12px;
|
|
668
|
+
line-height: 18px;
|
|
669
|
+
color: var(--dsw-alias-label-secondary);
|
|
670
|
+
overflow-wrap: anywhere;
|
|
671
|
+
}
|
|
672
|
+
|
|
673
|
+
.omd-diffLineAdd { color: var(--dsw-alias-state-success-primary); }
|
|
674
|
+
|
|
675
|
+
.omd-diffLineDel { color: var(--dsw-alias-state-error-primary); }
|
|
676
|
+
|
|
677
|
+
.omd-diffNone {
|
|
678
|
+
font-size: 12px;
|
|
679
|
+
line-height: 18px;
|
|
680
|
+
color: var(--dsw-alias-label-tertiary);
|
|
681
|
+
}
|
|
682
|
+
|
|
683
|
+
/* 预览里的瘦身统计一行(按本次提交配置算):与页头 pd-slimLine 同语义,
|
|
684
|
+
尾随「按当前未保存配置」小注再弱一档。 */
|
|
685
|
+
.omd-slimLine {
|
|
686
|
+
margin: 6px 0 0;
|
|
687
|
+
font-size: 11px;
|
|
688
|
+
line-height: 16px;
|
|
689
|
+
color: var(--dsw-alias-label-secondary);
|
|
690
|
+
font-variant-numeric: tabular-nums;
|
|
691
|
+
}
|
|
692
|
+
|
|
693
|
+
.omd-slimNote { color: var(--dsw-alias-label-tertiary); }
|
|
694
|
+
|
|
606
695
|
.omd-pre {
|
|
607
696
|
box-sizing: border-box;
|
|
608
697
|
margin: 0;
|
|
@@ -1286,6 +1375,94 @@ html[data-dsh-paoding-active]:not([data-dsh-mnemon-active]):not([data-dsh-taskbo
|
|
|
1286
1375
|
color: var(--dsw-alias-label-tertiary);
|
|
1287
1376
|
}
|
|
1288
1377
|
|
|
1378
|
+
/* 工具面瘦身统计一行:副标题之下(版本号 / 更新卡同区),按已保存配置算
|
|
1379
|
+
的一行弱化小字;数字用等宽数位避免加载 / 应用后跳动。 */
|
|
1380
|
+
.pd-slimLine {
|
|
1381
|
+
margin: 2px 0 0;
|
|
1382
|
+
font-size: 11px;
|
|
1383
|
+
line-height: 16px;
|
|
1384
|
+
color: var(--dsw-alias-label-tertiary);
|
|
1385
|
+
font-variant-numeric: tabular-nums;
|
|
1386
|
+
}
|
|
1387
|
+
|
|
1388
|
+
/* 委派效果卡:页头瘦身统计行之下的只读紧凑表(GET stats 懒加载,服务缺失 /
|
|
1389
|
+
拉取失败整卡不渲染)。行内五列网格——角色名占余宽可截断,数字列定宽右对
|
|
1390
|
+
齐,最近使用列偏右;数字等宽数位防跳动,失败 >0 标红提醒。 */
|
|
1391
|
+
.pd-delegCard {
|
|
1392
|
+
margin: 10px 0 0;
|
|
1393
|
+
padding: 10px 12px 8px;
|
|
1394
|
+
border: 1px solid var(--dsw-alias-border-l1);
|
|
1395
|
+
border-radius: 12px;
|
|
1396
|
+
}
|
|
1397
|
+
|
|
1398
|
+
.pd-delegTitle {
|
|
1399
|
+
font-size: 12px;
|
|
1400
|
+
line-height: 18px;
|
|
1401
|
+
font-weight: 600;
|
|
1402
|
+
color: var(--dsw-alias-label-primary);
|
|
1403
|
+
}
|
|
1404
|
+
|
|
1405
|
+
/* 标题尾角标:缺省项目零记录回落全项目聚合(project='all')时点明口径——
|
|
1406
|
+
弱化字号与三级文字色,紧跟标题不抢视觉。 */
|
|
1407
|
+
.pd-delegScope {
|
|
1408
|
+
margin-left: 6px;
|
|
1409
|
+
font-size: 0.85em;
|
|
1410
|
+
font-weight: 400;
|
|
1411
|
+
color: var(--dsw-alias-label-tertiary);
|
|
1412
|
+
}
|
|
1413
|
+
|
|
1414
|
+
.pd-delegTable {
|
|
1415
|
+
margin-top: 6px;
|
|
1416
|
+
font-size: 11px;
|
|
1417
|
+
line-height: 20px;
|
|
1418
|
+
color: var(--dsw-alias-label-secondary);
|
|
1419
|
+
font-variant-numeric: tabular-nums;
|
|
1420
|
+
}
|
|
1421
|
+
|
|
1422
|
+
.pd-delegRow {
|
|
1423
|
+
display: grid;
|
|
1424
|
+
grid-template-columns: minmax(0, 1fr) 44px 56px 44px 88px;
|
|
1425
|
+
gap: 0 10px;
|
|
1426
|
+
align-items: baseline;
|
|
1427
|
+
}
|
|
1428
|
+
|
|
1429
|
+
.pd-delegHeaderRow {
|
|
1430
|
+
color: var(--dsw-alias-label-tertiary);
|
|
1431
|
+
}
|
|
1432
|
+
|
|
1433
|
+
.pd-delegRole {
|
|
1434
|
+
overflow: hidden;
|
|
1435
|
+
white-space: nowrap;
|
|
1436
|
+
text-overflow: ellipsis;
|
|
1437
|
+
}
|
|
1438
|
+
|
|
1439
|
+
.pd-delegNum {
|
|
1440
|
+
text-align: right;
|
|
1441
|
+
}
|
|
1442
|
+
|
|
1443
|
+
.pd-delegFail {
|
|
1444
|
+
color: var(--dsw-alias-state-error-primary);
|
|
1445
|
+
}
|
|
1446
|
+
|
|
1447
|
+
.pd-delegWhen {
|
|
1448
|
+
text-align: right;
|
|
1449
|
+
color: var(--dsw-alias-label-tertiary);
|
|
1450
|
+
}
|
|
1451
|
+
|
|
1452
|
+
.pd-delegMore {
|
|
1453
|
+
margin-top: 2px;
|
|
1454
|
+
font-size: 11px;
|
|
1455
|
+
line-height: 16px;
|
|
1456
|
+
color: var(--dsw-alias-label-tertiary);
|
|
1457
|
+
}
|
|
1458
|
+
|
|
1459
|
+
.pd-delegEmpty {
|
|
1460
|
+
margin-top: 4px;
|
|
1461
|
+
font-size: 11px;
|
|
1462
|
+
line-height: 16px;
|
|
1463
|
+
color: var(--dsw-alias-label-tertiary);
|
|
1464
|
+
}
|
|
1465
|
+
|
|
1289
1466
|
.pd-closeBtn {
|
|
1290
1467
|
flex: none;
|
|
1291
1468
|
display: inline-flex;
|
|
@@ -1457,6 +1634,82 @@ html[data-dsh-paoding-active]:not([data-dsh-mnemon-active]):not([data-dsh-taskbo
|
|
|
1457
1634
|
cursor: not-allowed;
|
|
1458
1635
|
}
|
|
1459
1636
|
|
|
1637
|
+
/* ── 恢复备份弹层:备份清单行(bak 徽标 + 本地时间 + 大小,整行可点)──── */
|
|
1638
|
+
/* 列表高度封顶出滚:备份链随每次 apply / restore 前滚一格,再长不顶破视口。 */
|
|
1639
|
+
.pd-backupList {
|
|
1640
|
+
display: flex;
|
|
1641
|
+
flex-direction: column;
|
|
1642
|
+
gap: 6px;
|
|
1643
|
+
max-height: 320px;
|
|
1644
|
+
overflow-y: auto;
|
|
1645
|
+
padding: 2px;
|
|
1646
|
+
}
|
|
1647
|
+
|
|
1648
|
+
.pd-backupItem {
|
|
1649
|
+
display: flex;
|
|
1650
|
+
align-items: center;
|
|
1651
|
+
gap: 10px;
|
|
1652
|
+
width: 100%;
|
|
1653
|
+
padding: 8px 10px;
|
|
1654
|
+
box-sizing: border-box;
|
|
1655
|
+
border: 1px solid var(--dsw-alias-border-l2);
|
|
1656
|
+
border-radius: 10px;
|
|
1657
|
+
background: var(--dsw-alias-bg-layer-2);
|
|
1658
|
+
color: var(--dsw-alias-label-primary);
|
|
1659
|
+
font: inherit;
|
|
1660
|
+
font-size: 12px;
|
|
1661
|
+
line-height: 18px;
|
|
1662
|
+
text-align: left;
|
|
1663
|
+
cursor: pointer;
|
|
1664
|
+
transition: border-color 0.12s ease, background 0.12s ease;
|
|
1665
|
+
}
|
|
1666
|
+
|
|
1667
|
+
.pd-backupItem:hover:not(:disabled) {
|
|
1668
|
+
border-color: var(--dsw-alias-state-business-primary);
|
|
1669
|
+
background: color-mix(in srgb, var(--dsw-alias-state-business-primary) 6%, transparent);
|
|
1670
|
+
}
|
|
1671
|
+
|
|
1672
|
+
.pd-backupItem:focus-visible {
|
|
1673
|
+
outline: 2px solid var(--dsw-alias-state-business-primary);
|
|
1674
|
+
outline-offset: 1px;
|
|
1675
|
+
}
|
|
1676
|
+
|
|
1677
|
+
.pd-backupItem:disabled { opacity: 0.55; cursor: default; }
|
|
1678
|
+
|
|
1679
|
+
.pd-backupTag {
|
|
1680
|
+
flex: none;
|
|
1681
|
+
padding: 1px 8px;
|
|
1682
|
+
border-radius: 999px;
|
|
1683
|
+
background: color-mix(in srgb, var(--dsw-alias-state-business-primary) 10%, transparent);
|
|
1684
|
+
color: var(--dsw-alias-state-business-primary);
|
|
1685
|
+
font-size: 11px;
|
|
1686
|
+
line-height: 16px;
|
|
1687
|
+
font-weight: 500;
|
|
1688
|
+
font-variant-numeric: tabular-nums;
|
|
1689
|
+
}
|
|
1690
|
+
|
|
1691
|
+
.pd-backupTime {
|
|
1692
|
+
flex: 1;
|
|
1693
|
+
min-width: 0;
|
|
1694
|
+
overflow-wrap: anywhere;
|
|
1695
|
+
text-align: left;
|
|
1696
|
+
}
|
|
1697
|
+
|
|
1698
|
+
.pd-backupSize {
|
|
1699
|
+
flex: none;
|
|
1700
|
+
color: var(--dsw-alias-label-tertiary);
|
|
1701
|
+
font-variant-numeric: tabular-nums;
|
|
1702
|
+
}
|
|
1703
|
+
|
|
1704
|
+
/* 加载中 / 暂无备份:一行居中弱化文案(omd-empty 的弹窗版)。 */
|
|
1705
|
+
.pd-backupEmpty {
|
|
1706
|
+
padding: 12px 0 8px;
|
|
1707
|
+
font-size: 12px;
|
|
1708
|
+
line-height: 18px;
|
|
1709
|
+
color: var(--dsw-alias-label-tertiary);
|
|
1710
|
+
text-align: center;
|
|
1711
|
+
}
|
|
1712
|
+
|
|
1460
1713
|
/* ── Toast 反馈(fixed 悬浮于操作坞上方)──────────────────────────────── */
|
|
1461
1714
|
.pd-toastHost {
|
|
1462
1715
|
position: fixed;
|