@taskon/widget-react 0.0.1-beta.1

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.
Files changed (48) hide show
  1. package/README.md +1065 -0
  2. package/dist/CommunityTaskList.css +4893 -0
  3. package/dist/EligibilityInfo.css +2337 -0
  4. package/dist/LeaderboardWidget.css +815 -0
  5. package/dist/PageBuilder.css +54 -0
  6. package/dist/Quest.css +4214 -0
  7. package/dist/TaskOnProvider.css +163 -0
  8. package/dist/TipPopover.css +210 -0
  9. package/dist/UserCenterWidget.css +297 -0
  10. package/dist/UserCenterWidget2.css +3519 -0
  11. package/dist/WidgetShell.css +182 -0
  12. package/dist/chunks/CommunityTaskList-DoPGZsw1.js +6813 -0
  13. package/dist/chunks/EligibilityInfo-C7GZ2G5u.js +22228 -0
  14. package/dist/chunks/LeaderboardWidget-CmYfDeHV.js +1068 -0
  15. package/dist/chunks/PageBuilder-Tmhf2GTS.js +150 -0
  16. package/dist/chunks/Quest-DKFZ-pPU.js +8839 -0
  17. package/dist/chunks/TaskOnProvider-BD6Vp2x8.js +1435 -0
  18. package/dist/chunks/ThemeProvider-wnSXrNQb.js +1118 -0
  19. package/dist/chunks/TipPopover-BrW8jo71.js +2926 -0
  20. package/dist/chunks/UserCenterWidget-BE329iS7.js +3546 -0
  21. package/dist/chunks/UserCenterWidget-BVw_IEEd.js +3989 -0
  22. package/dist/chunks/WidgetShell-D_5OjvNZ.js +1517 -0
  23. package/dist/chunks/common-ja-DWhTaFHb.js +23 -0
  24. package/dist/chunks/common-ko-80ezXsMG.js +23 -0
  25. package/dist/chunks/dynamic-import-helper-DxEFwm31.js +537 -0
  26. package/dist/chunks/index-CwMvO_wZ.js +777 -0
  27. package/dist/chunks/leaderboardwidget-ja-Bj6gz6y1.js +119 -0
  28. package/dist/chunks/leaderboardwidget-ko-f1cLO9ic.js +119 -0
  29. package/dist/chunks/useToast-B-wyO5zL.js +93 -0
  30. package/dist/chunks/useWidgetLocale-JDelxtt8.js +74 -0
  31. package/dist/chunks/usercenter-ja-uu-XfVF9.js +332 -0
  32. package/dist/chunks/usercenter-ko-DYgUOVzd.js +332 -0
  33. package/dist/community-task.d.ts +451 -0
  34. package/dist/community-task.js +9 -0
  35. package/dist/core.d.ts +803 -0
  36. package/dist/core.js +22 -0
  37. package/dist/dynamic-import-helper.css +389 -0
  38. package/dist/index.d.ts +1660 -0
  39. package/dist/index.js +41 -0
  40. package/dist/leaderboard.d.ts +547 -0
  41. package/dist/leaderboard.js +18 -0
  42. package/dist/page-builder.d.ts +20 -0
  43. package/dist/page-builder.js +4 -0
  44. package/dist/quest.d.ts +400 -0
  45. package/dist/quest.js +8 -0
  46. package/dist/user-center.d.ts +1780 -0
  47. package/dist/user-center.js +713 -0
  48. package/package.json +105 -0
