weifuwu 0.61.2 → 0.62.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/README.md +100 -10
- package/dist/client/diff.d.ts +13 -1
- package/dist/client/index.js +3 -3
- package/dist/client/popup.d.ts +22 -0
- package/dist/client/types.d.ts +4 -0
- package/dist/components/AvatarGroup/AvatarGroup.d.ts +21 -0
- package/dist/components/CodeBlock/CodeBlock.d.ts +14 -0
- package/dist/components/Descriptions/Descriptions.d.ts +21 -0
- package/dist/components/Highlight/Highlight.d.ts +13 -0
- package/dist/components/Icon/Icon.d.ts +1 -1
- package/dist/components/InputNumber/InputNumber.d.ts +25 -0
- package/dist/components/List/List.d.ts +18 -0
- package/dist/components/Markdown/Markdown.d.ts +14 -0
- package/dist/components/Markdown/parser.d.ts +32 -0
- package/dist/components/Menu/Menu.d.ts +25 -0
- package/dist/components/MessageBubble/MessageBubble.d.ts +20 -0
- package/dist/components/PasswordInput/PasswordInput.d.ts +21 -0
- package/dist/components/Result/Result.d.ts +17 -0
- package/dist/components/TagsInput/TagsInput.d.ts +21 -0
- package/dist/components/Timeline/Timeline.d.ts +25 -0
- package/dist/components/index.d.ts +27 -0
- package/dist/components/index.js +7 -1
- package/dist/components/style.css +677 -1
- package/dist/db/postgres/connection.d.ts +24 -3
- package/dist/db/postgres/pool.d.ts +30 -8
- package/dist/db/redis/client.d.ts +43 -0
- package/dist/db/redis/connection.d.ts +12 -0
- package/dist/db/redis/pipeline.d.ts +26 -0
- package/dist/db/redis/pool.d.ts +27 -2
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1055 -94
- package/dist/layout/weifuwu-layout.css +11 -1
- package/dist/postgres/types.d.ts +2 -1
- package/dist/redis/types.d.ts +6 -0
- package/dist/scheduler/cron.d.ts +26 -0
- package/dist/scheduler/index.d.ts +69 -0
- package/package.json +2 -4
|
@@ -1014,7 +1014,11 @@ code {
|
|
|
1014
1014
|
.wf-app-shell {
|
|
1015
1015
|
display: grid;
|
|
1016
1016
|
grid-template-columns: var(--wf-sidebar-width, 240px) minmax(0, 1fr);
|
|
1017
|
-
min-height:
|
|
1017
|
+
/* 固定视口高度(非 min-height):内部页面(聊天等)依赖 height: 100% 链实现
|
|
1018
|
+
容器内滚动——min-height 会让壳随内容长高,聊天消息区永远无法内部滚动
|
|
1019
|
+
(scrollTop 赋值无效果,页面滚动条不跟随消息到底) */
|
|
1020
|
+
height: 100vh;
|
|
1021
|
+
overflow: hidden;
|
|
1018
1022
|
}
|
|
1019
1023
|
|
|
1020
1024
|
/* ── 侧边栏 ── */
|
|
@@ -1115,6 +1119,9 @@ code {
|
|
|
1115
1119
|
.wf-main {
|
|
1116
1120
|
padding: var(--wf-space-lg);
|
|
1117
1121
|
min-width: 0;
|
|
1122
|
+
min-height: 0;
|
|
1123
|
+
/* 内容高于视口时在主区内滚动(壳固定视口高度后的唯一滚动出口) */
|
|
1124
|
+
overflow-y: auto;
|
|
1118
1125
|
background: var(--wf-color-bg);
|
|
1119
1126
|
}
|
|
1120
1127
|
|
|
@@ -1129,6 +1136,8 @@ code {
|
|
|
1129
1136
|
@media (max-width: 767.98px) {
|
|
1130
1137
|
.wf-app-shell {
|
|
1131
1138
|
grid-template-columns: 1fr;
|
|
1139
|
+
height: auto; /* 恢复文档流滚动(侧边栏堆叠在顶部) */
|
|
1140
|
+
overflow: visible;
|
|
1132
1141
|
}
|
|
1133
1142
|
.wf-sidebar {
|
|
1134
1143
|
position: static;
|
|
@@ -1138,6 +1147,7 @@ code {
|
|
|
1138
1147
|
}
|
|
1139
1148
|
.wf-main {
|
|
1140
1149
|
padding: var(--wf-space-md);
|
|
1150
|
+
overflow: visible;
|
|
1141
1151
|
}
|
|
1142
1152
|
}
|
|
1143
1153
|
}
|
|
@@ -2991,6 +3001,8 @@ code {
|
|
|
2991
3001
|
display: flex;
|
|
2992
3002
|
align-items: center;
|
|
2993
3003
|
gap: var(--wf-gap-sm);
|
|
3004
|
+
width: 100%;
|
|
3005
|
+
min-width: 0; /* flex 子项可收缩(防 bar 塌缩为 0) */
|
|
2994
3006
|
}
|
|
2995
3007
|
|
|
2996
3008
|
.wf-progress-label {
|
|
@@ -4704,4 +4716,668 @@ code {
|
|
|
4704
4716
|
border-color: var(--wf-color-primary);
|
|
4705
4717
|
}
|
|
4706
4718
|
|
|
4719
|
+
/* weifuwu/components — Markdown 排版 */
|
|
4720
|
+
|
|
4721
|
+
.wf-md {
|
|
4722
|
+
font-family: var(--wf-font-sans);
|
|
4723
|
+
font-size: var(--wf-font-size-sm);
|
|
4724
|
+
line-height: var(--wf-line-height);
|
|
4725
|
+
color: var(--wf-color-text);
|
|
4726
|
+
word-break: break-word;
|
|
4727
|
+
}
|
|
4728
|
+
|
|
4729
|
+
.wf-md > :first-child { margin-top: 0; }
|
|
4730
|
+
.wf-md > :last-child { margin-bottom: 0; }
|
|
4731
|
+
|
|
4732
|
+
.wf-md-h { margin: var(--wf-space-md) 0 var(--wf-space-sm); font-weight: var(--wf-font-weight-bold); line-height: 1.25; }
|
|
4733
|
+
.wf-md-h1 { font-size: var(--wf-font-size-xl); }
|
|
4734
|
+
.wf-md-h2 { font-size: var(--wf-font-size-lg); }
|
|
4735
|
+
.wf-md-h3 { font-size: var(--wf-font-size-base); }
|
|
4736
|
+
.wf-md-h4 { font-size: var(--wf-font-size-sm); color: var(--wf-color-text-secondary); }
|
|
4737
|
+
|
|
4738
|
+
.wf-md-p { margin: 0 0 var(--wf-space-sm); }
|
|
4739
|
+
|
|
4740
|
+
.wf-md-ul, .wf-md-ol { margin: 0 0 var(--wf-space-sm); padding-left: var(--wf-space-lg); }
|
|
4741
|
+
.wf-md-li { margin: 2px 0; }
|
|
4742
|
+
|
|
4743
|
+
.wf-md-code {
|
|
4744
|
+
font-family: var(--wf-font-mono);
|
|
4745
|
+
font-size: 0.875em; /* 行内代码相对字号(继承父级,随上下文缩放) */
|
|
4746
|
+
background: var(--wf-color-bg-secondary);
|
|
4747
|
+
border-radius: var(--wf-radius-xs);
|
|
4748
|
+
padding: 1px var(--wf-space-xs);
|
|
4749
|
+
}
|
|
4750
|
+
|
|
4751
|
+
.wf-md-strong { font-weight: var(--wf-font-weight-bold); }
|
|
4752
|
+
.wf-md-em { font-style: italic; }
|
|
4753
|
+
|
|
4754
|
+
.wf-md-link {
|
|
4755
|
+
color: var(--wf-color-primary-text);
|
|
4756
|
+
text-decoration: underline;
|
|
4757
|
+
text-underline-offset: 2px;
|
|
4758
|
+
}
|
|
4759
|
+
.wf-md-link:hover { opacity: 0.85; }
|
|
4760
|
+
|
|
4761
|
+
.wf-md-quote {
|
|
4762
|
+
margin: 0 0 var(--wf-space-sm);
|
|
4763
|
+
padding: var(--wf-space-xs) var(--wf-space-md);
|
|
4764
|
+
border-left: 3px solid var(--wf-color-border);
|
|
4765
|
+
color: var(--wf-color-text-secondary);
|
|
4766
|
+
}
|
|
4767
|
+
|
|
4768
|
+
.wf-md-hr {
|
|
4769
|
+
border: none;
|
|
4770
|
+
border-top: 1px solid var(--wf-color-border);
|
|
4771
|
+
margin: var(--wf-space-md) 0;
|
|
4772
|
+
}
|
|
4773
|
+
|
|
4774
|
+
/* weifuwu/components — CodeBlock */
|
|
4775
|
+
|
|
4776
|
+
.wf-codeblock {
|
|
4777
|
+
margin: 0 0 var(--wf-space-sm);
|
|
4778
|
+
border: 1px solid var(--wf-color-border);
|
|
4779
|
+
border-radius: var(--wf-radius-md);
|
|
4780
|
+
overflow: hidden;
|
|
4781
|
+
background: var(--wf-color-bg-secondary);
|
|
4782
|
+
font-family: var(--wf-font-mono);
|
|
4783
|
+
}
|
|
4784
|
+
|
|
4785
|
+
.wf-codeblock-header {
|
|
4786
|
+
display: flex;
|
|
4787
|
+
align-items: center;
|
|
4788
|
+
justify-content: space-between;
|
|
4789
|
+
padding: var(--wf-space-xs) var(--wf-space-sm);
|
|
4790
|
+
background: var(--wf-color-bg-tertiary);
|
|
4791
|
+
border-bottom: 1px solid var(--wf-color-border);
|
|
4792
|
+
}
|
|
4793
|
+
|
|
4794
|
+
.wf-codeblock-title {
|
|
4795
|
+
font-family: var(--wf-font-sans);
|
|
4796
|
+
font-size: var(--wf-font-size-xs);
|
|
4797
|
+
color: var(--wf-color-text-secondary);
|
|
4798
|
+
display: flex;
|
|
4799
|
+
align-items: center;
|
|
4800
|
+
gap: var(--wf-gap-xs);
|
|
4801
|
+
}
|
|
4802
|
+
|
|
4803
|
+
.wf-codeblock-lang {
|
|
4804
|
+
display: inline-flex;
|
|
4805
|
+
align-items: center;
|
|
4806
|
+
gap: 6px;
|
|
4807
|
+
}
|
|
4808
|
+
|
|
4809
|
+
.wf-codeblock-dot {
|
|
4810
|
+
width: 8px;
|
|
4811
|
+
height: 8px;
|
|
4812
|
+
border-radius: 50%;
|
|
4813
|
+
background: var(--wf-color-primary);
|
|
4814
|
+
}
|
|
4815
|
+
|
|
4816
|
+
.wf-codeblock-copy {
|
|
4817
|
+
display: inline-flex;
|
|
4818
|
+
align-items: center;
|
|
4819
|
+
justify-content: center;
|
|
4820
|
+
background: none;
|
|
4821
|
+
border: none;
|
|
4822
|
+
cursor: pointer;
|
|
4823
|
+
color: var(--wf-color-text-secondary);
|
|
4824
|
+
padding: 4px;
|
|
4825
|
+
border-radius: var(--wf-radius-xs);
|
|
4826
|
+
}
|
|
4827
|
+
.wf-codeblock-copy:hover {
|
|
4828
|
+
color: var(--wf-color-text);
|
|
4829
|
+
background: var(--wf-color-bg);
|
|
4830
|
+
}
|
|
4831
|
+
.wf-codeblock-copy:focus-visible {
|
|
4832
|
+
outline: 2px solid var(--wf-color-primary);
|
|
4833
|
+
outline-offset: 1px;
|
|
4834
|
+
}
|
|
4835
|
+
|
|
4836
|
+
.wf-codeblock-pre {
|
|
4837
|
+
margin: 0;
|
|
4838
|
+
padding: var(--wf-space-sm) var(--wf-space-md);
|
|
4839
|
+
overflow-x: auto;
|
|
4840
|
+
font-size: var(--wf-font-size-xs);
|
|
4841
|
+
line-height: 1.6;
|
|
4842
|
+
}
|
|
4843
|
+
|
|
4844
|
+
.wf-codeblock-code {
|
|
4845
|
+
font-family: inherit;
|
|
4846
|
+
white-space: pre;
|
|
4847
|
+
}
|
|
4848
|
+
|
|
4849
|
+
/* weifuwu/components — Timeline */
|
|
4850
|
+
|
|
4851
|
+
.wf-timeline {
|
|
4852
|
+
margin: 0;
|
|
4853
|
+
padding: 0;
|
|
4854
|
+
list-style: none;
|
|
4855
|
+
}
|
|
4856
|
+
|
|
4857
|
+
.wf-timeline-item {
|
|
4858
|
+
position: relative;
|
|
4859
|
+
display: flex;
|
|
4860
|
+
gap: var(--wf-gap-md);
|
|
4861
|
+
padding-bottom: var(--wf-space-md);
|
|
4862
|
+
}
|
|
4863
|
+
|
|
4864
|
+
/* 连接线(除最后一项) */
|
|
4865
|
+
.wf-timeline-item:not(:last-child)::before {
|
|
4866
|
+
content: '';
|
|
4867
|
+
position: absolute;
|
|
4868
|
+
top: 20px;
|
|
4869
|
+
bottom: 0;
|
|
4870
|
+
left: 8px;
|
|
4871
|
+
width: 2px;
|
|
4872
|
+
background: var(--wf-color-border);
|
|
4873
|
+
}
|
|
4874
|
+
|
|
4875
|
+
.wf-timeline-node {
|
|
4876
|
+
position: relative;
|
|
4877
|
+
z-index: 1;
|
|
4878
|
+
width: 18px;
|
|
4879
|
+
height: 18px;
|
|
4880
|
+
border-radius: 50%;
|
|
4881
|
+
flex-shrink: 0;
|
|
4882
|
+
display: flex;
|
|
4883
|
+
align-items: center;
|
|
4884
|
+
justify-content: center;
|
|
4885
|
+
font-size: 10px;
|
|
4886
|
+
margin-top: 2px;
|
|
4887
|
+
}
|
|
4888
|
+
|
|
4889
|
+
/* 节点状态色(-text 语义色变体,对比度达标) */
|
|
4890
|
+
.wf-timeline-node--default { background: var(--wf-color-border); color: var(--wf-color-text-secondary); }
|
|
4891
|
+
.wf-timeline-node--info { background: var(--wf-color-info-text); color: var(--wf-color-on-brand); }
|
|
4892
|
+
.wf-timeline-node--success { background: var(--wf-color-success-text); color: var(--wf-color-on-brand); }
|
|
4893
|
+
.wf-timeline-node--warning { background: var(--wf-color-warning-text); color: var(--wf-color-on-brand); }
|
|
4894
|
+
.wf-timeline-node--error { background: var(--wf-color-error-text); color: var(--wf-color-on-brand); }
|
|
4895
|
+
|
|
4896
|
+
.wf-timeline-col {
|
|
4897
|
+
flex: 1;
|
|
4898
|
+
min-width: 0;
|
|
4899
|
+
}
|
|
4900
|
+
|
|
4901
|
+
.wf-timeline-head {
|
|
4902
|
+
display: flex;
|
|
4903
|
+
align-items: baseline;
|
|
4904
|
+
gap: var(--wf-gap-sm);
|
|
4905
|
+
flex-wrap: wrap;
|
|
4906
|
+
}
|
|
4907
|
+
|
|
4908
|
+
.wf-timeline-title {
|
|
4909
|
+
font-weight: var(--wf-font-weight-semibold);
|
|
4910
|
+
font-size: var(--wf-font-size-sm);
|
|
4911
|
+
color: var(--wf-color-text);
|
|
4912
|
+
}
|
|
4913
|
+
|
|
4914
|
+
.wf-timeline-time {
|
|
4915
|
+
font-size: var(--wf-font-size-xs);
|
|
4916
|
+
color: var(--wf-color-text-tertiary);
|
|
4917
|
+
}
|
|
4918
|
+
|
|
4919
|
+
.wf-timeline-content {
|
|
4920
|
+
margin-top: 2px;
|
|
4921
|
+
font-size: var(--wf-font-size-sm);
|
|
4922
|
+
color: var(--wf-color-text-secondary);
|
|
4923
|
+
}
|
|
4924
|
+
|
|
4925
|
+
.wf-timeline-item--clickable {
|
|
4926
|
+
cursor: pointer;
|
|
4927
|
+
border-radius: var(--wf-radius-sm);
|
|
4928
|
+
padding: 2px 4px;
|
|
4929
|
+
margin: -2px -4px;
|
|
4930
|
+
}
|
|
4931
|
+
.wf-timeline-item--clickable:hover { background: var(--wf-color-bg-secondary); }
|
|
4932
|
+
.wf-timeline-item--clickable:focus-visible {
|
|
4933
|
+
outline: 2px solid var(--wf-color-primary);
|
|
4934
|
+
outline-offset: 1px;
|
|
4935
|
+
}
|
|
4936
|
+
|
|
4937
|
+
/* alternate:内容左右交替(节点居中分隔) */
|
|
4938
|
+
.wf-timeline-item--alt-left, .wf-timeline-item--alt-right {
|
|
4939
|
+
width: 50%;
|
|
4940
|
+
}
|
|
4941
|
+
.wf-timeline-item--alt-left { align-self: flex-start; text-align: right; }
|
|
4942
|
+
.wf-timeline-item--alt-right { align-self: flex-end; margin-left: 50%; }
|
|
4943
|
+
|
|
4944
|
+
/* weifuwu/components — InputNumber */
|
|
4945
|
+
|
|
4946
|
+
.wf-inputnumber-wrap {
|
|
4947
|
+
display: flex;
|
|
4948
|
+
flex-direction: column;
|
|
4949
|
+
gap: var(--wf-gap-xs);
|
|
4950
|
+
width: 100%;
|
|
4951
|
+
}
|
|
4952
|
+
|
|
4953
|
+
.wf-inputnumber {
|
|
4954
|
+
display: flex;
|
|
4955
|
+
align-items: stretch;
|
|
4956
|
+
width: 100%;
|
|
4957
|
+
border: var(--wf-border-width) solid var(--wf-color-border);
|
|
4958
|
+
border-radius: var(--wf-radius-sm);
|
|
4959
|
+
background: var(--wf-color-bg);
|
|
4960
|
+
min-height: 36px; /* 与 Button md 对齐 */
|
|
4961
|
+
transition: border-color var(--wf-dur-fast) var(--wf-ease-out);
|
|
4962
|
+
}
|
|
4963
|
+
|
|
4964
|
+
.wf-inputnumber:focus-within {
|
|
4965
|
+
border-color: var(--wf-color-primary);
|
|
4966
|
+
box-shadow: 0 0 0 2px var(--wf-color-primary-bg);
|
|
4967
|
+
}
|
|
4968
|
+
|
|
4969
|
+
.wf-inputnumber--err { border-color: var(--wf-color-error-text); }
|
|
4970
|
+
.wf-inputnumber--disabled { opacity: 0.6; }
|
|
4971
|
+
|
|
4972
|
+
.wf-inputnumber-input {
|
|
4973
|
+
flex: 1;
|
|
4974
|
+
min-width: 0;
|
|
4975
|
+
border: none;
|
|
4976
|
+
outline: none;
|
|
4977
|
+
background: transparent;
|
|
4978
|
+
padding: 0 var(--wf-space-sm);
|
|
4979
|
+
font-family: var(--wf-font-sans);
|
|
4980
|
+
font-size: var(--wf-font-size-sm);
|
|
4981
|
+
color: var(--wf-color-text);
|
|
4982
|
+
width: 100%;
|
|
4983
|
+
}
|
|
4984
|
+
|
|
4985
|
+
.wf-inputnumber-btns {
|
|
4986
|
+
display: flex;
|
|
4987
|
+
flex-direction: column;
|
|
4988
|
+
border-left: 1px solid var(--wf-color-border);
|
|
4989
|
+
}
|
|
4990
|
+
|
|
4991
|
+
.wf-inputnumber-btn {
|
|
4992
|
+
flex: 1;
|
|
4993
|
+
display: flex;
|
|
4994
|
+
align-items: center;
|
|
4995
|
+
justify-content: center;
|
|
4996
|
+
background: none;
|
|
4997
|
+
border: none;
|
|
4998
|
+
cursor: pointer;
|
|
4999
|
+
color: var(--wf-color-text-secondary);
|
|
5000
|
+
padding: 2px 6px;
|
|
5001
|
+
min-height: 18px;
|
|
5002
|
+
}
|
|
5003
|
+
.wf-inputnumber-btn:hover { background: var(--wf-color-bg-secondary); color: var(--wf-color-text); }
|
|
5004
|
+
.wf-inputnumber-btn:first-child { border-bottom: 1px solid var(--wf-color-border); }
|
|
5005
|
+
.wf-inputnumber-btn:focus-visible { outline: 2px solid var(--wf-color-primary); outline-offset: -2px; }
|
|
5006
|
+
.wf-inputnumber-btn:disabled { cursor: not-allowed; }
|
|
5007
|
+
|
|
5008
|
+
.wf-inputnumber-label {
|
|
5009
|
+
font-family: var(--wf-font-sans);
|
|
5010
|
+
font-size: var(--wf-font-size-sm);
|
|
5011
|
+
color: var(--wf-color-text);
|
|
5012
|
+
}
|
|
5013
|
+
|
|
5014
|
+
.wf-inputnumber-req { color: var(--wf-color-error-text); margin-left: 2px; }
|
|
5015
|
+
|
|
5016
|
+
.wf-inputnumber-err { font-size: var(--wf-font-size-xs); color: var(--wf-color-error-text); }
|
|
5017
|
+
.wf-inputnumber-hint { font-size: var(--wf-font-size-xs); color: var(--wf-color-text-tertiary); }
|
|
5018
|
+
|
|
5019
|
+
/* weifuwu/components — Descriptions */
|
|
5020
|
+
|
|
5021
|
+
.wf-descriptions {
|
|
5022
|
+
display: grid;
|
|
5023
|
+
gap: var(--wf-space-sm) var(--wf-space-md);
|
|
5024
|
+
margin: 0;
|
|
5025
|
+
font-family: var(--wf-font-sans);
|
|
5026
|
+
}
|
|
5027
|
+
|
|
5028
|
+
.wf-descriptions--1 { grid-template-columns: repeat(1, 1fr); }
|
|
5029
|
+
.wf-descriptions--2 { grid-template-columns: repeat(2, 1fr); }
|
|
5030
|
+
.wf-descriptions--3 { grid-template-columns: repeat(3, 1fr); }
|
|
5031
|
+
.wf-descriptions--4 { grid-template-columns: repeat(4, 1fr); }
|
|
5032
|
+
|
|
5033
|
+
.wf-descriptions-item {
|
|
5034
|
+
display: flex;
|
|
5035
|
+
flex-direction: column;
|
|
5036
|
+
gap: 2px;
|
|
5037
|
+
min-width: 0;
|
|
5038
|
+
}
|
|
5039
|
+
|
|
5040
|
+
.wf-descriptions-label {
|
|
5041
|
+
font-size: var(--wf-font-size-xs);
|
|
5042
|
+
color: var(--wf-color-text-tertiary);
|
|
5043
|
+
font-weight: var(--wf-font-weight-medium);
|
|
5044
|
+
}
|
|
5045
|
+
|
|
5046
|
+
.wf-descriptions-value {
|
|
5047
|
+
margin: 0;
|
|
5048
|
+
font-size: var(--wf-font-size-sm);
|
|
5049
|
+
color: var(--wf-color-text);
|
|
5050
|
+
word-break: break-word;
|
|
5051
|
+
}
|
|
5052
|
+
|
|
5053
|
+
/* bordered:单元格描边 */
|
|
5054
|
+
.wf-descriptions--bordered {
|
|
5055
|
+
border: var(--wf-border-width) solid var(--wf-color-border);
|
|
5056
|
+
border-radius: var(--wf-radius-md);
|
|
5057
|
+
gap: 0;
|
|
5058
|
+
overflow: hidden;
|
|
5059
|
+
}
|
|
5060
|
+
.wf-descriptions--bordered .wf-descriptions-item {
|
|
5061
|
+
border-bottom: 1px solid var(--wf-color-border);
|
|
5062
|
+
padding: var(--wf-space-sm) var(--wf-space-md);
|
|
5063
|
+
border-right: 1px solid var(--wf-color-border);
|
|
5064
|
+
}
|
|
5065
|
+
.wf-descriptions--bordered .wf-descriptions-item:nth-child(n):last-child {
|
|
5066
|
+
border-bottom: none;
|
|
5067
|
+
}
|
|
5068
|
+
|
|
5069
|
+
/* size */
|
|
5070
|
+
.wf-descriptions--sm .wf-descriptions-value { font-size: var(--wf-font-size-xs); }
|
|
5071
|
+
.wf-descriptions--lg .wf-descriptions-value { font-size: var(--wf-font-size-base); }
|
|
5072
|
+
|
|
5073
|
+
/* weifuwu/components — AvatarGroup */
|
|
5074
|
+
|
|
5075
|
+
.wf-avatar-group {
|
|
5076
|
+
display: inline-flex;
|
|
5077
|
+
align-items: center;
|
|
5078
|
+
}
|
|
5079
|
+
|
|
5080
|
+
.wf-avatar-group-item {
|
|
5081
|
+
margin-left: -6px;
|
|
5082
|
+
}
|
|
5083
|
+
.wf-avatar-group-item:first-child {
|
|
5084
|
+
margin-left: 0;
|
|
5085
|
+
}
|
|
5086
|
+
|
|
5087
|
+
.wf-avatar-group-more {
|
|
5088
|
+
display: inline-flex;
|
|
5089
|
+
align-items: center;
|
|
5090
|
+
justify-content: center;
|
|
5091
|
+
width: 32px;
|
|
5092
|
+
height: 32px;
|
|
5093
|
+
border-radius: 50%;
|
|
5094
|
+
margin-left: -6px;
|
|
5095
|
+
background: var(--wf-color-bg-tertiary);
|
|
5096
|
+
border: 2px solid var(--wf-color-bg);
|
|
5097
|
+
font-size: var(--wf-font-size-xs);
|
|
5098
|
+
font-weight: var(--wf-font-weight-semibold);
|
|
5099
|
+
color: var(--wf-color-text-secondary);
|
|
5100
|
+
font-family: var(--wf-font-sans);
|
|
5101
|
+
}
|
|
5102
|
+
|
|
5103
|
+
/* weifuwu/components — MessageBubble(依赖 layout wf-bubble 原语) */
|
|
5104
|
+
|
|
5105
|
+
.wf-bubble--error {
|
|
5106
|
+
border: 1px solid var(--wf-color-error-text);
|
|
5107
|
+
background: var(--wf-color-error-bg);
|
|
5108
|
+
color: var(--wf-color-error-text);
|
|
5109
|
+
}
|
|
5110
|
+
|
|
5111
|
+
.wf-bubble--streaming {
|
|
5112
|
+
border-right: 3px solid var(--wf-color-primary);
|
|
5113
|
+
border-right-color: var(--wf-color-primary);
|
|
5114
|
+
animation: wf-bubble-blink var(--wf-dur-fast) var(--wf-ease-in-out) infinite;
|
|
5115
|
+
}
|
|
5116
|
+
|
|
5117
|
+
@keyframes wf-bubble-blink {
|
|
5118
|
+
0%, 100% { border-right-color: var(--wf-color-primary); }
|
|
5119
|
+
50% { border-right-color: transparent; }
|
|
5120
|
+
}
|
|
5121
|
+
|
|
5122
|
+
.wf-bubble-body {
|
|
5123
|
+
display: flex;
|
|
5124
|
+
flex-direction: column;
|
|
5125
|
+
gap: var(--wf-gap-xs);
|
|
5126
|
+
}
|
|
5127
|
+
|
|
5128
|
+
.wf-bubble-actions {
|
|
5129
|
+
display: flex;
|
|
5130
|
+
gap: var(--wf-gap-xs);
|
|
5131
|
+
align-items: center;
|
|
5132
|
+
}
|
|
5133
|
+
|
|
5134
|
+
/* weifuwu/components — Menu(侧栏导航) */
|
|
5135
|
+
|
|
5136
|
+
.wf-menu {
|
|
5137
|
+
display: flex;
|
|
5138
|
+
flex-direction: column;
|
|
5139
|
+
gap: 2px;
|
|
5140
|
+
font-family: var(--wf-font-sans);
|
|
5141
|
+
}
|
|
5142
|
+
|
|
5143
|
+
.wf-menu-group {
|
|
5144
|
+
padding: var(--wf-space-sm) var(--wf-space-sm) 2px;
|
|
5145
|
+
font-size: var(--wf-font-size-xs);
|
|
5146
|
+
font-weight: var(--wf-font-weight-semibold);
|
|
5147
|
+
color: var(--wf-color-text-tertiary);
|
|
5148
|
+
letter-spacing: 0.02em;
|
|
5149
|
+
}
|
|
5150
|
+
|
|
5151
|
+
.wf-menu-item {
|
|
5152
|
+
display: flex;
|
|
5153
|
+
align-items: center;
|
|
5154
|
+
gap: var(--wf-gap-sm);
|
|
5155
|
+
padding: var(--wf-space-sm) var(--wf-space-md);
|
|
5156
|
+
border-radius: var(--wf-radius-sm);
|
|
5157
|
+
font-size: var(--wf-font-size-sm);
|
|
5158
|
+
color: var(--wf-color-text-secondary);
|
|
5159
|
+
cursor: pointer;
|
|
5160
|
+
user-select: none;
|
|
5161
|
+
transition: background var(--wf-dur-fast) var(--wf-ease-out), color var(--wf-dur-fast) var(--wf-ease-out);
|
|
5162
|
+
}
|
|
5163
|
+
|
|
5164
|
+
.wf-menu-item:hover {
|
|
5165
|
+
background: var(--wf-color-bg-secondary);
|
|
5166
|
+
color: var(--wf-color-text);
|
|
5167
|
+
}
|
|
5168
|
+
|
|
5169
|
+
.wf-menu-item--active {
|
|
5170
|
+
background: var(--wf-color-primary-bg);
|
|
5171
|
+
color: var(--wf-color-primary-text);
|
|
5172
|
+
font-weight: var(--wf-font-weight-semibold);
|
|
5173
|
+
}
|
|
5174
|
+
|
|
5175
|
+
.wf-menu-item--danger { color: var(--wf-color-error-text); }
|
|
5176
|
+
.wf-menu-item--danger:hover { background: var(--wf-color-error-bg); color: var(--wf-color-error-text); }
|
|
5177
|
+
|
|
5178
|
+
.wf-menu-item:focus-visible {
|
|
5179
|
+
outline: 2px solid var(--wf-color-primary);
|
|
5180
|
+
outline-offset: -2px;
|
|
5181
|
+
}
|
|
5182
|
+
|
|
5183
|
+
.wf-menu-icon {
|
|
5184
|
+
display: inline-flex;
|
|
5185
|
+
font-size: var(--wf-font-size-base);
|
|
5186
|
+
width: 18px;
|
|
5187
|
+
justify-content: center;
|
|
5188
|
+
flex-shrink: 0;
|
|
5189
|
+
}
|
|
5190
|
+
|
|
5191
|
+
/* weifuwu/components — PasswordInput(复用 Input 基础类) */
|
|
5192
|
+
|
|
5193
|
+
.wf-password {
|
|
5194
|
+
position: relative;
|
|
5195
|
+
}
|
|
5196
|
+
|
|
5197
|
+
.wf-password .wf-input {
|
|
5198
|
+
padding-right: 38px;
|
|
5199
|
+
}
|
|
5200
|
+
|
|
5201
|
+
.wf-password-eye {
|
|
5202
|
+
position: absolute;
|
|
5203
|
+
right: 4px;
|
|
5204
|
+
top: 50%;
|
|
5205
|
+
transform: translateY(-50%);
|
|
5206
|
+
display: inline-flex;
|
|
5207
|
+
align-items: center;
|
|
5208
|
+
justify-content: center;
|
|
5209
|
+
background: none;
|
|
5210
|
+
border: none;
|
|
5211
|
+
cursor: pointer;
|
|
5212
|
+
color: var(--wf-color-text-tertiary);
|
|
5213
|
+
padding: 6px;
|
|
5214
|
+
border-radius: var(--wf-radius-xs);
|
|
5215
|
+
}
|
|
5216
|
+
.wf-password-eye:hover { color: var(--wf-color-text-secondary); }
|
|
5217
|
+
|
|
5218
|
+
/* weifuwu/components — TagsInput */
|
|
5219
|
+
|
|
5220
|
+
.wf-tags {
|
|
5221
|
+
display: flex;
|
|
5222
|
+
flex-wrap: wrap;
|
|
5223
|
+
align-items: center;
|
|
5224
|
+
gap: var(--wf-gap-xs);
|
|
5225
|
+
padding: 4px var(--wf-space-sm);
|
|
5226
|
+
border: var(--wf-border-width) solid var(--wf-color-border);
|
|
5227
|
+
border-radius: var(--wf-radius-sm);
|
|
5228
|
+
background: var(--wf-color-bg);
|
|
5229
|
+
min-height: 36px; /* 与 Input 对齐 */
|
|
5230
|
+
cursor: text;
|
|
5231
|
+
transition: border-color var(--wf-dur-fast) var(--wf-ease-out);
|
|
5232
|
+
}
|
|
5233
|
+
|
|
5234
|
+
.wf-tags:focus-within {
|
|
5235
|
+
border-color: var(--wf-color-primary);
|
|
5236
|
+
box-shadow: 0 0 0 2px var(--wf-color-primary-bg);
|
|
5237
|
+
}
|
|
5238
|
+
|
|
5239
|
+
.wf-tags--err { border-color: var(--wf-color-error-text); }
|
|
5240
|
+
.wf-tags--disabled { opacity: 0.6; cursor: not-allowed; }
|
|
5241
|
+
|
|
5242
|
+
.wf-tags-tag {
|
|
5243
|
+
display: inline-flex;
|
|
5244
|
+
align-items: center;
|
|
5245
|
+
gap: 4px;
|
|
5246
|
+
padding: 2px var(--wf-space-xs);
|
|
5247
|
+
border-radius: var(--wf-radius-sm);
|
|
5248
|
+
background: var(--wf-color-bg-secondary);
|
|
5249
|
+
border: 1px solid var(--wf-color-border);
|
|
5250
|
+
font-size: var(--wf-font-size-xs);
|
|
5251
|
+
color: var(--wf-color-text);
|
|
5252
|
+
font-family: var(--wf-font-sans);
|
|
5253
|
+
}
|
|
5254
|
+
|
|
5255
|
+
.wf-tags-remove {
|
|
5256
|
+
display: inline-flex;
|
|
5257
|
+
align-items: center;
|
|
5258
|
+
justify-content: center;
|
|
5259
|
+
background: none;
|
|
5260
|
+
border: none;
|
|
5261
|
+
cursor: pointer;
|
|
5262
|
+
color: var(--wf-color-text-tertiary);
|
|
5263
|
+
padding: 0;
|
|
5264
|
+
border-radius: 2px;
|
|
5265
|
+
}
|
|
5266
|
+
.wf-tags-remove:hover { color: var(--wf-color-error-text); }
|
|
5267
|
+
.wf-tags-remove:focus-visible { outline: 2px solid var(--wf-color-primary); }
|
|
5268
|
+
|
|
5269
|
+
.wf-tags-input {
|
|
5270
|
+
flex: 1;
|
|
5271
|
+
min-width: 60px;
|
|
5272
|
+
border: none;
|
|
5273
|
+
outline: none;
|
|
5274
|
+
background: transparent;
|
|
5275
|
+
font-family: var(--wf-font-sans);
|
|
5276
|
+
font-size: var(--wf-font-size-sm);
|
|
5277
|
+
color: var(--wf-color-text);
|
|
5278
|
+
padding: 4px 0;
|
|
5279
|
+
}
|
|
5280
|
+
.wf-tags-input::placeholder { color: var(--wf-color-text-tertiary); }
|
|
5281
|
+
|
|
5282
|
+
/* weifuwu/components — Highlight */
|
|
5283
|
+
|
|
5284
|
+
.wf-highlight-mark {
|
|
5285
|
+
background: var(--wf-color-warning-bg);
|
|
5286
|
+
color: var(--wf-color-warning-text);
|
|
5287
|
+
border-radius: 2px;
|
|
5288
|
+
padding: 0 1px;
|
|
5289
|
+
font-weight: var(--wf-font-weight-semibold);
|
|
5290
|
+
}
|
|
5291
|
+
|
|
5292
|
+
/* weifuwu/components — List */
|
|
5293
|
+
|
|
5294
|
+
.wf-list {
|
|
5295
|
+
font-family: var(--wf-font-sans);
|
|
5296
|
+
}
|
|
5297
|
+
|
|
5298
|
+
.wf-list-header {
|
|
5299
|
+
font-weight: var(--wf-font-weight-semibold);
|
|
5300
|
+
font-size: var(--wf-font-size-sm);
|
|
5301
|
+
color: var(--wf-color-text);
|
|
5302
|
+
padding: var(--wf-space-sm) 0;
|
|
5303
|
+
}
|
|
5304
|
+
|
|
5305
|
+
.wf-list-body {
|
|
5306
|
+
margin: 0;
|
|
5307
|
+
padding: 0;
|
|
5308
|
+
list-style: none;
|
|
5309
|
+
}
|
|
5310
|
+
|
|
5311
|
+
.wf-list-item {
|
|
5312
|
+
padding: var(--wf-space-sm) 0;
|
|
5313
|
+
}
|
|
5314
|
+
|
|
5315
|
+
.wf-list--divided .wf-list-item {
|
|
5316
|
+
border-bottom: 1px solid var(--wf-color-border);
|
|
5317
|
+
}
|
|
5318
|
+
.wf-list--divided .wf-list-item:last-child {
|
|
5319
|
+
border-bottom: none;
|
|
5320
|
+
}
|
|
5321
|
+
|
|
5322
|
+
.wf-list-footer {
|
|
5323
|
+
padding: var(--wf-space-sm) 0;
|
|
5324
|
+
font-size: var(--wf-font-size-sm);
|
|
5325
|
+
color: var(--wf-color-text-tertiary);
|
|
5326
|
+
}
|
|
5327
|
+
|
|
5328
|
+
.wf-list-empty {
|
|
5329
|
+
display: flex;
|
|
5330
|
+
flex-direction: column;
|
|
5331
|
+
align-items: center;
|
|
5332
|
+
gap: var(--wf-gap-sm);
|
|
5333
|
+
padding: var(--wf-space-lg) 0;
|
|
5334
|
+
color: var(--wf-color-text-tertiary);
|
|
5335
|
+
font-size: var(--wf-font-size-sm);
|
|
5336
|
+
}
|
|
5337
|
+
|
|
5338
|
+
/* weifuwu/components — Result */
|
|
5339
|
+
|
|
5340
|
+
.wf-result {
|
|
5341
|
+
display: flex;
|
|
5342
|
+
flex-direction: column;
|
|
5343
|
+
align-items: center;
|
|
5344
|
+
gap: var(--wf-gap-sm);
|
|
5345
|
+
padding: var(--wf-space-xl) var(--wf-space-md);
|
|
5346
|
+
text-align: center;
|
|
5347
|
+
font-family: var(--wf-font-sans);
|
|
5348
|
+
}
|
|
5349
|
+
|
|
5350
|
+
.wf-result-icon {
|
|
5351
|
+
display: flex;
|
|
5352
|
+
align-items: center;
|
|
5353
|
+
justify-content: center;
|
|
5354
|
+
width: 72px;
|
|
5355
|
+
height: 72px;
|
|
5356
|
+
border-radius: 50%;
|
|
5357
|
+
}
|
|
5358
|
+
|
|
5359
|
+
.wf-result--success .wf-result-icon { background: var(--wf-color-success-bg); color: var(--wf-color-success-text); }
|
|
5360
|
+
.wf-result--error .wf-result-icon { background: var(--wf-color-error-bg); color: var(--wf-color-error-text); }
|
|
5361
|
+
.wf-result--warning .wf-result-icon { background: var(--wf-color-warning-bg); color: var(--wf-color-warning-text); }
|
|
5362
|
+
.wf-result--info .wf-result-icon { background: var(--wf-color-info-bg); color: var(--wf-color-info-text); }
|
|
5363
|
+
|
|
5364
|
+
.wf-result-title {
|
|
5365
|
+
font-size: var(--wf-font-size-lg);
|
|
5366
|
+
font-weight: var(--wf-font-weight-bold);
|
|
5367
|
+
color: var(--wf-color-text);
|
|
5368
|
+
}
|
|
5369
|
+
|
|
5370
|
+
.wf-result-desc {
|
|
5371
|
+
font-size: var(--wf-font-size-sm);
|
|
5372
|
+
color: var(--wf-color-text-secondary);
|
|
5373
|
+
max-width: 420px;
|
|
5374
|
+
}
|
|
5375
|
+
|
|
5376
|
+
.wf-result-extra {
|
|
5377
|
+
margin-top: var(--wf-space-md);
|
|
5378
|
+
display: flex;
|
|
5379
|
+
gap: var(--wf-gap-sm);
|
|
5380
|
+
justify-content: center;
|
|
5381
|
+
}
|
|
5382
|
+
|
|
4707
5383
|
}
|