weifuwu 0.69.0 → 0.70.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/dist/client/index.js +4 -4
- package/dist/components/Card/Card.d.ts +2 -0
- package/dist/components/CodeBlock/CodeBlock.d.ts +2 -2
- package/dist/components/CodeBlock/highlight.d.ts +15 -0
- package/dist/components/Drawer/Drawer.d.ts +2 -0
- package/dist/components/Icon/Icon.d.ts +1 -1
- package/dist/components/index.js +13 -13
- package/dist/components/style.css +72 -12
- package/dist/layout/weifuwu-layout.css +61 -11
- package/package.json +1 -1
|
@@ -640,6 +640,19 @@ body.wf-dragging {
|
|
|
640
640
|
}
|
|
641
641
|
}
|
|
642
642
|
|
|
643
|
+
@layer layout {
|
|
644
|
+
/* between — 两端对齐(行内垂直居中) */
|
|
645
|
+
.wf-between {
|
|
646
|
+
display: flex;
|
|
647
|
+
justify-content: space-between;
|
|
648
|
+
align-items: var(--wf-align, center);
|
|
649
|
+
gap: var(--wf-gap, var(--wf-gap-md));
|
|
650
|
+
}
|
|
651
|
+
@media (min-width: 640px) { .wf-between\@sm { display: flex; justify-content: space-between; align-items: var(--wf-align, center); gap: var(--wf-gap, var(--wf-gap-md)); } }
|
|
652
|
+
@media (min-width: 768px) { .wf-between\@md { display: flex; justify-content: space-between; align-items: var(--wf-align, center); gap: var(--wf-gap, var(--wf-gap-md)); } }
|
|
653
|
+
@media (min-width: 1024px) { .wf-between\@lg { display: flex; justify-content: space-between; align-items: var(--wf-align, center); gap: var(--wf-gap, var(--wf-gap-md)); } }
|
|
654
|
+
}
|
|
655
|
+
|
|
643
656
|
@layer layout {
|
|
644
657
|
/* right — 靠右对齐 */
|
|
645
658
|
.wf-right {
|
|
@@ -711,6 +724,12 @@ body.wf-dragging {
|
|
|
711
724
|
.wf-fixed {
|
|
712
725
|
flex: none;
|
|
713
726
|
}
|
|
727
|
+
|
|
728
|
+
/* pin — 固定定位(角标/浮层锚点——position: fixed,坐标由 inline 参数控制) */
|
|
729
|
+
.wf-pin {
|
|
730
|
+
position: fixed;
|
|
731
|
+
z-index: var(--wf-z, var(--wf-cover-z));
|
|
732
|
+
}
|
|
714
733
|
}
|
|
715
734
|
|
|
716
735
|
@layer layout {
|
|
@@ -920,7 +939,7 @@ body.wf-dragging {
|
|
|
920
939
|
}
|
|
921
940
|
}
|
|
922
941
|
|
|
923
|
-
@layer
|
|
942
|
+
@layer utilities {
|
|
924
943
|
/* block — 块级显示 */
|
|
925
944
|
.wf-block {
|
|
926
945
|
display: block;
|
|
@@ -946,7 +965,10 @@ body.wf-dragging {
|
|
|
946
965
|
|
|
947
966
|
@layer layout {
|
|
948
967
|
/* container — 内容宽度约束居中 */
|
|
968
|
+
/* width: 100% 必须:margin: 0 auto 在 flex 父中阻止 stretch(宽度=内容)
|
|
969
|
+
——landing 特性区 404px 而非撑满 1100 容器的根因 */
|
|
949
970
|
.wf-container {
|
|
971
|
+
width: 100%;
|
|
950
972
|
max-width: var(--wf-max, 1200px);
|
|
951
973
|
margin: 0 auto;
|
|
952
974
|
padding: 0 var(--wf-gap, var(--wf-gap-lg));
|
|
@@ -969,12 +991,12 @@ body.wf-dragging {
|
|
|
969
991
|
}
|
|
970
992
|
|
|
971
993
|
@layer layout {
|
|
972
|
-
/* nowrap —
|
|
994
|
+
/* nowrap — 不换行(只管 flex-wrap——不定义 align-items,避免与
|
|
995
|
+
wf-stretch 等对齐工具叠加冲突:双份 CSS 下 nowrap 后置曾覆盖 stretch) */
|
|
973
996
|
.wf-nowrap {
|
|
974
997
|
display: flex;
|
|
975
998
|
flex-wrap: nowrap;
|
|
976
999
|
gap: var(--wf-gap, var(--wf-gap-md));
|
|
977
|
-
align-items: var(--wf-align, center);
|
|
978
1000
|
}
|
|
979
1001
|
}
|
|
980
1002
|
|
|
@@ -1046,19 +1068,30 @@ body.wf-dragging {
|
|
|
1046
1068
|
.wf-mx-auto { margin-left: auto; margin-right: auto; }
|
|
1047
1069
|
.wf-my-auto { margin-top: auto; margin-bottom: auto; }
|
|
1048
1070
|
|
|
1049
|
-
/* ── gap
|
|
1050
|
-
|
|
1051
|
-
.wf-gap-
|
|
1052
|
-
.wf-gap-
|
|
1053
|
-
.wf-gap-
|
|
1054
|
-
.wf-gap-
|
|
1055
|
-
.wf-gap-
|
|
1056
|
-
.wf-gap-
|
|
1071
|
+
/* ── gap:直接设置 gap 属性(不设 --wf-gap 变量——变量会继承污染子孙:
|
|
1072
|
+
壳 root wf-gap-none 曾让 KPI grid 的 gap: var(--wf-gap) = 0 卡无间距) ── */
|
|
1073
|
+
.wf-gap-none { gap: 0; }
|
|
1074
|
+
.wf-gap-xs { gap: var(--wf-gap-xs); }
|
|
1075
|
+
.wf-gap-sm { gap: var(--wf-gap-sm); }
|
|
1076
|
+
.wf-gap-md { gap: var(--wf-gap-md); }
|
|
1077
|
+
.wf-gap-lg { gap: var(--wf-gap-lg); }
|
|
1078
|
+
.wf-gap-xl { gap: var(--wf-gap-xl); }
|
|
1079
|
+
.wf-gap-2xl { gap: var(--wf-gap-2xl); }
|
|
1057
1080
|
|
|
1058
1081
|
/* ── 尺寸 ── */
|
|
1059
1082
|
.wf-w-full { width: 100%; }
|
|
1060
1083
|
.wf-h-full { height: 100%; }
|
|
1061
1084
|
.wf-w-auto { width: auto; }
|
|
1085
|
+
|
|
1086
|
+
/* ── 固定宽度阶梯(对齐 token 阶梯——卡片/面板/容器宽不再内联) ── */
|
|
1087
|
+
.wf-w-xs { width: var(--wf-w-xs, 320px); }
|
|
1088
|
+
.wf-w-sm { width: var(--wf-w-sm, 480px); }
|
|
1089
|
+
.wf-w-md { width: var(--wf-w-md, 640px); }
|
|
1090
|
+
.wf-w-lg { width: var(--wf-w-lg, 768px); }
|
|
1091
|
+
.wf-w-xl { width: var(--wf-w-xl, 1024px); }
|
|
1092
|
+
.wf-w-max { max-width: 100%; }
|
|
1093
|
+
.wf-w-md-auto { width: 100%; }
|
|
1094
|
+
@media (min-width: 768px) { .wf-w-md-auto { width: var(--wf-w-md, 640px); } }
|
|
1062
1095
|
}
|
|
1063
1096
|
|
|
1064
1097
|
@layer layout {
|
|
@@ -1177,6 +1210,23 @@ body.wf-dragging {
|
|
|
1177
1210
|
display: inline-flex;
|
|
1178
1211
|
}
|
|
1179
1212
|
|
|
1213
|
+
/* ── 折叠态:图标-only 导航(配合 --wf-sidebar-width 收窄侧栏) ── */
|
|
1214
|
+
.wf-nav--collapsed .wf-nav-item {
|
|
1215
|
+
justify-content: center;
|
|
1216
|
+
gap: 0;
|
|
1217
|
+
padding: var(--wf-space-sm);
|
|
1218
|
+
}
|
|
1219
|
+
.wf-nav--collapsed .wf-nav-label {
|
|
1220
|
+
display: none;
|
|
1221
|
+
}
|
|
1222
|
+
.wf-nav--collapsed .wf-nav-group {
|
|
1223
|
+
text-align: center;
|
|
1224
|
+
padding-left: 0;
|
|
1225
|
+
padding-right: 0;
|
|
1226
|
+
overflow: hidden;
|
|
1227
|
+
white-space: nowrap;
|
|
1228
|
+
}
|
|
1229
|
+
|
|
1180
1230
|
/* ── 主内容区 ── */
|
|
1181
1231
|
.wf-main {
|
|
1182
1232
|
padding: var(--wf-space-lg);
|
|
@@ -2817,6 +2867,15 @@ body.wf-dragging {
|
|
|
2817
2867
|
white-space: pre;
|
|
2818
2868
|
}
|
|
2819
2869
|
|
|
2870
|
+
/* ── 语法高亮(自研 tokenizer——语义色 token 亮暗双适配,P2 纪律 -text 变体) ── */
|
|
2871
|
+
.wf-hl-comment { color: var(--wf-color-success-text); font-style: italic; }
|
|
2872
|
+
.wf-hl-string { color: var(--wf-color-warning-text); }
|
|
2873
|
+
.wf-hl-keyword { color: var(--wf-color-primary-text); font-weight: 500; }
|
|
2874
|
+
.wf-hl-number { color: var(--wf-color-info-text); }
|
|
2875
|
+
.wf-hl-function { color: var(--wf-color-primary-text); }
|
|
2876
|
+
.wf-hl-jsx-tag { color: var(--wf-color-error-text); }
|
|
2877
|
+
.wf-hl-operator { color: var(--wf-color-text-tertiary); }
|
|
2878
|
+
|
|
2820
2879
|
/* weifuwu/components — Collapse */
|
|
2821
2880
|
|
|
2822
2881
|
.wf-collapse {
|
|
@@ -8512,7 +8571,8 @@ body.wf-dragging {
|
|
|
8512
8571
|
.wf-transfer {
|
|
8513
8572
|
display: flex;
|
|
8514
8573
|
align-items: stretch;
|
|
8515
|
-
gap
|
|
8574
|
+
/* wf-gap-* 改直接 gap 后 --wf-gap 无继承来源——加 fallback */
|
|
8575
|
+
gap: var(--wf-gap, var(--wf-gap-md));
|
|
8516
8576
|
font-family: var(--wf-font-sans);
|
|
8517
8577
|
}
|
|
8518
8578
|
|
|
@@ -640,6 +640,19 @@ body.wf-dragging {
|
|
|
640
640
|
}
|
|
641
641
|
}
|
|
642
642
|
|
|
643
|
+
@layer layout {
|
|
644
|
+
/* between — 两端对齐(行内垂直居中) */
|
|
645
|
+
.wf-between {
|
|
646
|
+
display: flex;
|
|
647
|
+
justify-content: space-between;
|
|
648
|
+
align-items: var(--wf-align, center);
|
|
649
|
+
gap: var(--wf-gap, var(--wf-gap-md));
|
|
650
|
+
}
|
|
651
|
+
@media (min-width: 640px) { .wf-between\@sm { display: flex; justify-content: space-between; align-items: var(--wf-align, center); gap: var(--wf-gap, var(--wf-gap-md)); } }
|
|
652
|
+
@media (min-width: 768px) { .wf-between\@md { display: flex; justify-content: space-between; align-items: var(--wf-align, center); gap: var(--wf-gap, var(--wf-gap-md)); } }
|
|
653
|
+
@media (min-width: 1024px) { .wf-between\@lg { display: flex; justify-content: space-between; align-items: var(--wf-align, center); gap: var(--wf-gap, var(--wf-gap-md)); } }
|
|
654
|
+
}
|
|
655
|
+
|
|
643
656
|
@layer layout {
|
|
644
657
|
/* right — 靠右对齐 */
|
|
645
658
|
.wf-right {
|
|
@@ -711,6 +724,12 @@ body.wf-dragging {
|
|
|
711
724
|
.wf-fixed {
|
|
712
725
|
flex: none;
|
|
713
726
|
}
|
|
727
|
+
|
|
728
|
+
/* pin — 固定定位(角标/浮层锚点——position: fixed,坐标由 inline 参数控制) */
|
|
729
|
+
.wf-pin {
|
|
730
|
+
position: fixed;
|
|
731
|
+
z-index: var(--wf-z, var(--wf-cover-z));
|
|
732
|
+
}
|
|
714
733
|
}
|
|
715
734
|
|
|
716
735
|
@layer layout {
|
|
@@ -920,7 +939,7 @@ body.wf-dragging {
|
|
|
920
939
|
}
|
|
921
940
|
}
|
|
922
941
|
|
|
923
|
-
@layer
|
|
942
|
+
@layer utilities {
|
|
924
943
|
/* block — 块级显示 */
|
|
925
944
|
.wf-block {
|
|
926
945
|
display: block;
|
|
@@ -946,7 +965,10 @@ body.wf-dragging {
|
|
|
946
965
|
|
|
947
966
|
@layer layout {
|
|
948
967
|
/* container — 内容宽度约束居中 */
|
|
968
|
+
/* width: 100% 必须:margin: 0 auto 在 flex 父中阻止 stretch(宽度=内容)
|
|
969
|
+
——landing 特性区 404px 而非撑满 1100 容器的根因 */
|
|
949
970
|
.wf-container {
|
|
971
|
+
width: 100%;
|
|
950
972
|
max-width: var(--wf-max, 1200px);
|
|
951
973
|
margin: 0 auto;
|
|
952
974
|
padding: 0 var(--wf-gap, var(--wf-gap-lg));
|
|
@@ -969,12 +991,12 @@ body.wf-dragging {
|
|
|
969
991
|
}
|
|
970
992
|
|
|
971
993
|
@layer layout {
|
|
972
|
-
/* nowrap —
|
|
994
|
+
/* nowrap — 不换行(只管 flex-wrap——不定义 align-items,避免与
|
|
995
|
+
wf-stretch 等对齐工具叠加冲突:双份 CSS 下 nowrap 后置曾覆盖 stretch) */
|
|
973
996
|
.wf-nowrap {
|
|
974
997
|
display: flex;
|
|
975
998
|
flex-wrap: nowrap;
|
|
976
999
|
gap: var(--wf-gap, var(--wf-gap-md));
|
|
977
|
-
align-items: var(--wf-align, center);
|
|
978
1000
|
}
|
|
979
1001
|
}
|
|
980
1002
|
|
|
@@ -1046,19 +1068,30 @@ body.wf-dragging {
|
|
|
1046
1068
|
.wf-mx-auto { margin-left: auto; margin-right: auto; }
|
|
1047
1069
|
.wf-my-auto { margin-top: auto; margin-bottom: auto; }
|
|
1048
1070
|
|
|
1049
|
-
/* ── gap
|
|
1050
|
-
|
|
1051
|
-
.wf-gap-
|
|
1052
|
-
.wf-gap-
|
|
1053
|
-
.wf-gap-
|
|
1054
|
-
.wf-gap-
|
|
1055
|
-
.wf-gap-
|
|
1056
|
-
.wf-gap-
|
|
1071
|
+
/* ── gap:直接设置 gap 属性(不设 --wf-gap 变量——变量会继承污染子孙:
|
|
1072
|
+
壳 root wf-gap-none 曾让 KPI grid 的 gap: var(--wf-gap) = 0 卡无间距) ── */
|
|
1073
|
+
.wf-gap-none { gap: 0; }
|
|
1074
|
+
.wf-gap-xs { gap: var(--wf-gap-xs); }
|
|
1075
|
+
.wf-gap-sm { gap: var(--wf-gap-sm); }
|
|
1076
|
+
.wf-gap-md { gap: var(--wf-gap-md); }
|
|
1077
|
+
.wf-gap-lg { gap: var(--wf-gap-lg); }
|
|
1078
|
+
.wf-gap-xl { gap: var(--wf-gap-xl); }
|
|
1079
|
+
.wf-gap-2xl { gap: var(--wf-gap-2xl); }
|
|
1057
1080
|
|
|
1058
1081
|
/* ── 尺寸 ── */
|
|
1059
1082
|
.wf-w-full { width: 100%; }
|
|
1060
1083
|
.wf-h-full { height: 100%; }
|
|
1061
1084
|
.wf-w-auto { width: auto; }
|
|
1085
|
+
|
|
1086
|
+
/* ── 固定宽度阶梯(对齐 token 阶梯——卡片/面板/容器宽不再内联) ── */
|
|
1087
|
+
.wf-w-xs { width: var(--wf-w-xs, 320px); }
|
|
1088
|
+
.wf-w-sm { width: var(--wf-w-sm, 480px); }
|
|
1089
|
+
.wf-w-md { width: var(--wf-w-md, 640px); }
|
|
1090
|
+
.wf-w-lg { width: var(--wf-w-lg, 768px); }
|
|
1091
|
+
.wf-w-xl { width: var(--wf-w-xl, 1024px); }
|
|
1092
|
+
.wf-w-max { max-width: 100%; }
|
|
1093
|
+
.wf-w-md-auto { width: 100%; }
|
|
1094
|
+
@media (min-width: 768px) { .wf-w-md-auto { width: var(--wf-w-md, 640px); } }
|
|
1062
1095
|
}
|
|
1063
1096
|
|
|
1064
1097
|
@layer layout {
|
|
@@ -1177,6 +1210,23 @@ body.wf-dragging {
|
|
|
1177
1210
|
display: inline-flex;
|
|
1178
1211
|
}
|
|
1179
1212
|
|
|
1213
|
+
/* ── 折叠态:图标-only 导航(配合 --wf-sidebar-width 收窄侧栏) ── */
|
|
1214
|
+
.wf-nav--collapsed .wf-nav-item {
|
|
1215
|
+
justify-content: center;
|
|
1216
|
+
gap: 0;
|
|
1217
|
+
padding: var(--wf-space-sm);
|
|
1218
|
+
}
|
|
1219
|
+
.wf-nav--collapsed .wf-nav-label {
|
|
1220
|
+
display: none;
|
|
1221
|
+
}
|
|
1222
|
+
.wf-nav--collapsed .wf-nav-group {
|
|
1223
|
+
text-align: center;
|
|
1224
|
+
padding-left: 0;
|
|
1225
|
+
padding-right: 0;
|
|
1226
|
+
overflow: hidden;
|
|
1227
|
+
white-space: nowrap;
|
|
1228
|
+
}
|
|
1229
|
+
|
|
1180
1230
|
/* ── 主内容区 ── */
|
|
1181
1231
|
.wf-main {
|
|
1182
1232
|
padding: var(--wf-space-lg);
|