@@ -0,0 +1,163 @@
1
+ /**
2
+ * Toast 组件样式
3
+ * 遵循 TaskOn Widget 命名规范
4
+ */
5
+
6
+ /* ==================== Viewport 容器 ==================== */
7
+ .taskon-toast-viewport {
8
+ position: fixed;
9
+ top: 20px;
10
+ right: 20px;
11
+ display: flex;
12
+ flex-direction: column;
13
+ gap: 10px;
14
+ width: 320px;
15
+ max-width: calc(100vw - 40px);
16
+ margin: 0;
17
+ padding: 0;
18
+ list-style: none;
19
+ z-index: 999999;
20
+ outline: none;
21
+ }
22
+
23
+ /* ==================== Toast 基础样式 ==================== */
24
+ .taskon-toast {
25
+ display: flex;
26
+ align-items: center;
27
+ gap: 12px;
28
+ padding: 14px 16px;
29
+ border-radius: 8px;
30
+ background: #1a1a1a;
31
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
32
+ color: #fff;
33
+ font-size: 14px;
34
+ line-height: 1.4;
35
+ }
36
+
37
+ /* 动画 */
38
+ .taskon-toast[data-state="open"] {
39
+ animation: taskon-toast-slide-in 200ms ease-out;
40
+ }
41
+
42
+ .taskon-toast[data-state="closed"] {
43
+ animation: taskon-toast-hide 100ms ease-in;
44
+ }
45
+
46
+ .taskon-toast[data-swipe="move"] {
47
+ transform: translateX(var(--radix-toast-swipe-move-x));
48
+ }
49
+
50
+ .taskon-toast[data-swipe="cancel"] {
51
+ transform: translateX(0);
52
+ transition: transform 200ms ease-out;
53
+ }
54
+
55
+ .taskon-toast[data-swipe="end"] {
56
+ animation: taskon-toast-swipe-out 100ms ease-out;
57
+ }
58
+
59
+ @keyframes taskon-toast-slide-in {
60
+ from {
61
+ transform: translateX(calc(100% + 20px));
62
+ opacity: 0;
63
+ }
64
+ to {
65
+ transform: translateX(0);
66
+ opacity: 1;
67
+ }
68
+ }
69
+
70
+ @keyframes taskon-toast-hide {
71
+ from {
72
+ opacity: 1;
73
+ }
74
+ to {
75
+ opacity: 0;
76
+ }
77
+ }
78
+
79
+ @keyframes taskon-toast-swipe-out {
80
+ from {
81
+ transform: translateX(var(--radix-toast-swipe-end-x));
82
+ }
83
+ to {
84
+ transform: translateX(calc(100% + 20px));
85
+ }
86
+ }
87
+
88
+ /* ==================== Toast 图标 ==================== */
89
+ .taskon-toast-icon {
90
+ flex-shrink: 0;
91
+ width: 20px;
92
+ height: 20px;
93
+ display: flex;
94
+ align-items: center;
95
+ justify-content: center;
96
+ border-radius: 50%;
97
+ font-size: 12px;
98
+ font-weight: bold;
99
+ }
100
+
101
+ /* ==================== Toast 消息 ==================== */
102
+ .taskon-toast-message {
103
+ flex: 1;
104
+ margin: 0;
105
+ }
106
+
107
+ /* ==================== Toast 类型变体 ==================== */
108
+
109
+ /* Success */
110
+ .taskon-toast--success {
111
+ border-left: 3px solid #00ffa3;
112
+ }
113
+
114
+ .taskon-toast--success .taskon-toast-icon {
115
+ background: rgba(0, 255, 163, 0.2);
116
+ color: #00ffa3;
117
+ }
118
+
119
+ /* Error */
120
+ .taskon-toast--error {
121
+ border-left: 3px solid #eb5757;
122
+ }
123
+
124
+ .taskon-toast--error .taskon-toast-icon {
125
+ background: rgba(235, 87, 87, 0.2);
126
+ color: #eb5757;
127
+ }
128
+
129
+ /* Warning */
130
+ .taskon-toast--warning {
131
+ border-left: 3px solid #f2c94c;
132
+ }
133
+
134
+ .taskon-toast--warning .taskon-toast-icon {
135
+ background: rgba(242, 201, 76, 0.2);
136
+ color: #f2c94c;
137
+ }
138
+
139
+ /* Info */
140
+ .taskon-toast--info {
141
+ border-left: 3px solid #2f80ed;
142
+ }
143
+
144
+ .taskon-toast--info .taskon-toast-icon {
145
+ background: rgba(47, 128, 237, 0.2);
146
+ color: #2f80ed;
147
+ }
148
+
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
+ }
158
+
159
+ .taskon-toast {
160
+ padding: 12px 14px;
161
+ font-size: 13px;
162
+ }
163
+ }
@@ -0,0 +1,210 @@
1
+ /**
2
+ * Input 通用组件样式
3
+ * @description 复刻 Vue 版本 BaseInputPro.vue 样式
4
+ * 使用 taskon-input 命名空间
5
+ */
6
+
7
+ /* ==================== 输入框 ==================== */
8
+ .taskon-input {
9
+ width: 100%;
10
+ height: 40px;
11
+ padding: 0 12px;
12
+ border-radius: 6px;
13
+ border: 1px solid rgba(255, 255, 255, 0.1);
14
+ background: rgba(255, 255, 255, 0.04);
15
+ color: var(--taskon-color-text, #fff);
16
+ font-size: 14px;
17
+ line-height: 40px;
18
+ letter-spacing: 0.04em;
19
+ outline: none;
20
+ transition: border-color 0.2s;
21
+ }
22
+
23
+ .taskon-input:focus {
24
+ border-color: var(--taskon-color-primary, #cbff01);
25
+ }
26
+
27
+ .taskon-input:disabled {
28
+ opacity: 0.6;
29
+ cursor: not-allowed;
30
+ }
31
+
32
+ .taskon-input--error {
33
+ border-color: #eb5757;
34
+ }
35
+
36
+ .taskon-input::placeholder {
37
+ color: var(--taskon-color-text-tertiary, #666);
38
+ font-weight: 400;
39
+ }
40
+
41
+ /* ==================== 包装器(用于 rightSlot 和 error) ==================== */
42
+ .taskon-input-wrapper {
43
+ width: 100%;
44
+ }
45
+
46
+ /* ==================== 容器(包含输入框和右侧插槽) ==================== */
47
+ .taskon-input-container {
48
+ display: flex;
49
+ align-items: center;
50
+ gap: 8px;
51
+ padding-right: 12px;
52
+ border-radius: 6px;
53
+ border: 1px solid rgba(255, 255, 255, 0.1);
54
+ background: rgba(255, 255, 255, 0.04);
55
+ transition: border-color 0.2s;
56
+ }
57
+
58
+ .taskon-input-container:focus-within {
59
+ border-color: var(--taskon-color-primary, #cbff01);
60
+ }
61
+
62
+ .taskon-input-container--error {
63
+ border-color: #eb5757;
64
+ }
65
+
66
+ /* 容器内的输入框样式重置 */
67
+ .taskon-input--in-container {
68
+ flex: 1;
69
+ border: none;
70
+ background: transparent;
71
+ border-radius: 0;
72
+ }
73
+
74
+ .taskon-input--in-container:focus {
75
+ border-color: transparent;
76
+ }
77
+
78
+ /* ==================== 右侧插槽 ==================== */
79
+ .taskon-input-slot {
80
+ flex-shrink: 0;
81
+ display: flex;
82
+ align-items: center;
83
+ }
84
+
85
+ /* MAX 按钮样式(通用样式) */
86
+ .taskon-input-slot button {
87
+ padding: 4px 8px;
88
+ font-size: 12px;
89
+ font-weight: 600;
90
+ color: var(--taskon-color-primary, #cbff01);
91
+ background: transparent;
92
+ border: 1px solid var(--taskon-color-primary, #cbff01);
93
+ border-radius: 4px;
94
+ cursor: pointer;
95
+ transition: all 0.2s;
96
+ }
97
+
98
+ .taskon-input-slot button:hover:not(:disabled) {
99
+ background: rgba(203, 255, 1, 0.1);
100
+ }
101
+
102
+ .taskon-input-slot button:disabled {
103
+ opacity: 0.5;
104
+ cursor: not-allowed;
105
+ }
106
+
107
+ /* ==================== 错误信息 ==================== */
108
+ .taskon-input-error {
109
+ margin: 4px 0 0 0;
110
+ font-size: 12px;
111
+ color: #eb5757;
112
+ line-height: 1.4;
113
+ }
114
+
115
+ /* ==================== 响应式 ==================== */
116
+ @media (max-width: 750px) {
117
+ .taskon-input {
118
+ height: 10.667vw;
119
+ padding: 0 3.2vw;
120
+ font-size: 3.733vw;
121
+ line-height: 10.667vw;
122
+ }
123
+
124
+ .taskon-input-container {
125
+ padding-right: 3.2vw;
126
+ gap: 2.133vw;
127
+ }
128
+
129
+ .taskon-input-slot button {
130
+ padding: 1.067vw 2.133vw;
131
+ font-size: 3.2vw;
132
+ }
133
+
134
+ .taskon-input-error {
135
+ margin-top: 1.067vw;
136
+ font-size: 3.2vw;
137
+ }
138
+ }
139
+ /**
140
+ * TipPopover 组件样式
141
+ * 设计原则:组件内部不包含 margin,需要间距由外部控制
142
+ */
143
+
144
+ .taskon-tip-popover-trigger {
145
+ display: inline-flex;
146
+ align-items: center;
147
+ justify-content: center;
148
+ padding: 0;
149
+ border: none;
150
+ background: transparent;
151
+ cursor: pointer;
152
+ color: var(--taskon-text-tertiary, rgba(255, 255, 255, 0.4));
153
+ outline: none;
154
+ }
155
+
156
+ .taskon-tip-popover-trigger:hover,
157
+ .taskon-tip-popover-trigger:focus {
158
+ color: var(--taskon-text-tertiary, rgba(255, 255, 255, 0.4));
159
+ background: transparent;
160
+ outline: none;
161
+ }
162
+
163
+ /* Custom children trigger - reset button styles */
164
+ .taskon-tip-popover-trigger--custom {
165
+ cursor: pointer;
166
+ }
167
+
168
+ .taskon-tip-popover-content {
169
+ max-width: 266px;
170
+ padding: 12px 16px;
171
+ border-radius: 8px;
172
+ border: none;
173
+ outline: none;
174
+ background: var(--taskon-bg-elevated, #2a2a2a);
175
+ color: var(--taskon-text-primary, #fff);
176
+ font-size: 13px;
177
+ line-height: 1.5;
178
+ box-shadow: 0 4px 16px rgba(0, 0, 0, 0.3);
179
+ /* z-index 需要大于 Dialog (9999) 才能在弹窗中正常显示 */
180
+ z-index: 10000;
181
+ animation: taskon-tip-popover-fade-in 0.15s ease;
182
+ }
183
+
184
+ .taskon-tip-popover-content:focus {
185
+ outline: none;
186
+ }
187
+
188
+ .taskon-tip-popover-arrow {
189
+ fill: var(--taskon-bg-elevated, #2a2a2a);
190
+ }
191
+
192
+ @keyframes taskon-tip-popover-fade-in {
193
+ from {
194
+ opacity: 0;
195
+ transform: scale(0.96);
196
+ }
197
+ to {
198
+ opacity: 1;
199
+ transform: scale(1);
200
+ }
201
+ }
202
+
203
+ /* Mobile styles */
204
+ @media (max-width: 750px) {
205
+ .taskon-tip-popover-content {
206
+ max-width: 60vw;
207
+ padding: 2.5vw 3.5vw;
208
+ font-size: 3vw;
209
+ }
210
+ }
@@ -0,0 +1,297 @@
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
+ /**
71
+ * AssetImage 组件样式
72
+ */
73
+
74
+ .taskon-asset-image {
75
+ position: relative;
76
+ flex-shrink: 0;
77
+ }
78
+
79
+ .taskon-asset-image__main {
80
+ display: block;
81
+ width: 100%;
82
+ height: 100%;
83
+ border-radius: 4px;
84
+ object-fit: cover;
85
+ }
86
+
87
+ .taskon-asset-image__placeholder {
88
+ width: 100%;
89
+ height: 100%;
90
+ border-radius: 4px;
91
+ background-color: var(--taskon-bg-secondary, #f0f0f0);
92
+ }
93
+
94
+ .taskon-asset-image__chain {
95
+ position: absolute;
96
+ right: -4px;
97
+ bottom: -4px;
98
+ width: 18px;
99
+ height: 18px;
100
+ border-radius: 50%;
101
+ background-color: var(--taskon-bg-primary, #fff);
102
+ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
103
+ }
104
+ /**
105
+ * EmailBindDialog 样式
106
+ */
107
+
108
+ .taskon-email-bind-dialog {
109
+ padding: 8px 0;
110
+ }
111
+
112
+ .taskon-email-bind-dialog__title {
113
+ font-size: 20px;
114
+ font-weight: 600;
115
+ line-height: 28px;
116
+ color: var(--taskon-color-text, #fff);
117
+ margin: 0 0 24px 0;
118
+ }
119
+
120
+ .taskon-email-bind-dialog__field {
121
+ margin-bottom: 20px;
122
+ }
123
+
124
+ .taskon-email-bind-dialog__label {
125
+ display: block;
126
+ font-size: 14px;
127
+ font-weight: 500;
128
+ line-height: 20px;
129
+ color: var(--taskon-color-text, #fff);
130
+ margin-bottom: 8px;
131
+ }
132
+
133
+ .taskon-email-bind-dialog__actions {
134
+ margin-top: 24px;
135
+ }
136
+
137
+ /* 响应式 - 移动端 */
138
+ @media (max-width: 750px) {
139
+ .taskon-email-bind-dialog__title {
140
+ font-size: 18px;
141
+ line-height: 24px;
142
+ margin-bottom: 16px;
143
+ }
144
+
145
+ .taskon-email-bind-dialog__field {
146
+ margin-bottom: 16px;
147
+ }
148
+
149
+ .taskon-email-bind-dialog__label {
150
+ font-size: 13px;
151
+ margin-bottom: 6px;
152
+ }
153
+
154
+ .taskon-email-bind-dialog__actions {
155
+ margin-top: 20px;
156
+ }
157
+ }
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
+ }