@taskon/widget-react 0.0.1-beta.7 → 0.0.2
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/EligibilityInfo.css +0 -148
- package/dist/ThemeProvider.css +4 -3
- package/dist/UserCenterWidget2.css +316 -0
- package/dist/chunks/{CommunityTaskList-D0uVD8wD.js → CommunityTaskList-2nFy6l6m.js} +2 -2
- package/dist/chunks/{EligibilityInfo-Cf6hx9-a.js → EligibilityInfo-CKTl_cdU.js} +2 -133
- package/dist/chunks/{PageBuilder-DoAFPm6-.js → PageBuilder-DHM3Il6f.js} +3 -3
- package/dist/chunks/{Quest-ySZlYd4u.js → Quest-Dqx4OCat.js} +2 -2
- package/dist/chunks/{UserCenterWidget-STq8kpV4.js → UserCenterWidget-SE5hqpnZ.js} +492 -303
- package/dist/chunks/{UserCenterWidget-BJsc_GSZ.js → UserCenterWidget-XL6LZRZM.js} +77 -64
- package/dist/community-task.js +1 -1
- package/dist/index.js +4 -4
- package/dist/page-builder.js +1 -1
- package/dist/quest.js +1 -1
- package/dist/user-center.js +1 -1
- package/package.json +1 -1
package/dist/EligibilityInfo.css
CHANGED
|
@@ -1,151 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ConfirmNoticeDialog styles
|
|
3
|
-
*
|
|
4
|
-
* @description
|
|
5
|
-
* Keep only content-specific layout/typography and rely on Dialog
|
|
6
|
-
* for container surface, radius and body spacing.
|
|
7
|
-
*/
|
|
8
|
-
|
|
9
|
-
/*
|
|
10
|
-
* Responsive base styles
|
|
11
|
-
*
|
|
12
|
-
* Keep mobile breakpoints and fallback patterns centralized here.
|
|
13
|
-
* Components should reuse these mixins instead of duplicating query logic.
|
|
14
|
-
*/
|
|
15
|
-
|
|
16
|
-
/*
|
|
17
|
-
* Desktop-up mixin:
|
|
18
|
-
* 1) Enable desktop enhancement in wider containers
|
|
19
|
-
* 2) Keep viewport media query as fallback
|
|
20
|
-
*/
|
|
21
|
-
|
|
22
|
-
/* ConfirmNotice content root */
|
|
23
|
-
|
|
24
|
-
.taskon-confirm-notice {
|
|
25
|
-
text-align: center;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
/* Status icon */
|
|
29
|
-
|
|
30
|
-
.taskon-confirm-notice-icon {
|
|
31
|
-
width: 46px;
|
|
32
|
-
height: 46px;
|
|
33
|
-
display: block;
|
|
34
|
-
margin: 0 auto;
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
/* Title */
|
|
38
|
-
|
|
39
|
-
.taskon-confirm-notice-title {
|
|
40
|
-
margin: 20px 0 0;
|
|
41
|
-
font-weight: 600;
|
|
42
|
-
font-size: 22px;
|
|
43
|
-
line-height: 28px;
|
|
44
|
-
color: var(--taskon-color-text);
|
|
45
|
-
white-space: pre-wrap;
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
/* Description */
|
|
49
|
-
|
|
50
|
-
.taskon-confirm-notice-desc {
|
|
51
|
-
margin: 10px 0 0;
|
|
52
|
-
font-size: 16px;
|
|
53
|
-
line-height: 20px;
|
|
54
|
-
color: var(--taskon-color-text-secondary);
|
|
55
|
-
white-space: pre-wrap;
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
/* Action container */
|
|
59
|
-
|
|
60
|
-
.taskon-confirm-notice-buttons {
|
|
61
|
-
margin-top: 20px;
|
|
62
|
-
display: flex;
|
|
63
|
-
flex-direction: column;
|
|
64
|
-
align-items: stretch;
|
|
65
|
-
justify-content: center;
|
|
66
|
-
gap: 10px;
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
.taskon-confirm-notice-buttons--col {
|
|
70
|
-
flex-wrap: wrap;
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
/* Base action button style */
|
|
74
|
-
|
|
75
|
-
.taskon-confirm-notice-button {
|
|
76
|
-
width: 100%;
|
|
77
|
-
min-width: 100%;
|
|
78
|
-
height: 36px;
|
|
79
|
-
padding: 0 16px;
|
|
80
|
-
border-radius: 8px;
|
|
81
|
-
border: 1px solid transparent;
|
|
82
|
-
font-size: 14px;
|
|
83
|
-
font-weight: 600;
|
|
84
|
-
line-height: 36px;
|
|
85
|
-
text-align: center;
|
|
86
|
-
cursor: pointer;
|
|
87
|
-
transition: all 0.2s ease;
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
.taskon-confirm-notice-button:disabled {
|
|
91
|
-
opacity: 0.5;
|
|
92
|
-
cursor: not-allowed;
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
/* Cancel button */
|
|
96
|
-
|
|
97
|
-
.taskon-confirm-notice-button--cancel {
|
|
98
|
-
color: var(--taskon-color-text);
|
|
99
|
-
background: var(--taskon-color-bg-surface-subtle);
|
|
100
|
-
border-color: var(--taskon-color-border);
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
.taskon-confirm-notice-button--cancel:hover:not(:disabled),
|
|
104
|
-
.taskon-confirm-notice-button--cancel:focus-visible:not(:disabled) {
|
|
105
|
-
background: var(--taskon-color-bg-surface);
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
/* Confirm button */
|
|
109
|
-
|
|
110
|
-
.taskon-confirm-notice-button--confirm {
|
|
111
|
-
color: var(--taskon-color-text-on-primary);
|
|
112
|
-
background: var(--taskon-color-primary);
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
.taskon-confirm-notice-button--confirm:hover:not(:disabled),
|
|
116
|
-
.taskon-confirm-notice-button--confirm:focus-visible:not(:disabled) {
|
|
117
|
-
background: var(--taskon-color-primary-hover);
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
/* Desktop 增强 */
|
|
121
|
-
|
|
122
|
-
@supports (container-type: inline-size) {
|
|
123
|
-
@container (min-width: 751px) {
|
|
124
|
-
.taskon-confirm-notice-buttons {
|
|
125
|
-
flex-direction: row;
|
|
126
|
-
align-items: center;
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
.taskon-confirm-notice-button {
|
|
130
|
-
width: auto;
|
|
131
|
-
min-width: 161px;
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
@supports not (container-type: inline-size) {
|
|
137
|
-
@media (min-width: 751px) {
|
|
138
|
-
.taskon-confirm-notice-buttons {
|
|
139
|
-
flex-direction: row;
|
|
140
|
-
align-items: center;
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
.taskon-confirm-notice-button {
|
|
144
|
-
width: auto;
|
|
145
|
-
min-width: 161px;
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
1
|
/**
|
|
150
2
|
* Textarea 通用组件样式
|
|
151
3
|
* @description 复刻 Vue 版本 BaseTextareaPro.vue 样式
|
package/dist/ThemeProvider.css
CHANGED
|
@@ -67,11 +67,12 @@
|
|
|
67
67
|
max-width: 500px;
|
|
68
68
|
max-height: 90vh;
|
|
69
69
|
|
|
70
|
-
/*
|
|
71
|
-
background-color: var(--taskon-color-bg-
|
|
70
|
+
/* 弹层使用浮层背景,避免 dark + 深色页面时与遮罩层融为一体 */
|
|
71
|
+
background-color: var(--taskon-color-bg-floating);
|
|
72
72
|
color: var(--taskon-color-text);
|
|
73
|
+
border: 1px solid var(--taskon-color-border-secondary);
|
|
73
74
|
border-radius: var(--taskon-border-radius);
|
|
74
|
-
box-shadow: 0
|
|
75
|
+
box-shadow: 0 28px 56px -20px var(--taskon-color-bg-mask);
|
|
75
76
|
|
|
76
77
|
/* 布局 */
|
|
77
78
|
display: flex;
|
|
@@ -1,3 +1,151 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ConfirmNoticeDialog styles
|
|
3
|
+
*
|
|
4
|
+
* @description
|
|
5
|
+
* Keep only content-specific layout/typography and rely on Dialog
|
|
6
|
+
* for container surface, radius and body spacing.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
/*
|
|
10
|
+
* Responsive base styles
|
|
11
|
+
*
|
|
12
|
+
* Keep mobile breakpoints and fallback patterns centralized here.
|
|
13
|
+
* Components should reuse these mixins instead of duplicating query logic.
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
/*
|
|
17
|
+
* Desktop-up mixin:
|
|
18
|
+
* 1) Enable desktop enhancement in wider containers
|
|
19
|
+
* 2) Keep viewport media query as fallback
|
|
20
|
+
*/
|
|
21
|
+
|
|
22
|
+
/* ConfirmNotice content root */
|
|
23
|
+
|
|
24
|
+
.taskon-confirm-notice {
|
|
25
|
+
text-align: center;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/* Status icon */
|
|
29
|
+
|
|
30
|
+
.taskon-confirm-notice-icon {
|
|
31
|
+
width: 46px;
|
|
32
|
+
height: 46px;
|
|
33
|
+
display: block;
|
|
34
|
+
margin: 0 auto;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/* Title */
|
|
38
|
+
|
|
39
|
+
.taskon-confirm-notice-title {
|
|
40
|
+
margin: 20px 0 0;
|
|
41
|
+
font-weight: 600;
|
|
42
|
+
font-size: 22px;
|
|
43
|
+
line-height: 28px;
|
|
44
|
+
color: var(--taskon-color-text);
|
|
45
|
+
white-space: pre-wrap;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
/* Description */
|
|
49
|
+
|
|
50
|
+
.taskon-confirm-notice-desc {
|
|
51
|
+
margin: 10px 0 0;
|
|
52
|
+
font-size: 16px;
|
|
53
|
+
line-height: 20px;
|
|
54
|
+
color: var(--taskon-color-text-secondary);
|
|
55
|
+
white-space: pre-wrap;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
/* Action container */
|
|
59
|
+
|
|
60
|
+
.taskon-confirm-notice-buttons {
|
|
61
|
+
margin-top: 20px;
|
|
62
|
+
display: flex;
|
|
63
|
+
flex-direction: column;
|
|
64
|
+
align-items: stretch;
|
|
65
|
+
justify-content: center;
|
|
66
|
+
gap: 10px;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
.taskon-confirm-notice-buttons--col {
|
|
70
|
+
flex-wrap: wrap;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
/* Base action button style */
|
|
74
|
+
|
|
75
|
+
.taskon-confirm-notice-button {
|
|
76
|
+
width: 100%;
|
|
77
|
+
min-width: 100%;
|
|
78
|
+
height: 36px;
|
|
79
|
+
padding: 0 16px;
|
|
80
|
+
border-radius: 8px;
|
|
81
|
+
border: 1px solid transparent;
|
|
82
|
+
font-size: 14px;
|
|
83
|
+
font-weight: 600;
|
|
84
|
+
line-height: 36px;
|
|
85
|
+
text-align: center;
|
|
86
|
+
cursor: pointer;
|
|
87
|
+
transition: all 0.2s ease;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
.taskon-confirm-notice-button:disabled {
|
|
91
|
+
opacity: 0.5;
|
|
92
|
+
cursor: not-allowed;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
/* Cancel button */
|
|
96
|
+
|
|
97
|
+
.taskon-confirm-notice-button--cancel {
|
|
98
|
+
color: var(--taskon-color-text);
|
|
99
|
+
background: var(--taskon-color-bg-surface-subtle);
|
|
100
|
+
border-color: var(--taskon-color-border);
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
.taskon-confirm-notice-button--cancel:hover:not(:disabled),
|
|
104
|
+
.taskon-confirm-notice-button--cancel:focus-visible:not(:disabled) {
|
|
105
|
+
background: var(--taskon-color-bg-surface);
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
/* Confirm button */
|
|
109
|
+
|
|
110
|
+
.taskon-confirm-notice-button--confirm {
|
|
111
|
+
color: var(--taskon-color-text-on-primary);
|
|
112
|
+
background: var(--taskon-color-primary);
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
.taskon-confirm-notice-button--confirm:hover:not(:disabled),
|
|
116
|
+
.taskon-confirm-notice-button--confirm:focus-visible:not(:disabled) {
|
|
117
|
+
background: var(--taskon-color-primary-hover);
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
/* Desktop 增强 */
|
|
121
|
+
|
|
122
|
+
@supports (container-type: inline-size) {
|
|
123
|
+
@container (min-width: 751px) {
|
|
124
|
+
.taskon-confirm-notice-buttons {
|
|
125
|
+
flex-direction: row;
|
|
126
|
+
align-items: center;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
.taskon-confirm-notice-button {
|
|
130
|
+
width: auto;
|
|
131
|
+
min-width: 161px;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
@supports not (container-type: inline-size) {
|
|
137
|
+
@media (min-width: 751px) {
|
|
138
|
+
.taskon-confirm-notice-buttons {
|
|
139
|
+
flex-direction: row;
|
|
140
|
+
align-items: center;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
.taskon-confirm-notice-button {
|
|
144
|
+
width: auto;
|
|
145
|
+
min-width: 161px;
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
}
|
|
1
149
|
/**
|
|
2
150
|
* Input 通用组件样式
|
|
3
151
|
* @description 复刻 Vue 版本 BaseInputPro.vue 样式
|
|
@@ -2267,6 +2415,174 @@
|
|
|
2267
2415
|
margin-top: 6.4vw;
|
|
2268
2416
|
}
|
|
2269
2417
|
}
|
|
2418
|
+
/*
|
|
2419
|
+
* Responsive base styles
|
|
2420
|
+
*
|
|
2421
|
+
* Keep mobile breakpoints and fallback patterns centralized here.
|
|
2422
|
+
* Components should reuse these mixins instead of duplicating query logic.
|
|
2423
|
+
*/
|
|
2424
|
+
|
|
2425
|
+
/*
|
|
2426
|
+
* Desktop-up mixin:
|
|
2427
|
+
* 1) Enable desktop enhancement in wider containers
|
|
2428
|
+
* 2) Keep viewport media query as fallback
|
|
2429
|
+
*/
|
|
2430
|
+
|
|
2431
|
+
.taskon-withdraw-notice__tokens {
|
|
2432
|
+
margin-top: 14px;
|
|
2433
|
+
display: flex;
|
|
2434
|
+
flex-direction: column;
|
|
2435
|
+
gap: 8px;
|
|
2436
|
+
text-align: left;
|
|
2437
|
+
}
|
|
2438
|
+
|
|
2439
|
+
.taskon-withdraw-notice__token {
|
|
2440
|
+
display: flex;
|
|
2441
|
+
align-items: center;
|
|
2442
|
+
justify-content: space-between;
|
|
2443
|
+
padding: 10px 12px;
|
|
2444
|
+
background: var(--taskon-color-bg-surface-subtle);
|
|
2445
|
+
border: 1px solid var(--taskon-color-border);
|
|
2446
|
+
border-radius: var(--taskon-border-radius-sm);
|
|
2447
|
+
}
|
|
2448
|
+
|
|
2449
|
+
.taskon-withdraw-notice__token-info {
|
|
2450
|
+
display: flex;
|
|
2451
|
+
align-items: center;
|
|
2452
|
+
gap: 10px;
|
|
2453
|
+
min-width: 0;
|
|
2454
|
+
}
|
|
2455
|
+
|
|
2456
|
+
.taskon-withdraw-notice__token-icon {
|
|
2457
|
+
width: 28px;
|
|
2458
|
+
height: 28px;
|
|
2459
|
+
border-radius: 50%;
|
|
2460
|
+
object-fit: cover;
|
|
2461
|
+
flex-shrink: 0;
|
|
2462
|
+
}
|
|
2463
|
+
|
|
2464
|
+
.taskon-withdraw-notice__token-details {
|
|
2465
|
+
display: flex;
|
|
2466
|
+
flex-direction: column;
|
|
2467
|
+
min-width: 0;
|
|
2468
|
+
}
|
|
2469
|
+
|
|
2470
|
+
.taskon-withdraw-notice__token-symbol {
|
|
2471
|
+
font-size: var(--taskon-font-size);
|
|
2472
|
+
font-weight: 600;
|
|
2473
|
+
color: var(--taskon-color-text);
|
|
2474
|
+
line-height: 1.2;
|
|
2475
|
+
}
|
|
2476
|
+
|
|
2477
|
+
.taskon-withdraw-notice__token-chain {
|
|
2478
|
+
font-size: var(--taskon-font-size-sm);
|
|
2479
|
+
color: var(--taskon-color-text-secondary);
|
|
2480
|
+
line-height: 1.2;
|
|
2481
|
+
}
|
|
2482
|
+
|
|
2483
|
+
.taskon-withdraw-notice__token-amount {
|
|
2484
|
+
font-size: var(--taskon-font-size);
|
|
2485
|
+
font-weight: 600;
|
|
2486
|
+
color: var(--taskon-color-text);
|
|
2487
|
+
margin-left: 8px;
|
|
2488
|
+
}
|
|
2489
|
+
|
|
2490
|
+
.taskon-withdraw-notice__error {
|
|
2491
|
+
margin-top: 12px;
|
|
2492
|
+
padding: 10px 12px;
|
|
2493
|
+
font-size: var(--taskon-font-size-sm);
|
|
2494
|
+
color: var(--taskon-color-error);
|
|
2495
|
+
background: var(--taskon-color-error-bg);
|
|
2496
|
+
border-radius: var(--taskon-border-radius-sm);
|
|
2497
|
+
word-break: break-word;
|
|
2498
|
+
overflow-wrap: anywhere;
|
|
2499
|
+
}
|
|
2500
|
+
|
|
2501
|
+
.taskon-withdraw-notice__loading {
|
|
2502
|
+
margin-top: 14px;
|
|
2503
|
+
display: flex;
|
|
2504
|
+
justify-content: center;
|
|
2505
|
+
}
|
|
2506
|
+
|
|
2507
|
+
.taskon-withdraw-notice__spinner {
|
|
2508
|
+
width: 36px;
|
|
2509
|
+
height: 36px;
|
|
2510
|
+
border-radius: 50%;
|
|
2511
|
+
border: 3px solid var(--taskon-color-border);
|
|
2512
|
+
border-top-color: var(--taskon-color-primary);
|
|
2513
|
+
animation: taskon-withdraw-notice-spin 0.8s linear infinite;
|
|
2514
|
+
}
|
|
2515
|
+
|
|
2516
|
+
.taskon-withdraw-notice__tx-hash {
|
|
2517
|
+
margin: 12px 0 0;
|
|
2518
|
+
font-size: var(--taskon-font-size-sm);
|
|
2519
|
+
color: var(--taskon-color-text-secondary);
|
|
2520
|
+
word-break: break-all;
|
|
2521
|
+
}
|
|
2522
|
+
|
|
2523
|
+
.taskon-withdraw-notice__actions {
|
|
2524
|
+
display: flex;
|
|
2525
|
+
align-items: center;
|
|
2526
|
+
gap: 10px;
|
|
2527
|
+
width: 100%;
|
|
2528
|
+
}
|
|
2529
|
+
|
|
2530
|
+
.taskon-withdraw-notice__action {
|
|
2531
|
+
flex: 1;
|
|
2532
|
+
width: auto;
|
|
2533
|
+
min-width: 0;
|
|
2534
|
+
}
|
|
2535
|
+
|
|
2536
|
+
.taskon-withdraw-notice--cancel .taskon-confirm-notice-buttons {
|
|
2537
|
+
flex-direction: column;
|
|
2538
|
+
align-items: stretch;
|
|
2539
|
+
}
|
|
2540
|
+
|
|
2541
|
+
.taskon-withdraw-notice--cancel .taskon-confirm-notice-button {
|
|
2542
|
+
width: 100%;
|
|
2543
|
+
min-width: 0;
|
|
2544
|
+
}
|
|
2545
|
+
|
|
2546
|
+
@keyframes taskon-withdraw-notice-spin {
|
|
2547
|
+
from {
|
|
2548
|
+
transform: rotate(0deg);
|
|
2549
|
+
}
|
|
2550
|
+
to {
|
|
2551
|
+
transform: rotate(360deg);
|
|
2552
|
+
}
|
|
2553
|
+
}
|
|
2554
|
+
|
|
2555
|
+
@media (max-width: 750px) {
|
|
2556
|
+
.taskon-withdraw-notice__token {
|
|
2557
|
+
padding: 8px 10px;
|
|
2558
|
+
}
|
|
2559
|
+
|
|
2560
|
+
.taskon-withdraw-notice__token-symbol,
|
|
2561
|
+
.taskon-withdraw-notice__token-amount {
|
|
2562
|
+
font-size: var(--taskon-font-size-sm);
|
|
2563
|
+
}
|
|
2564
|
+
|
|
2565
|
+
.taskon-withdraw-notice__actions {
|
|
2566
|
+
flex-direction: column;
|
|
2567
|
+
align-items: stretch;
|
|
2568
|
+
}
|
|
2569
|
+
|
|
2570
|
+
.taskon-withdraw-notice__action {
|
|
2571
|
+
width: 100%;
|
|
2572
|
+
}
|
|
2573
|
+
}
|
|
2574
|
+
|
|
2575
|
+
@media (min-width: 751px) {
|
|
2576
|
+
.taskon-withdraw-notice--cancel .taskon-confirm-notice-buttons {
|
|
2577
|
+
flex-direction: row;
|
|
2578
|
+
align-items: center;
|
|
2579
|
+
}
|
|
2580
|
+
|
|
2581
|
+
.taskon-withdraw-notice--cancel .taskon-confirm-notice-button {
|
|
2582
|
+
width: auto;
|
|
2583
|
+
min-width: 161px;
|
|
2584
|
+
}
|
|
2585
|
+
}
|
|
2270
2586
|
/**
|
|
2271
2587
|
* UserCenter Widget 样式
|
|
2272
2588
|
*
|
|
@@ -4,8 +4,8 @@ import { isUnauthorizedError, TaskReviewResult, formatLongNumber, EligibilityTyp
|
|
|
4
4
|
import { c as useTranslation, e as createLocaleLoader, w as TaskOnContext, h as useTaskOnContext, E as useTaskOnPortalContainer, D as Dialog } from "./ThemeProvider-CulHkqqY.js";
|
|
5
5
|
import { u as useResolvedWidgetConfig, W as WidgetShell } from "./WidgetShell-8xn-Jivw.js";
|
|
6
6
|
import { c as useToast } from "./useToast-BGJhd3BX.js";
|
|
7
|
-
import { u as useBindWallet, T as TitleExpress, C as CardDescExpress, a as useNftClaimFlow, R as RewardModuleDialog, B as BlindBoxDialog, b as TaskItem, E as EligibilityInfo, c as Textarea } from "./EligibilityInfo-
|
|
8
|
-
import { a as useBindSocialAccount, k as useChainMap, p as TipPopover, I as Input } from "./UserCenterWidget-
|
|
7
|
+
import { u as useBindWallet, T as TitleExpress, C as CardDescExpress, a as useNftClaimFlow, R as RewardModuleDialog, B as BlindBoxDialog, b as TaskItem, E as EligibilityInfo, c as Textarea } from "./EligibilityInfo-CKTl_cdU.js";
|
|
8
|
+
import { a as useBindSocialAccount, k as useChainMap, p as TipPopover, I as Input } from "./UserCenterWidget-SE5hqpnZ.js";
|
|
9
9
|
import { u as useIsMobile } from "./useIsMobile-D6Ybur-6.js";
|
|
10
10
|
import { createPortal } from "react-dom";
|
|
11
11
|
import '../CommunityTaskList.css';function CardSelector({
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { jsx, Fragment, jsxs } from "react/jsx-runtime";
|
|
2
2
|
import React__default, { isValidElement, cloneElement, Fragment as Fragment$1, useContext, useState, useRef, useMemo, useCallback, forwardRef, useEffect, useImperativeHandle } from "react";
|
|
3
3
|
import { createUserApi, ChainType, parseTitleExpress, getTxExplorerUrl, RewardType, UserIdentityType, SnsType, createQuestApi, isUnauthorizedError, ErrorCode, ApiError, createCommonApi, powIcon, contractInteractiveIcon, getSwapDexTitleExpress, EligibilityTemplateId, UserEligibleStatus } from "@taskon/core";
|
|
4
|
-
import { R as Root2, h as Trigger, i as Portal, C as Content2, j as Arrow2, k as useChainMap, l as useNftClaim, m as ClaimNftDialog, n as enMessages$2, o as PendingTxDialog, p as TipPopover, a as useBindSocialAccount, u as useUserCenterLocale, c as useTokenAssets, d as useRewardDetails, e as usePointsHistory, L as LoadingState, T as TokenRewardContent, g as PointsList, E as EmptyState, N as NftRewardContent, W as WithdrawForm } from "./UserCenterWidget-
|
|
5
|
-
import { w as TaskOnContext,
|
|
4
|
+
import { R as Root2, h as Trigger, i as Portal, C as Content2, j as Arrow2, k as useChainMap, l as useNftClaim, m as ClaimNftDialog, n as enMessages$2, o as PendingTxDialog, p as TipPopover, a as useBindSocialAccount, q as ConfirmNoticeDialog, u as useUserCenterLocale, c as useTokenAssets, d as useRewardDetails, e as usePointsHistory, L as LoadingState, T as TokenRewardContent, g as PointsList, E as EmptyState, N as NftRewardContent, W as WithdrawForm } from "./UserCenterWidget-SE5hqpnZ.js";
|
|
5
|
+
import { w as TaskOnContext, E as useTaskOnPortalContainer, c as useTranslation, e as createLocaleLoader, u as useTaskOnAuth, D as Dialog } from "./ThemeProvider-CulHkqqY.js";
|
|
6
6
|
import { u as useWallet, c as useToast } from "./useToast-BGJhd3BX.js";
|
|
7
7
|
import '../EligibilityInfo.css';const SLOT_TOKEN_PREFIX = "__TASKON_I18NT_SLOT_";
|
|
8
8
|
const SLOT_TOKEN_SUFFIX = "__";
|
|
@@ -238,136 +238,6 @@ function useBindWallet({
|
|
|
238
238
|
hasAdapter
|
|
239
239
|
};
|
|
240
240
|
}
|
|
241
|
-
const successIconUrl = new URL("data:image/svg+xml,%3csvg%20width='46'%20height='46'%20viewBox='0%200%2046%2046'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3ccircle%20cx='23'%20cy='23'%20r='23'%20fill='%2331FF90'/%3e%3cpath%20d='M16.4281%2022.8899L20.6446%2027.1063L29.6798%2018.0711'%20stroke='black'%20stroke-width='5'%20stroke-linecap='square'%20stroke-linejoin='round'/%3e%3c/svg%3e", import.meta.url).href;
|
|
242
|
-
const warnIconUrl = new URL("data:image/svg+xml,%3csvg%20width='46'%20height='46'%20viewBox='0%200%2046%2046'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M22.9783%200.0225143C10.2876%200.0225143%200%2010.3101%200%2023.0006C0%2035.6903%2010.2876%2045.9776%2022.9783%2045.9776C35.6682%2045.9776%2045.9556%2035.6903%2045.9556%2023.0006C45.9558%2010.3101%2035.6682%200.0225143%2022.9783%200.0225143ZM21.797%209.85031C21.797%209.01328%2022.4783%208.33197%2023.3154%208.33197C24.1524%208.33197%2024.8337%209.01328%2024.8337%209.85031V11.729C24.8337%2012.5662%2024.1524%2013.2475%2023.3154%2013.2475C22.4783%2013.2475%2021.797%2012.5662%2021.797%2011.7292V9.85031ZM12.0443%2023.1095H10.1657C9.32842%2023.1095%208.64717%2022.4282%208.64717%2021.5912C8.64717%2020.7541%209.32842%2020.0729%2010.1657%2020.0729H12.0443C12.8814%2020.0729%2013.5627%2020.7541%2013.5627%2021.5912C13.5627%2022.4282%2012.8819%2023.1095%2012.0443%2023.1095ZM12.6546%2014.9563C12.368%2014.6697%2012.2098%2014.2882%2012.2098%2013.8823C12.2098%2013.477%2012.3678%2013.0957%2012.6546%2012.8086C12.9411%2012.522%2013.3223%2012.3638%2013.7282%2012.3638C14.134%2012.3638%2014.515%2012.5216%2014.8021%2012.8086L16.1305%2014.137C16.4173%2014.4241%2016.5753%2014.8054%2016.5753%2015.2107C16.5753%2015.6165%2016.4171%2015.9976%2016.1305%2016.2847C15.843%2016.5715%2015.4617%2016.7295%2015.0565%2016.7295C14.6511%2016.7295%2014.2698%2016.5715%2013.9828%2016.2847L12.6546%2014.9563ZM24.2545%2039.3233H22.3764C21.5389%2039.3233%2020.8574%2038.642%2020.8574%2037.8045C20.8574%2036.9674%2021.5389%2036.2861%2022.3764%2036.2861H24.2545C25.0916%2036.2861%2025.7731%2036.9674%2025.7731%2037.8045C25.7732%2038.6421%2025.0916%2039.3233%2024.2545%2039.3233ZM26.1334%2035.8432H20.4976C19.6603%2035.8432%2018.9792%2035.1622%2018.9792%2034.3253C18.9792%2033.4875%2019.6603%2032.8063%2020.4976%2032.8063H26.133C26.9701%2032.8063%2027.6513%2033.4878%2027.6513%2034.3253C27.6518%2035.1624%2026.9705%2035.8432%2026.1334%2035.8432ZM23.3154%2032.033C18.335%2032.033%2014.2826%2027.9809%2014.2826%2023C14.2826%2018.0196%2018.3345%2013.9671%2023.3154%2013.9671C28.2958%2013.9671%2032.3478%2018.0191%2032.3478%2023C32.3478%2027.9809%2028.2958%2032.033%2023.3154%2032.033ZM31.574%2016.7295C31.1682%2016.7295%2030.7867%2016.5713%2030.5%2016.2843C29.9086%2015.6924%2029.9086%2014.7293%2030.5%2014.1374L31.8288%2012.8086C32.1155%2012.522%2032.4972%2012.364%2032.9026%2012.364C33.3082%2012.364%2033.6895%2012.522%2033.9762%2012.8084C34.568%2013.4009%2034.5676%2014.364%2033.9762%2014.9559L32.6478%2016.2843C32.3613%2016.5715%2031.98%2016.7295%2031.574%2016.7295ZM36.4652%2023.1095H34.5862C33.7491%2023.1095%2033.0678%2022.4282%2033.0678%2021.5912C33.0678%2020.7541%2033.7491%2020.0729%2034.5862%2020.0729H36.4652C37.3025%2020.0729%2037.9835%2020.7541%2037.9835%2021.5912C37.9836%2022.4282%2037.3025%2023.1095%2036.4652%2023.1095Z'%20fill='%23F89D35'/%3e%3c/svg%3e", import.meta.url).href;
|
|
243
|
-
function getNoticeIcon(type) {
|
|
244
|
-
if (type === "success") {
|
|
245
|
-
return successIconUrl;
|
|
246
|
-
}
|
|
247
|
-
if (type === "warn") {
|
|
248
|
-
return warnIconUrl;
|
|
249
|
-
}
|
|
250
|
-
return null;
|
|
251
|
-
}
|
|
252
|
-
function ConfirmNoticeDialog({
|
|
253
|
-
open: open2,
|
|
254
|
-
onOpenChange,
|
|
255
|
-
type = "default",
|
|
256
|
-
title,
|
|
257
|
-
desc,
|
|
258
|
-
col = false,
|
|
259
|
-
cancelButton,
|
|
260
|
-
confirmButton,
|
|
261
|
-
onCancel,
|
|
262
|
-
onConfirm,
|
|
263
|
-
onClose,
|
|
264
|
-
closeOnCancel = true,
|
|
265
|
-
closeOnConfirm = true,
|
|
266
|
-
cancelDisabled = false,
|
|
267
|
-
confirmDisabled = false,
|
|
268
|
-
showCloseButton = false,
|
|
269
|
-
closeOnOverlayClick = true,
|
|
270
|
-
closeOnEscapeKey = true,
|
|
271
|
-
maxWidth = 470,
|
|
272
|
-
className,
|
|
273
|
-
contentClassName,
|
|
274
|
-
children,
|
|
275
|
-
actions,
|
|
276
|
-
footer,
|
|
277
|
-
accessibilityTitle,
|
|
278
|
-
accessibilityDescription
|
|
279
|
-
}) {
|
|
280
|
-
const noticeIcon = getNoticeIcon(type);
|
|
281
|
-
const shouldRenderDefaultActions = !actions && Boolean(cancelButton || confirmButton);
|
|
282
|
-
const closeDialog = React__default.useCallback(() => {
|
|
283
|
-
onOpenChange(false);
|
|
284
|
-
onClose == null ? void 0 : onClose();
|
|
285
|
-
}, [onOpenChange, onClose]);
|
|
286
|
-
const handleOpenChange = React__default.useCallback(
|
|
287
|
-
(nextOpen) => {
|
|
288
|
-
onOpenChange(nextOpen);
|
|
289
|
-
if (!nextOpen) {
|
|
290
|
-
onClose == null ? void 0 : onClose();
|
|
291
|
-
}
|
|
292
|
-
},
|
|
293
|
-
[onOpenChange, onClose]
|
|
294
|
-
);
|
|
295
|
-
const handleCancel = React__default.useCallback(() => {
|
|
296
|
-
onCancel == null ? void 0 : onCancel();
|
|
297
|
-
if (closeOnCancel) {
|
|
298
|
-
closeDialog();
|
|
299
|
-
}
|
|
300
|
-
}, [onCancel, closeOnCancel, closeDialog]);
|
|
301
|
-
const handleConfirm = React__default.useCallback(() => {
|
|
302
|
-
onConfirm == null ? void 0 : onConfirm();
|
|
303
|
-
if (closeOnConfirm) {
|
|
304
|
-
closeDialog();
|
|
305
|
-
}
|
|
306
|
-
}, [onConfirm, closeOnConfirm, closeDialog]);
|
|
307
|
-
const ariaTitle = accessibilityTitle ?? (typeof title === "string" ? title : "Confirm notice");
|
|
308
|
-
return /* @__PURE__ */ jsx(
|
|
309
|
-
Dialog,
|
|
310
|
-
{
|
|
311
|
-
open: open2,
|
|
312
|
-
onOpenChange: handleOpenChange,
|
|
313
|
-
title: ariaTitle,
|
|
314
|
-
description: accessibilityDescription,
|
|
315
|
-
showCloseButton,
|
|
316
|
-
closeOnOverlayClick,
|
|
317
|
-
closeOnEscapeKey,
|
|
318
|
-
maxWidth,
|
|
319
|
-
contentClassName,
|
|
320
|
-
children: /* @__PURE__ */ jsxs(
|
|
321
|
-
"div",
|
|
322
|
-
{
|
|
323
|
-
className: `taskon-confirm-notice taskon-confirm-notice--${type} ${className || ""}`.trim(),
|
|
324
|
-
children: [
|
|
325
|
-
noticeIcon && /* @__PURE__ */ jsx(
|
|
326
|
-
"img",
|
|
327
|
-
{
|
|
328
|
-
className: "taskon-confirm-notice-icon",
|
|
329
|
-
src: noticeIcon,
|
|
330
|
-
alt: ""
|
|
331
|
-
}
|
|
332
|
-
),
|
|
333
|
-
title && /* @__PURE__ */ jsx("h3", { className: "taskon-confirm-notice-title", children: title }),
|
|
334
|
-
desc && /* @__PURE__ */ jsx("p", { className: "taskon-confirm-notice-desc", children: desc }),
|
|
335
|
-
children,
|
|
336
|
-
(actions || shouldRenderDefaultActions) && /* @__PURE__ */ jsx(
|
|
337
|
-
"div",
|
|
338
|
-
{
|
|
339
|
-
className: `taskon-confirm-notice-buttons ${col ? "taskon-confirm-notice-buttons--col" : ""}`.trim(),
|
|
340
|
-
children: actions || /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
341
|
-
cancelButton && /* @__PURE__ */ jsx(
|
|
342
|
-
"button",
|
|
343
|
-
{
|
|
344
|
-
type: "button",
|
|
345
|
-
className: "taskon-confirm-notice-button taskon-confirm-notice-button--cancel",
|
|
346
|
-
onClick: handleCancel,
|
|
347
|
-
disabled: cancelDisabled,
|
|
348
|
-
children: cancelButton
|
|
349
|
-
}
|
|
350
|
-
),
|
|
351
|
-
confirmButton && /* @__PURE__ */ jsx(
|
|
352
|
-
"button",
|
|
353
|
-
{
|
|
354
|
-
type: "button",
|
|
355
|
-
className: "taskon-confirm-notice-button taskon-confirm-notice-button--confirm",
|
|
356
|
-
onClick: handleConfirm,
|
|
357
|
-
disabled: confirmDisabled,
|
|
358
|
-
children: confirmButton
|
|
359
|
-
}
|
|
360
|
-
)
|
|
361
|
-
] })
|
|
362
|
-
}
|
|
363
|
-
),
|
|
364
|
-
footer
|
|
365
|
-
]
|
|
366
|
-
}
|
|
367
|
-
)
|
|
368
|
-
}
|
|
369
|
-
);
|
|
370
|
-
}
|
|
371
241
|
const Textarea = forwardRef(
|
|
372
242
|
function Textarea2({
|
|
373
243
|
value: value2,
|
|
@@ -23662,7 +23532,6 @@ export {
|
|
|
23662
23532
|
useQuestLocale as e,
|
|
23663
23533
|
EligibilityList as f,
|
|
23664
23534
|
getDefaultExportFromCjs as g,
|
|
23665
|
-
ConfirmNoticeDialog as h,
|
|
23666
23535
|
sanitizeHtml as s,
|
|
23667
23536
|
useBindWallet as u
|
|
23668
23537
|
};
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { jsx } from "react/jsx-runtime";
|
|
2
2
|
import { useState, useEffect, useMemo, useRef } from "react";
|
|
3
3
|
import { DEFAULT_PAGE_BUILDER_CONFIG, createPageBuilderApi, parsePageBuilderConfig, SectionLayoutType, WidgetTypeEnum, SECTION_LAYOUT_RATIOS } from "@taskon/core";
|
|
4
|
-
import { Q as QuestWidget } from "./Quest-
|
|
5
|
-
import { C as CommunityTaskList } from "./CommunityTaskList-
|
|
4
|
+
import { Q as QuestWidget } from "./Quest-Dqx4OCat.js";
|
|
5
|
+
import { C as CommunityTaskList } from "./CommunityTaskList-2nFy6l6m.js";
|
|
6
6
|
import { L as LeaderboardWidget } from "./LeaderboardWidget-DyoiiNS6.js";
|
|
7
|
-
import { U as UserCenterWidget } from "./UserCenterWidget-
|
|
7
|
+
import { U as UserCenterWidget } from "./UserCenterWidget-XL6LZRZM.js";
|
|
8
8
|
import { h as useTaskOnContext } from "./ThemeProvider-CulHkqqY.js";
|
|
9
9
|
import '../PageBuilder.css';function usePageBuilderConfig(pageId, localConfig) {
|
|
10
10
|
const { client } = useTaskOnContext();
|
|
@@ -2,10 +2,10 @@ import { jsx, jsxs, Fragment } from "react/jsx-runtime";
|
|
|
2
2
|
import React__default, { useState, useMemo, useCallback, useEffect, useRef } from "react";
|
|
3
3
|
import { RewardType, UserEligibleStatus, EligibilityTemplateId, SnsType, ChainType, QuestAutomaticallyWinnerDrawType, QuestWinnerDrawType, QuestWinnerRangeType, createQuestApi, QuestRewardsDistributeType, QuestRewardType, createLeaderboardApi, MediaType, RewardDistributedByType, ApiError, ErrorCode, CampaignType } from "@taskon/core";
|
|
4
4
|
import { D as Dialog, E as useTaskOnPortalContainer, h as useTaskOnContext } from "./ThemeProvider-CulHkqqY.js";
|
|
5
|
-
import { d as useTaskWidgetLocale, b as TaskItem, e as useQuestLocale, I as I18nT, f as EligibilityList, g as getDefaultExportFromCjs, s as sanitizeHtml, R as RewardModuleDialog,
|
|
5
|
+
import { d as useTaskWidgetLocale, b as TaskItem, e as useQuestLocale, I as I18nT, f as EligibilityList, g as getDefaultExportFromCjs, s as sanitizeHtml, R as RewardModuleDialog, u as useBindWallet, a as useNftClaimFlow, E as EligibilityInfo, B as BlindBoxDialog } from "./EligibilityInfo-CKTl_cdU.js";
|
|
6
6
|
import { B as Button, T as Table, P as Pagination, u as useResolvedWidgetConfig, W as WidgetShell } from "./WidgetShell-8xn-Jivw.js";
|
|
7
7
|
import { c as useToast } from "./useToast-BGJhd3BX.js";
|
|
8
|
-
import { R as Root2, h as Trigger, i as Portal, C as Content2,
|
|
8
|
+
import { R as Root2, h as Trigger, i as Portal, C as Content2, r as InfoIcon, j as Arrow2, p as TipPopover, q as ConfirmNoticeDialog, a as useBindSocialAccount } from "./UserCenterWidget-SE5hqpnZ.js";
|
|
9
9
|
import '../Quest.css';function ButtonTabs({
|
|
10
10
|
items,
|
|
11
11
|
activeKey,
|