@taskon/widget-react 0.0.1-beta.2 → 0.0.1-beta.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/README.md +56 -17
- package/dist/CommunityTaskList.css +1593 -1741
- package/dist/EligibilityInfo.css +1275 -582
- package/dist/LeaderboardWidget.css +355 -152
- package/dist/PageBuilder.css +0 -2
- package/dist/Quest.css +1140 -903
- package/dist/TaskOnProvider.css +50 -31
- package/dist/UserCenterWidget.css +108 -237
- package/dist/UserCenterWidget2.css +2016 -711
- package/dist/chunks/{CommunityTaskList-BlH1Wdd5.js → CommunityTaskList-C9Gv8KOF.js} +962 -827
- package/dist/chunks/{EligibilityInfo-C7GZ2G5u.js → EligibilityInfo-D-Fuy9GE.js} +1137 -449
- package/dist/chunks/{LeaderboardWidget-CmYfDeHV.js → LeaderboardWidget-BV2D2q1N.js} +15 -10
- package/dist/chunks/{PageBuilder-Bw0zSkFh.js → PageBuilder-DQoU4Mwf.js} +5 -5
- package/dist/chunks/{Quest-DKFZ-pPU.js → Quest-B5NyVr3o.js} +516 -325
- package/dist/chunks/{TaskOnProvider-BD6Vp2x8.js → TaskOnProvider-93UxARFo.js} +2 -207
- package/dist/chunks/{ThemeProvider-wnSXrNQb.js → ThemeProvider-CPI_roeh.js} +249 -57
- package/dist/chunks/{UserCenterWidget-Cw6h_5hT.js → UserCenterWidget-BRtigY_S.js} +206 -1002
- package/dist/chunks/UserCenterWidget-cADBSVg7.js +8358 -0
- package/dist/chunks/{WidgetShell-D_5OjvNZ.js → dynamic-import-helper-DwXlQC0S.js} +607 -40
- package/dist/chunks/useToast-CaRkylKe.js +304 -0
- package/dist/chunks/{usercenter-ja-uu-XfVF9.js → usercenter-ja-B2465c1O.js} +4 -10
- package/dist/chunks/{usercenter-ko-DYgUOVzd.js → usercenter-ko-xAEYxqLg.js} +4 -10
- package/dist/community-task.d.ts +34 -3
- package/dist/community-task.js +1 -1
- package/dist/core.d.ts +40 -3
- package/dist/core.js +9 -10
- package/dist/dynamic-import-helper.css +596 -289
- package/dist/index.d.ts +207 -10
- package/dist/index.js +21 -19
- package/dist/leaderboard.d.ts +8 -1
- package/dist/leaderboard.js +2 -2
- package/dist/page-builder.js +1 -1
- package/dist/quest.d.ts +8 -2
- package/dist/quest.js +1 -1
- package/dist/user-center.d.ts +20 -136
- package/dist/user-center.js +19 -236
- package/package.json +10 -2
- package/dist/TipPopover.css +0 -210
- package/dist/WidgetShell.css +0 -182
- package/dist/chunks/TipPopover-BrW8jo71.js +0 -2926
- package/dist/chunks/UserCenterWidget-BE329iS7.js +0 -3546
- package/dist/chunks/dynamic-import-helper-DxEFwm31.js +0 -537
- package/dist/chunks/useToast-B-wyO5zL.js +0 -93
- package/dist/chunks/useWidgetLocale-JDelxtt8.js +0 -74
package/dist/TaskOnProvider.css
CHANGED
|
@@ -3,16 +3,31 @@
|
|
|
3
3
|
* 遵循 TaskOn Widget 命名规范
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
+
/*
|
|
7
|
+
* Responsive base styles
|
|
8
|
+
*
|
|
9
|
+
* Keep mobile breakpoints and fallback patterns centralized here.
|
|
10
|
+
* Components should reuse these mixins instead of duplicating query logic.
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
/*
|
|
14
|
+
* Desktop-up mixin:
|
|
15
|
+
* 1) Enable desktop enhancement in wider containers
|
|
16
|
+
* 2) Keep viewport media query as fallback
|
|
17
|
+
*/
|
|
18
|
+
|
|
6
19
|
/* ==================== Viewport 容器 ==================== */
|
|
20
|
+
|
|
7
21
|
.taskon-toast-viewport {
|
|
8
22
|
position: fixed;
|
|
9
|
-
top:
|
|
10
|
-
right:
|
|
23
|
+
top: 10px;
|
|
24
|
+
right: 10px;
|
|
25
|
+
left: 10px;
|
|
11
26
|
display: flex;
|
|
12
27
|
flex-direction: column;
|
|
13
28
|
gap: 10px;
|
|
14
|
-
width:
|
|
15
|
-
max-width:
|
|
29
|
+
width: auto;
|
|
30
|
+
max-width: none;
|
|
16
31
|
margin: 0;
|
|
17
32
|
padding: 0;
|
|
18
33
|
list-style: none;
|
|
@@ -21,20 +36,22 @@
|
|
|
21
36
|
}
|
|
22
37
|
|
|
23
38
|
/* ==================== Toast 基础样式 ==================== */
|
|
39
|
+
|
|
24
40
|
.taskon-toast {
|
|
25
41
|
display: flex;
|
|
26
42
|
align-items: center;
|
|
27
43
|
gap: 12px;
|
|
28
44
|
padding: 14px 16px;
|
|
29
45
|
border-radius: 8px;
|
|
30
|
-
background:
|
|
31
|
-
box-shadow: 0 4px 12px
|
|
32
|
-
color:
|
|
46
|
+
background: var(--taskon-color-bg-floating);
|
|
47
|
+
box-shadow: 0 4px 12px var(--taskon-color-bg-mask);
|
|
48
|
+
color: var(--taskon-color-text);
|
|
33
49
|
font-size: 14px;
|
|
34
50
|
line-height: 1.4;
|
|
35
51
|
}
|
|
36
52
|
|
|
37
53
|
/* 动画 */
|
|
54
|
+
|
|
38
55
|
.taskon-toast[data-state="open"] {
|
|
39
56
|
animation: taskon-toast-slide-in 200ms ease-out;
|
|
40
57
|
}
|
|
@@ -86,6 +103,7 @@
|
|
|
86
103
|
}
|
|
87
104
|
|
|
88
105
|
/* ==================== Toast 图标 ==================== */
|
|
106
|
+
|
|
89
107
|
.taskon-toast-icon {
|
|
90
108
|
flex-shrink: 0;
|
|
91
109
|
width: 20px;
|
|
@@ -99,6 +117,7 @@
|
|
|
99
117
|
}
|
|
100
118
|
|
|
101
119
|
/* ==================== Toast 消息 ==================== */
|
|
120
|
+
|
|
102
121
|
.taskon-toast-message {
|
|
103
122
|
flex: 1;
|
|
104
123
|
margin: 0;
|
|
@@ -107,57 +126,57 @@
|
|
|
107
126
|
/* ==================== Toast 类型变体 ==================== */
|
|
108
127
|
|
|
109
128
|
/* Success */
|
|
129
|
+
|
|
110
130
|
.taskon-toast--success {
|
|
111
|
-
border-left: 3px solid
|
|
131
|
+
border-left: 3px solid var(--taskon-color-success);
|
|
112
132
|
}
|
|
113
133
|
|
|
114
134
|
.taskon-toast--success .taskon-toast-icon {
|
|
115
|
-
background:
|
|
116
|
-
color:
|
|
135
|
+
background: var(--taskon-color-success-bg);
|
|
136
|
+
color: var(--taskon-color-success);
|
|
117
137
|
}
|
|
118
138
|
|
|
119
139
|
/* Error */
|
|
140
|
+
|
|
120
141
|
.taskon-toast--error {
|
|
121
|
-
border-left: 3px solid
|
|
142
|
+
border-left: 3px solid var(--taskon-color-error);
|
|
122
143
|
}
|
|
123
144
|
|
|
124
145
|
.taskon-toast--error .taskon-toast-icon {
|
|
125
|
-
background:
|
|
126
|
-
color:
|
|
146
|
+
background: var(--taskon-color-error-bg);
|
|
147
|
+
color: var(--taskon-color-error);
|
|
127
148
|
}
|
|
128
149
|
|
|
129
150
|
/* Warning */
|
|
151
|
+
|
|
130
152
|
.taskon-toast--warning {
|
|
131
|
-
border-left: 3px solid
|
|
153
|
+
border-left: 3px solid var(--taskon-color-warning);
|
|
132
154
|
}
|
|
133
155
|
|
|
134
156
|
.taskon-toast--warning .taskon-toast-icon {
|
|
135
|
-
background:
|
|
136
|
-
color:
|
|
157
|
+
background: var(--taskon-color-warning-bg);
|
|
158
|
+
color: var(--taskon-color-warning);
|
|
137
159
|
}
|
|
138
160
|
|
|
139
161
|
/* Info */
|
|
162
|
+
|
|
140
163
|
.taskon-toast--info {
|
|
141
|
-
border-left: 3px solid
|
|
164
|
+
border-left: 3px solid var(--taskon-color-link);
|
|
142
165
|
}
|
|
143
166
|
|
|
144
167
|
.taskon-toast--info .taskon-toast-icon {
|
|
145
|
-
background:
|
|
146
|
-
color:
|
|
168
|
+
background: var(--taskon-color-bg-surface-strong);
|
|
169
|
+
color: var(--taskon-color-link);
|
|
147
170
|
}
|
|
148
171
|
|
|
149
|
-
/* ====================
|
|
150
|
-
@media (max-width: 750px) {
|
|
151
|
-
.taskon-toast-viewport {
|
|
152
|
-
top: 10px;
|
|
153
|
-
right: 10px;
|
|
154
|
-
left: 10px;
|
|
155
|
-
width: auto;
|
|
156
|
-
max-width: none;
|
|
157
|
-
}
|
|
172
|
+
/* ==================== Desktop 增强 ==================== */
|
|
158
173
|
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
174
|
+
@media (min-width: 751px) {
|
|
175
|
+
.taskon-toast-viewport {
|
|
176
|
+
top: 20px;
|
|
177
|
+
right: 20px;
|
|
178
|
+
left: auto;
|
|
179
|
+
width: 320px;
|
|
180
|
+
max-width: calc(100vw - 40px);
|
|
162
181
|
}
|
|
163
182
|
}
|
|
@@ -1,106 +1,116 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Tabs 组件样式
|
|
3
|
-
*
|
|
4
|
-
* 命名规范: .taskon-tabs-[element]--[modifier]
|
|
5
|
-
* 基于 Figma UserCenter 设计规范
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
/* ========== 容器 ========== */
|
|
9
|
-
.taskon-tabs {
|
|
10
|
-
position: relative;
|
|
11
|
-
display: inline-flex;
|
|
12
|
-
flex-direction: column;
|
|
13
|
-
gap: 0;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
/* ========== Tab 列表 ========== */
|
|
17
|
-
.taskon-tabs__list {
|
|
18
|
-
display: inline-flex;
|
|
19
|
-
align-items: center;
|
|
20
|
-
gap: var(--taskon-tabs-gap, 40px);
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
/* ========== Tab 项 ========== */
|
|
24
|
-
.taskon-tabs__tab {
|
|
25
|
-
position: relative;
|
|
26
|
-
padding: 0;
|
|
27
|
-
padding-bottom: 9px;
|
|
28
|
-
background: transparent;
|
|
29
|
-
border: none;
|
|
30
|
-
cursor: pointer;
|
|
31
|
-
transition: color 0.2s ease;
|
|
32
|
-
|
|
33
|
-
/* Typography: 16px Medium */
|
|
34
|
-
font-size: 16px;
|
|
35
|
-
font-weight: 500;
|
|
36
|
-
line-height: 24px;
|
|
37
|
-
white-space: nowrap;
|
|
38
|
-
|
|
39
|
-
/* 默认颜色: text-light (60% 白色) */
|
|
40
|
-
color: var(--taskon-color-text-secondary, rgba(255, 255, 255, 0.6));
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
.taskon-tabs__tab:hover:not(.taskon-tabs__tab--disabled) {
|
|
44
|
-
color: var(--taskon-color-text-light-hover, rgba(255, 255, 255, 0.8));
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
/* 激活状态: 更粗字体 + 白色 */
|
|
48
|
-
.taskon-tabs__tab--active {
|
|
49
|
-
font-weight: 600;
|
|
50
|
-
color: var(--taskon-color-text, white);
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
/* 禁用状态 */
|
|
54
|
-
.taskon-tabs__tab--disabled {
|
|
55
|
-
color: var(--taskon-color-text-disabled, rgba(255, 255, 255, 0.3));
|
|
56
|
-
cursor: not-allowed;
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
/* ========== 下划线指示器 ========== */
|
|
60
|
-
.taskon-tabs__indicator {
|
|
61
|
-
position: absolute;
|
|
62
|
-
bottom: 0;
|
|
63
|
-
left: 0;
|
|
64
|
-
height: 2px;
|
|
65
|
-
/* 渐变色:蓝色 -> 绿色(基于 Figma 设计 Brand/primary -> Brand/secondary) */
|
|
66
|
-
background: linear-gradient(90deg, #2771ff 0%, #1fcbaf 100%);
|
|
67
|
-
border-radius: 1px;
|
|
68
|
-
transition: transform 0.25s ease, width 0.25s ease;
|
|
69
|
-
}
|
|
70
1
|
/**
|
|
71
|
-
*
|
|
2
|
+
* Tabs 组件样式
|
|
3
|
+
*
|
|
4
|
+
* 命名规范: .taskon-tabs-[element]--[modifier]
|
|
5
|
+
* 基于 Figma UserCenter 设计规范
|
|
72
6
|
*/
|
|
73
|
-
|
|
74
|
-
|
|
7
|
+
/*
|
|
8
|
+
* Responsive base styles
|
|
9
|
+
*
|
|
10
|
+
* Keep mobile breakpoints and fallback patterns centralized here.
|
|
11
|
+
* Components should reuse these mixins instead of duplicating query logic.
|
|
12
|
+
*/
|
|
13
|
+
/*
|
|
14
|
+
* Desktop-up mixin:
|
|
15
|
+
* 1) Enable desktop enhancement in wider containers
|
|
16
|
+
* 2) Keep viewport media query as fallback
|
|
17
|
+
*/
|
|
18
|
+
/* ========== 容器 ========== */
|
|
19
|
+
.taskon-tabs {
|
|
75
20
|
position: relative;
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
.taskon-asset-image__main {
|
|
80
|
-
display: block;
|
|
21
|
+
container-type: inline-size;
|
|
22
|
+
display: flex;
|
|
23
|
+
flex-direction: column;
|
|
81
24
|
width: 100%;
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
25
|
+
gap: 0;
|
|
26
|
+
overflow-x: auto;
|
|
27
|
+
scrollbar-width: none;
|
|
85
28
|
}
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
29
|
+
.taskon-tabs::-webkit-scrollbar {
|
|
30
|
+
display: none;
|
|
31
|
+
}
|
|
32
|
+
/* ========== Tab 列表 ========== */
|
|
33
|
+
.taskon-tabs__list {
|
|
34
|
+
display: inline-flex;
|
|
35
|
+
align-items: center;
|
|
36
|
+
width: max-content;
|
|
37
|
+
min-width: 100%;
|
|
38
|
+
gap: var(--taskon-tabs-gap-mobile, 16px);
|
|
92
39
|
}
|
|
40
|
+
/* ========== Tab 项 ========== */
|
|
41
|
+
.taskon-tabs__tab {
|
|
42
|
+
position: relative;
|
|
43
|
+
flex-shrink: 0;
|
|
44
|
+
padding: 0;
|
|
45
|
+
padding-bottom: 9px;
|
|
46
|
+
background: transparent;
|
|
47
|
+
border: none;
|
|
48
|
+
cursor: pointer;
|
|
49
|
+
transition: color 0.2s ease;
|
|
93
50
|
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
51
|
+
/* Typography: 16px Medium */
|
|
52
|
+
font-size: 16px;
|
|
53
|
+
font-weight: 500;
|
|
54
|
+
line-height: 24px;
|
|
55
|
+
white-space: nowrap;
|
|
56
|
+
|
|
57
|
+
color: var(--taskon-color-text-secondary);
|
|
58
|
+
}
|
|
59
|
+
.taskon-tabs__tab:hover:not(.taskon-tabs__tab--disabled) {
|
|
60
|
+
color: var(--taskon-color-text);
|
|
61
|
+
}
|
|
62
|
+
/* 激活状态: 更粗字体 + 主文本色 */
|
|
63
|
+
.taskon-tabs__tab--active {
|
|
64
|
+
font-weight: 600;
|
|
65
|
+
color: var(--taskon-color-text);
|
|
66
|
+
}
|
|
67
|
+
/* 禁用状态 */
|
|
68
|
+
.taskon-tabs__tab--disabled {
|
|
69
|
+
color: var(--taskon-color-text-disabled);
|
|
70
|
+
cursor: not-allowed;
|
|
103
71
|
}
|
|
72
|
+
/* ========== 下划线指示器 ========== */
|
|
73
|
+
.taskon-tabs__indicator {
|
|
74
|
+
position: absolute;
|
|
75
|
+
bottom: 0;
|
|
76
|
+
left: 0;
|
|
77
|
+
height: 2px;
|
|
78
|
+
background: linear-gradient(
|
|
79
|
+
90deg,
|
|
80
|
+
var(--taskon-color-link) 0%,
|
|
81
|
+
var(--taskon-color-secondary) 100%
|
|
82
|
+
);
|
|
83
|
+
border-radius: 1px;
|
|
84
|
+
transition: transform 0.25s ease, width 0.25s ease;
|
|
85
|
+
}
|
|
86
|
+
@supports (container-type: inline-size) {
|
|
87
|
+
@container (min-width: 751px) {
|
|
88
|
+
.taskon-tabs {
|
|
89
|
+
width: auto;
|
|
90
|
+
overflow-x: visible;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
.taskon-tabs__list {
|
|
94
|
+
width: auto;
|
|
95
|
+
min-width: 0;
|
|
96
|
+
gap: var(--taskon-tabs-gap, 40px);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
@supports not (container-type: inline-size) {
|
|
101
|
+
@media (min-width: 751px) {
|
|
102
|
+
.taskon-tabs {
|
|
103
|
+
width: auto;
|
|
104
|
+
overflow-x: visible;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
.taskon-tabs__list {
|
|
108
|
+
width: auto;
|
|
109
|
+
min-width: 0;
|
|
110
|
+
gap: var(--taskon-tabs-gap, 40px);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
}
|
|
104
114
|
/**
|
|
105
115
|
* EmailBindDialog 样式
|
|
106
116
|
*/
|
|
@@ -113,7 +123,7 @@
|
|
|
113
123
|
font-size: 20px;
|
|
114
124
|
font-weight: 600;
|
|
115
125
|
line-height: 28px;
|
|
116
|
-
color: var(--taskon-color-text
|
|
126
|
+
color: var(--taskon-color-text);
|
|
117
127
|
margin: 0 0 24px 0;
|
|
118
128
|
}
|
|
119
129
|
|
|
@@ -126,7 +136,7 @@
|
|
|
126
136
|
font-size: 14px;
|
|
127
137
|
font-weight: 500;
|
|
128
138
|
line-height: 20px;
|
|
129
|
-
color: var(--taskon-color-text
|
|
139
|
+
color: var(--taskon-color-text);
|
|
130
140
|
margin-bottom: 8px;
|
|
131
141
|
}
|
|
132
142
|
|
|
@@ -135,6 +145,7 @@
|
|
|
135
145
|
}
|
|
136
146
|
|
|
137
147
|
/* 响应式 - 移动端 */
|
|
148
|
+
|
|
138
149
|
@media (max-width: 750px) {
|
|
139
150
|
.taskon-email-bind-dialog__title {
|
|
140
151
|
font-size: 18px;
|
|
@@ -155,143 +166,3 @@
|
|
|
155
166
|
margin-top: 20px;
|
|
156
167
|
}
|
|
157
168
|
}
|
|
158
|
-
/**
|
|
159
|
-
* ClaimNftDialog 样式
|
|
160
|
-
*/
|
|
161
|
-
|
|
162
|
-
.taskon-claim-dialog {
|
|
163
|
-
max-width: 400px;
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
.taskon-claim-dialog-content {
|
|
167
|
-
display: flex;
|
|
168
|
-
flex-direction: column;
|
|
169
|
-
align-items: center;
|
|
170
|
-
padding: 24px;
|
|
171
|
-
text-align: center;
|
|
172
|
-
}
|
|
173
|
-
|
|
174
|
-
/* NFT 图片 */
|
|
175
|
-
.taskon-claim-dialog-nft {
|
|
176
|
-
margin-bottom: 20px;
|
|
177
|
-
}
|
|
178
|
-
|
|
179
|
-
.taskon-claim-dialog-nft__image {
|
|
180
|
-
width: 120px;
|
|
181
|
-
height: 120px;
|
|
182
|
-
border-radius: 12px;
|
|
183
|
-
object-fit: cover;
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
/* 状态图标区域 */
|
|
187
|
-
.taskon-claim-dialog-status {
|
|
188
|
-
margin-bottom: 16px;
|
|
189
|
-
min-height: 48px;
|
|
190
|
-
display: flex;
|
|
191
|
-
align-items: center;
|
|
192
|
-
justify-content: center;
|
|
193
|
-
}
|
|
194
|
-
|
|
195
|
-
/* 加载动画 */
|
|
196
|
-
.taskon-claim-dialog-spinner {
|
|
197
|
-
width: 48px;
|
|
198
|
-
height: 48px;
|
|
199
|
-
position: relative;
|
|
200
|
-
}
|
|
201
|
-
|
|
202
|
-
.taskon-claim-dialog-spinner__circle {
|
|
203
|
-
width: 100%;
|
|
204
|
-
height: 100%;
|
|
205
|
-
border: 3px solid var(--taskon-border-color, #e5e5e5);
|
|
206
|
-
border-top-color: var(--taskon-primary-color, #6366f1);
|
|
207
|
-
border-radius: 50%;
|
|
208
|
-
animation: taskon-claim-spin 0.8s linear infinite;
|
|
209
|
-
}
|
|
210
|
-
|
|
211
|
-
@keyframes taskon-claim-spin {
|
|
212
|
-
to {
|
|
213
|
-
transform: rotate(360deg);
|
|
214
|
-
}
|
|
215
|
-
}
|
|
216
|
-
|
|
217
|
-
/* 状态图标 */
|
|
218
|
-
.taskon-claim-dialog-icon {
|
|
219
|
-
width: 48px;
|
|
220
|
-
height: 48px;
|
|
221
|
-
}
|
|
222
|
-
|
|
223
|
-
.taskon-claim-dialog-icon--success {
|
|
224
|
-
color: var(--taskon-success-color, #22c55e);
|
|
225
|
-
}
|
|
226
|
-
|
|
227
|
-
.taskon-claim-dialog-icon--error {
|
|
228
|
-
color: var(--taskon-error-color, #ef4444);
|
|
229
|
-
}
|
|
230
|
-
|
|
231
|
-
/* 状态消息 */
|
|
232
|
-
.taskon-claim-dialog-message {
|
|
233
|
-
font-size: 16px;
|
|
234
|
-
font-weight: 500;
|
|
235
|
-
color: var(--taskon-text-color, #1a1a1a);
|
|
236
|
-
margin: 0 0 16px;
|
|
237
|
-
line-height: 1.5;
|
|
238
|
-
}
|
|
239
|
-
|
|
240
|
-
/* 交易 Hash */
|
|
241
|
-
.taskon-claim-dialog-tx {
|
|
242
|
-
display: flex;
|
|
243
|
-
align-items: center;
|
|
244
|
-
gap: 8px;
|
|
245
|
-
padding: 8px 16px;
|
|
246
|
-
background: var(--taskon-bg-secondary, #f5f5f5);
|
|
247
|
-
border-radius: 8px;
|
|
248
|
-
margin-bottom: 20px;
|
|
249
|
-
font-size: 14px;
|
|
250
|
-
}
|
|
251
|
-
|
|
252
|
-
.taskon-claim-dialog-tx__label {
|
|
253
|
-
color: var(--taskon-text-secondary, #666);
|
|
254
|
-
}
|
|
255
|
-
|
|
256
|
-
.taskon-claim-dialog-tx__hash {
|
|
257
|
-
color: var(--taskon-text-color, #1a1a1a);
|
|
258
|
-
font-family: monospace;
|
|
259
|
-
}
|
|
260
|
-
|
|
261
|
-
/* 操作按钮 */
|
|
262
|
-
.taskon-claim-dialog-actions {
|
|
263
|
-
display: flex;
|
|
264
|
-
gap: 12px;
|
|
265
|
-
width: 100%;
|
|
266
|
-
justify-content: center;
|
|
267
|
-
}
|
|
268
|
-
|
|
269
|
-
.taskon-claim-dialog-btn {
|
|
270
|
-
padding: 10px 24px;
|
|
271
|
-
border-radius: 8px;
|
|
272
|
-
font-size: 14px;
|
|
273
|
-
font-weight: 500;
|
|
274
|
-
cursor: pointer;
|
|
275
|
-
transition: all 0.2s ease;
|
|
276
|
-
border: none;
|
|
277
|
-
}
|
|
278
|
-
|
|
279
|
-
.taskon-claim-dialog-btn--primary {
|
|
280
|
-
background: var(--taskon-primary-color, #6366f1);
|
|
281
|
-
color: white;
|
|
282
|
-
}
|
|
283
|
-
|
|
284
|
-
.taskon-claim-dialog-btn--primary:hover {
|
|
285
|
-
background: var(--taskon-primary-hover, #4f46e5);
|
|
286
|
-
}
|
|
287
|
-
|
|
288
|
-
.taskon-claim-dialog-btn--secondary {
|
|
289
|
-
background: transparent;
|
|
290
|
-
color: var(--taskon-primary-color, #6366f1);
|
|
291
|
-
border: 1px solid var(--taskon-primary-color, #6366f1);
|
|
292
|
-
}
|
|
293
|
-
|
|
294
|
-
.taskon-claim-dialog-btn--secondary:hover {
|
|
295
|
-
background: var(--taskon-primary-color, #6366f1);
|
|
296
|
-
color: white;
|
|
297
|
-
}
|