@taskon/widget-react 0.0.1-beta.3 → 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 +1 -1
- package/dist/CommunityTaskList.css +1222 -1174
- package/dist/EligibilityInfo.css +443 -263
- package/dist/LeaderboardWidget.css +355 -152
- package/dist/Quest.css +690 -408
- package/dist/TaskOnProvider.css +35 -16
- package/dist/UserCenterWidget.css +116 -71
- package/dist/UserCenterWidget2.css +1285 -748
- package/dist/chunks/{CommunityTaskList-C9mPl_31.js → CommunityTaskList-C9Gv8KOF.js} +65 -17
- package/dist/chunks/{EligibilityInfo-DGBffKN8.js → EligibilityInfo-D-Fuy9GE.js} +4 -4
- package/dist/chunks/{LeaderboardWidget-DPOQVXkT.js → LeaderboardWidget-BV2D2q1N.js} +2 -2
- package/dist/chunks/{PageBuilder-WCZvxL2j.js → PageBuilder-DQoU4Mwf.js} +5 -5
- package/dist/chunks/{Quest-DjGH_8bx.js → Quest-B5NyVr3o.js} +56 -15
- package/dist/chunks/{TaskOnProvider-iannERG1.js → TaskOnProvider-93UxARFo.js} +1 -1
- package/dist/chunks/{ThemeProvider-DNJqI2lD.js → ThemeProvider-CPI_roeh.js} +3 -3
- package/dist/chunks/{UserCenterWidget-CAhgp46j.js → UserCenterWidget-BRtigY_S.js} +6 -5
- package/dist/chunks/{UserCenterWidget-B0O-f_xl.js → UserCenterWidget-cADBSVg7.js} +21 -7
- package/dist/chunks/{dynamic-import-helper-B2j_dZ4V.js → dynamic-import-helper-DwXlQC0S.js} +1 -1
- package/dist/community-task.js +1 -1
- package/dist/core.js +2 -2
- package/dist/dynamic-import-helper.css +424 -303
- package/dist/index.js +9 -9
- package/dist/leaderboard.js +2 -2
- package/dist/page-builder.js +1 -1
- package/dist/quest.js +1 -1
- package/dist/user-center.js +5 -5
- package/package.json +4 -1
|
@@ -4,7 +4,21 @@
|
|
|
4
4
|
* 使用 taskon-dialog-* 命名空间
|
|
5
5
|
*/
|
|
6
6
|
|
|
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
|
+
/*
|
|
15
|
+
* Desktop-up mixin:
|
|
16
|
+
* 1) Enable desktop enhancement in wider containers
|
|
17
|
+
* 2) Keep viewport media query as fallback
|
|
18
|
+
*/
|
|
19
|
+
|
|
7
20
|
/* ==================== 遮罩层 ==================== */
|
|
21
|
+
|
|
8
22
|
.taskon-dialog-overlay {
|
|
9
23
|
position: fixed;
|
|
10
24
|
inset: 0;
|
|
@@ -40,6 +54,7 @@
|
|
|
40
54
|
}
|
|
41
55
|
|
|
42
56
|
/* ==================== 弹窗内容 ==================== */
|
|
57
|
+
|
|
43
58
|
.taskon-dialog-content {
|
|
44
59
|
position: fixed;
|
|
45
60
|
top: 50%;
|
|
@@ -48,14 +63,14 @@
|
|
|
48
63
|
z-index: 9999;
|
|
49
64
|
|
|
50
65
|
/* 尺寸 */
|
|
51
|
-
width:
|
|
66
|
+
width: 95vw;
|
|
52
67
|
max-width: 500px;
|
|
53
|
-
max-height:
|
|
68
|
+
max-height: 90vh;
|
|
54
69
|
|
|
55
70
|
/* 弹层统一使用 floating 背景 token */
|
|
56
71
|
background-color: var(--taskon-color-bg-floating);
|
|
57
72
|
color: var(--taskon-color-text);
|
|
58
|
-
border-radius: var(--taskon-border-radius
|
|
73
|
+
border-radius: var(--taskon-border-radius);
|
|
59
74
|
box-shadow: 0 25px 50px -12px var(--taskon-color-bg-mask);
|
|
60
75
|
|
|
61
76
|
/* 布局 */
|
|
@@ -97,6 +112,7 @@
|
|
|
97
112
|
}
|
|
98
113
|
|
|
99
114
|
/* ==================== 无障碍标题/描述(屏幕阅读器可见) ==================== */
|
|
115
|
+
|
|
100
116
|
.taskon-dialog-title--sr-only,
|
|
101
117
|
.taskon-dialog-description--sr-only {
|
|
102
118
|
position: absolute;
|
|
@@ -111,10 +127,11 @@
|
|
|
111
127
|
}
|
|
112
128
|
|
|
113
129
|
/* ==================== 头部操作区 ==================== */
|
|
130
|
+
|
|
114
131
|
.taskon-dialog-header {
|
|
115
132
|
position: absolute;
|
|
116
|
-
top:
|
|
117
|
-
right:
|
|
133
|
+
top: 12px;
|
|
134
|
+
right: 12px;
|
|
118
135
|
z-index: 1;
|
|
119
136
|
|
|
120
137
|
display: flex;
|
|
@@ -128,6 +145,7 @@
|
|
|
128
145
|
}
|
|
129
146
|
|
|
130
147
|
/* ==================== 关闭按钮 ==================== */
|
|
148
|
+
|
|
131
149
|
.taskon-dialog-close {
|
|
132
150
|
display: flex;
|
|
133
151
|
align-items: center;
|
|
@@ -157,361 +175,435 @@
|
|
|
157
175
|
}
|
|
158
176
|
|
|
159
177
|
/* ==================== 主体内容 ==================== */
|
|
178
|
+
|
|
160
179
|
.taskon-dialog-body {
|
|
161
180
|
flex: 1;
|
|
162
181
|
overflow-y: auto;
|
|
163
|
-
padding:
|
|
182
|
+
padding: 20px;
|
|
164
183
|
}
|
|
165
184
|
|
|
166
185
|
.taskon-dialog-body--no-padding {
|
|
167
186
|
padding: 0;
|
|
168
187
|
}
|
|
169
188
|
|
|
170
|
-
/* ====================
|
|
171
|
-
|
|
189
|
+
/* ==================== Desktop 增强 ==================== */
|
|
190
|
+
|
|
191
|
+
@supports (container-type: inline-size) {
|
|
192
|
+
@container (min-width: 751px) {
|
|
172
193
|
.taskon-dialog-content {
|
|
173
|
-
width:
|
|
174
|
-
max-height:
|
|
175
|
-
border-radius: var(--taskon-border-radius);
|
|
194
|
+
width: 90vw;
|
|
195
|
+
max-height: 85vh;
|
|
196
|
+
border-radius: var(--taskon-border-radius-lg);
|
|
176
197
|
}
|
|
177
198
|
|
|
178
199
|
.taskon-dialog-body {
|
|
179
|
-
padding:
|
|
200
|
+
padding: 24px;
|
|
180
201
|
}
|
|
181
202
|
|
|
182
203
|
.taskon-dialog-header {
|
|
183
|
-
top:
|
|
184
|
-
right:
|
|
204
|
+
top: 16px;
|
|
205
|
+
right: 16px;
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
@supports not (container-type: inline-size) {
|
|
211
|
+
@media (min-width: 751px) {
|
|
212
|
+
.taskon-dialog-content {
|
|
213
|
+
width: 90vw;
|
|
214
|
+
max-height: 85vh;
|
|
215
|
+
border-radius: var(--taskon-border-radius-lg);
|
|
185
216
|
}
|
|
217
|
+
|
|
218
|
+
.taskon-dialog-body {
|
|
219
|
+
padding: 24px;
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
.taskon-dialog-header {
|
|
223
|
+
top: 16px;
|
|
224
|
+
right: 16px;
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
/**
|
|
229
|
+
* Pagination 通用分页组件样式
|
|
230
|
+
* @description 使用 taskon-pagination 命名空间
|
|
231
|
+
*
|
|
232
|
+
* 设计参考 Figma: node-id=4000-1995
|
|
233
|
+
* - 按钮: 30x30px 圆形
|
|
234
|
+
* - 页码: 16px Regular
|
|
235
|
+
* - 当前页: 高强调文字
|
|
236
|
+
* - 分隔符+总页数: 次级文字
|
|
237
|
+
*/
|
|
238
|
+
|
|
239
|
+
/*
|
|
240
|
+
* Responsive base styles
|
|
241
|
+
*
|
|
242
|
+
* Keep mobile breakpoints and fallback patterns centralized here.
|
|
243
|
+
* Components should reuse these mixins instead of duplicating query logic.
|
|
244
|
+
*/
|
|
245
|
+
|
|
246
|
+
/*
|
|
247
|
+
* Desktop-up mixin:
|
|
248
|
+
* 1) Enable desktop enhancement in wider containers
|
|
249
|
+
* 2) Keep viewport media query as fallback
|
|
250
|
+
*/
|
|
251
|
+
|
|
252
|
+
/* ==================== 容器 ==================== */
|
|
253
|
+
|
|
254
|
+
.taskon-pagination {
|
|
255
|
+
display: flex;
|
|
256
|
+
align-items: center;
|
|
257
|
+
justify-content: center;
|
|
258
|
+
width: 100%;
|
|
259
|
+
gap: var(--taskon-spacing-sm);
|
|
260
|
+
padding: 12px 0;
|
|
186
261
|
}
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
.taskon-pagination-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
}
|
|
244
|
-
|
|
245
|
-
/* ==================== 图标 ==================== */
|
|
246
|
-
.taskon-pagination-icon {
|
|
247
|
-
width: 16px;
|
|
248
|
-
height: 16px;
|
|
249
|
-
}
|
|
250
|
-
|
|
251
|
-
/* ==================== 按钮样式 - 圆形按钮 ==================== */
|
|
252
|
-
.taskon-pagination-btn {
|
|
253
|
-
display: inline-flex;
|
|
254
|
-
align-items: center;
|
|
262
|
+
|
|
263
|
+
/* ==================== 范围信息 ==================== */
|
|
264
|
+
|
|
265
|
+
.taskon-pagination-range {
|
|
266
|
+
font-size: 14px;
|
|
267
|
+
color: var(--taskon-color-text-secondary);
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
/* ==================== 控制区 ==================== */
|
|
271
|
+
|
|
272
|
+
.taskon-pagination-controls {
|
|
273
|
+
display: flex;
|
|
274
|
+
align-items: center;
|
|
275
|
+
gap: 16px;
|
|
276
|
+
}
|
|
277
|
+
|
|
278
|
+
/* ==================== 页码信息 - 基于 Figma 设计 ==================== */
|
|
279
|
+
|
|
280
|
+
.taskon-pagination-info {
|
|
281
|
+
display: flex;
|
|
282
|
+
align-items: center;
|
|
283
|
+
font-size: 16px;
|
|
284
|
+
font-weight: 400;
|
|
285
|
+
white-space: nowrap;
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
/* 当前页码 */
|
|
289
|
+
|
|
290
|
+
.taskon-pagination-info-current {
|
|
291
|
+
color: var(--taskon-color-text);
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
/* 分隔符 */
|
|
295
|
+
|
|
296
|
+
.taskon-pagination-info-separator {
|
|
297
|
+
color: var(--taskon-color-text-disabled);
|
|
298
|
+
}
|
|
299
|
+
|
|
300
|
+
/* 总页数 */
|
|
301
|
+
|
|
302
|
+
.taskon-pagination-info-total {
|
|
303
|
+
color: var(--taskon-color-text-disabled);
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
/* ==================== 图标 ==================== */
|
|
307
|
+
|
|
308
|
+
.taskon-pagination-icon {
|
|
309
|
+
width: 16px;
|
|
310
|
+
height: 16px;
|
|
311
|
+
}
|
|
312
|
+
|
|
313
|
+
/* ==================== 按钮样式 - 圆形按钮 ==================== */
|
|
314
|
+
|
|
315
|
+
.taskon-pagination-btn {
|
|
316
|
+
display: inline-flex;
|
|
317
|
+
align-items: center;
|
|
255
318
|
justify-content: center;
|
|
256
319
|
width: 30px;
|
|
257
320
|
height: 30px;
|
|
258
|
-
min-width: 30px !important;
|
|
259
|
-
padding: 0 !important;
|
|
260
|
-
border-radius: 50% !important;
|
|
261
|
-
background-color: transparent !important;
|
|
262
|
-
border: 1px solid var(--taskon-color-border
|
|
263
|
-
color: var(--taskon-color-text
|
|
264
|
-
transition: all 0.2s ease;
|
|
265
|
-
}
|
|
266
|
-
|
|
267
|
-
.taskon-pagination-btn:hover:not(:disabled) {
|
|
268
|
-
background-color: var(--taskon-color-bg-
|
|
269
|
-
border-color: var(--taskon-color-border
|
|
270
|
-
}
|
|
271
|
-
|
|
321
|
+
min-width: 30px !important;
|
|
322
|
+
padding: 0 !important;
|
|
323
|
+
border-radius: 50% !important;
|
|
324
|
+
background-color: transparent !important;
|
|
325
|
+
border: 1px solid var(--taskon-color-border-secondary) !important;
|
|
326
|
+
color: var(--taskon-color-text) !important;
|
|
327
|
+
transition: all 0.2s ease;
|
|
328
|
+
}
|
|
329
|
+
|
|
330
|
+
.taskon-pagination-btn:hover:not(:disabled) {
|
|
331
|
+
background-color: var(--taskon-color-bg-surface-subtle) !important;
|
|
332
|
+
border-color: var(--taskon-color-border) !important;
|
|
333
|
+
}
|
|
334
|
+
|
|
272
335
|
.taskon-pagination-btn:disabled {
|
|
273
336
|
opacity: 0.4;
|
|
274
337
|
cursor: not-allowed;
|
|
275
|
-
}
|
|
276
|
-
|
|
277
|
-
/* ==================== 尺寸变体 ==================== */
|
|
338
|
+
}
|
|
339
|
+
|
|
340
|
+
/* ==================== 尺寸变体 ==================== */
|
|
341
|
+
|
|
278
342
|
.taskon-pagination--small .taskon-pagination-range {
|
|
279
343
|
font-size: 12px;
|
|
280
|
-
}
|
|
281
|
-
|
|
344
|
+
}
|
|
345
|
+
|
|
282
346
|
.taskon-pagination--small .taskon-pagination-info {
|
|
283
347
|
font-size: 14px;
|
|
284
|
-
}
|
|
285
|
-
|
|
348
|
+
}
|
|
349
|
+
|
|
286
350
|
.taskon-pagination--small .taskon-pagination-icon {
|
|
287
351
|
width: 14px;
|
|
288
352
|
height: 14px;
|
|
289
|
-
}
|
|
290
|
-
|
|
291
|
-
.taskon-pagination--small .taskon-pagination-btn {
|
|
292
|
-
width: 24px;
|
|
293
|
-
height: 24px;
|
|
294
|
-
min-width: 24px !important;
|
|
295
|
-
}
|
|
296
|
-
|
|
297
|
-
/* ====================
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
}
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
353
|
+
}
|
|
354
|
+
|
|
355
|
+
.taskon-pagination--small .taskon-pagination-btn {
|
|
356
|
+
width: 24px;
|
|
357
|
+
height: 24px;
|
|
358
|
+
min-width: 24px !important;
|
|
359
|
+
}
|
|
360
|
+
|
|
361
|
+
/* ==================== Desktop 增强 ==================== */
|
|
362
|
+
|
|
363
|
+
@supports (container-type: inline-size) {
|
|
364
|
+
@container (min-width: 751px) {
|
|
365
|
+
.taskon-pagination {
|
|
366
|
+
gap: var(--taskon-spacing-md);
|
|
367
|
+
}
|
|
368
|
+
}
|
|
369
|
+
}
|
|
370
|
+
|
|
371
|
+
@supports not (container-type: inline-size) {
|
|
372
|
+
@media (min-width: 751px) {
|
|
373
|
+
.taskon-pagination {
|
|
374
|
+
gap: var(--taskon-spacing-md);
|
|
375
|
+
}
|
|
376
|
+
}
|
|
377
|
+
}
|
|
378
|
+
/**
|
|
379
|
+
* Table 通用表格组件样式
|
|
380
|
+
*
|
|
314
381
|
* 采用 BEM 命名规范
|
|
315
382
|
* 前缀: taskon-table
|
|
316
383
|
*
|
|
317
384
|
* 设计参考 Figma: node-id=4000-1908
|
|
318
385
|
* - 表头: 半透明背景、圆角、暗色文字
|
|
319
|
-
* - 行: 边框分隔、悬停效果、交替背景
|
|
320
|
-
* - 单元格: 可配置宽度和对齐方式
|
|
321
|
-
*/
|
|
322
|
-
|
|
386
|
+
* - 行: 边框分隔、悬停效果、交替背景
|
|
387
|
+
* - 单元格: 可配置宽度和对齐方式
|
|
388
|
+
*/
|
|
389
|
+
|
|
390
|
+
/*
|
|
391
|
+
* Responsive base styles
|
|
392
|
+
*
|
|
393
|
+
* Keep mobile breakpoints and fallback patterns centralized here.
|
|
394
|
+
* Components should reuse these mixins instead of duplicating query logic.
|
|
395
|
+
*/
|
|
396
|
+
|
|
397
|
+
/*
|
|
398
|
+
* Desktop-up mixin:
|
|
399
|
+
* 1) Enable desktop enhancement in wider containers
|
|
400
|
+
* 2) Keep viewport media query as fallback
|
|
401
|
+
*/
|
|
402
|
+
|
|
323
403
|
/* ============================================================================
|
|
324
404
|
容器
|
|
325
|
-
============================================================================ */
|
|
326
|
-
|
|
405
|
+
============================================================================ */
|
|
406
|
+
|
|
327
407
|
.taskon-table-container {
|
|
328
408
|
width: 100%;
|
|
329
409
|
overflow-x: auto;
|
|
330
410
|
position: relative;
|
|
331
|
-
}
|
|
332
|
-
|
|
411
|
+
}
|
|
412
|
+
|
|
333
413
|
.taskon-table {
|
|
334
414
|
width: 100%;
|
|
335
415
|
border-collapse: separate;
|
|
336
416
|
border-spacing: 0;
|
|
337
|
-
}
|
|
338
|
-
|
|
417
|
+
}
|
|
418
|
+
|
|
339
419
|
/* ============================================================================
|
|
340
420
|
表头 - 参考 Figma 设计:45px 高度,深色半透明背景,无圆角
|
|
341
|
-
============================================================================ */
|
|
342
|
-
|
|
421
|
+
============================================================================ */
|
|
422
|
+
|
|
343
423
|
.taskon-table__head {
|
|
344
424
|
/* 不在 thead 上设置背景,由 th 元素控制 */
|
|
345
|
-
}
|
|
346
|
-
|
|
425
|
+
}
|
|
426
|
+
|
|
347
427
|
.taskon-table__head tr {
|
|
348
428
|
height: 45px;
|
|
349
|
-
}
|
|
350
|
-
|
|
351
|
-
/* 表头单元格 - 16px Regular,深色半透明背景 */
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
font-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
429
|
+
}
|
|
430
|
+
|
|
431
|
+
/* 表头单元格 - 16px Regular,深色半透明背景 */
|
|
432
|
+
|
|
433
|
+
.taskon-table__header {
|
|
434
|
+
padding: var(--taskon-spacing-sm) 12px;
|
|
435
|
+
font-size: 16px;
|
|
436
|
+
font-weight: 400;
|
|
437
|
+
text-align: left;
|
|
438
|
+
line-height: 24px;
|
|
439
|
+
color: var(--taskon-color-text-disabled);
|
|
440
|
+
white-space: nowrap;
|
|
441
|
+
vertical-align: middle;
|
|
442
|
+
background-color: var(--taskon-color-bg-surface-subtle);
|
|
443
|
+
}
|
|
444
|
+
|
|
445
|
+
/* 表头对齐方式 */
|
|
446
|
+
|
|
365
447
|
.taskon-table__header--left {
|
|
366
448
|
text-align: left;
|
|
367
|
-
}
|
|
368
|
-
|
|
449
|
+
}
|
|
450
|
+
|
|
369
451
|
.taskon-table__header--center {
|
|
370
452
|
text-align: center;
|
|
371
|
-
}
|
|
372
|
-
|
|
453
|
+
}
|
|
454
|
+
|
|
373
455
|
.taskon-table__header--right {
|
|
374
456
|
text-align: right;
|
|
375
|
-
}
|
|
376
|
-
|
|
457
|
+
}
|
|
458
|
+
|
|
377
459
|
/* ============================================================================
|
|
378
460
|
表体
|
|
379
|
-
============================================================================ */
|
|
380
|
-
|
|
461
|
+
============================================================================ */
|
|
462
|
+
|
|
381
463
|
.taskon-table__body {
|
|
382
464
|
/* 默认样式 */
|
|
383
|
-
}
|
|
384
|
-
|
|
465
|
+
}
|
|
466
|
+
|
|
385
467
|
/* ============================================================================
|
|
386
468
|
数据行 - 参考 Figma 设计:更大行高(76px),无边框
|
|
387
|
-
============================================================================ */
|
|
388
|
-
|
|
469
|
+
============================================================================ */
|
|
470
|
+
|
|
389
471
|
.taskon-table__row {
|
|
390
472
|
transition: background-color 0.2s ease;
|
|
391
473
|
height: 76px;
|
|
392
|
-
}
|
|
393
|
-
|
|
394
|
-
/* 行边框 - 默认不显示,使用 borderless 类控制 */
|
|
474
|
+
}
|
|
475
|
+
|
|
476
|
+
/* 行边框 - 默认不显示,使用 borderless 类控制 */
|
|
477
|
+
|
|
395
478
|
.taskon-table__row td {
|
|
396
479
|
border-top: none;
|
|
397
480
|
border-bottom: none;
|
|
398
|
-
}
|
|
399
|
-
|
|
400
|
-
/* 需要边框时的样式 */
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
border-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
.taskon-table__row--highlighted
|
|
422
|
-
background-color: var(--taskon-color-primary-bg
|
|
423
|
-
}
|
|
424
|
-
|
|
425
|
-
|
|
481
|
+
}
|
|
482
|
+
|
|
483
|
+
/* 需要边框时的样式 */
|
|
484
|
+
|
|
485
|
+
.taskon-table--bordered .taskon-table__row td {
|
|
486
|
+
border-top: 1px solid var(--taskon-color-border-secondary);
|
|
487
|
+
border-bottom: 1px solid var(--taskon-color-border-secondary);
|
|
488
|
+
}
|
|
489
|
+
|
|
490
|
+
/* 悬停效果 */
|
|
491
|
+
|
|
492
|
+
.taskon-table__row:hover {
|
|
493
|
+
background-color: var(--taskon-color-bg-surface-strong);
|
|
494
|
+
}
|
|
495
|
+
|
|
496
|
+
/* 交替行背景 (striped) */
|
|
497
|
+
|
|
498
|
+
.taskon-table--striped .taskon-table__row:nth-child(even) {
|
|
499
|
+
background-color: var(--taskon-color-bg-surface-subtle);
|
|
500
|
+
}
|
|
501
|
+
|
|
502
|
+
/* 高亮行 */
|
|
503
|
+
|
|
504
|
+
.taskon-table__row--highlighted {
|
|
505
|
+
background-color: var(--taskon-color-primary-bg);
|
|
506
|
+
}
|
|
507
|
+
|
|
508
|
+
.taskon-table__row--highlighted:hover {
|
|
509
|
+
background-color: var(--taskon-color-primary-bg);
|
|
510
|
+
}
|
|
511
|
+
|
|
512
|
+
/* 禁用行 */
|
|
513
|
+
|
|
426
514
|
.taskon-table__row--disabled {
|
|
427
515
|
opacity: 0.4;
|
|
428
|
-
}
|
|
429
|
-
|
|
430
|
-
/* 可点击行 */
|
|
516
|
+
}
|
|
517
|
+
|
|
518
|
+
/* 可点击行 */
|
|
519
|
+
|
|
431
520
|
.taskon-table__row--clickable {
|
|
432
521
|
cursor: pointer;
|
|
433
|
-
}
|
|
434
|
-
|
|
522
|
+
}
|
|
523
|
+
|
|
435
524
|
/* ============================================================================
|
|
436
525
|
单元格 - 参考 Figma 设计:16px SemiBold,白色文字
|
|
437
|
-
============================================================================ */
|
|
438
|
-
|
|
439
|
-
.taskon-table__cell {
|
|
440
|
-
padding:
|
|
441
|
-
font-size: 16px;
|
|
442
|
-
font-weight: 600;
|
|
443
|
-
line-height: 24px;
|
|
444
|
-
color: var(--taskon-color-text
|
|
445
|
-
vertical-align: middle;
|
|
446
|
-
}
|
|
447
|
-
|
|
448
|
-
/* 单元格对齐方式 */
|
|
526
|
+
============================================================================ */
|
|
527
|
+
|
|
528
|
+
.taskon-table__cell {
|
|
529
|
+
padding: var(--taskon-spacing-sm) 12px;
|
|
530
|
+
font-size: 16px;
|
|
531
|
+
font-weight: 600;
|
|
532
|
+
line-height: 24px;
|
|
533
|
+
color: var(--taskon-color-text);
|
|
534
|
+
vertical-align: middle;
|
|
535
|
+
}
|
|
536
|
+
|
|
537
|
+
/* 单元格对齐方式 */
|
|
538
|
+
|
|
449
539
|
.taskon-table__cell--left {
|
|
450
540
|
text-align: left;
|
|
451
|
-
}
|
|
452
|
-
|
|
541
|
+
}
|
|
542
|
+
|
|
453
543
|
.taskon-table__cell--center {
|
|
454
544
|
text-align: center;
|
|
455
|
-
}
|
|
456
|
-
|
|
545
|
+
}
|
|
546
|
+
|
|
457
547
|
.taskon-table__cell--right {
|
|
458
548
|
text-align: right;
|
|
459
|
-
}
|
|
460
|
-
|
|
461
|
-
/* 单元格文本溢出 */
|
|
549
|
+
}
|
|
550
|
+
|
|
551
|
+
/* 单元格文本溢出 */
|
|
552
|
+
|
|
462
553
|
.taskon-table__cell--ellipsis {
|
|
463
554
|
text-overflow: ellipsis;
|
|
464
555
|
overflow: hidden;
|
|
465
556
|
white-space: nowrap;
|
|
466
|
-
}
|
|
467
|
-
|
|
557
|
+
}
|
|
558
|
+
|
|
468
559
|
/* ============================================================================
|
|
469
560
|
空状态和加载状态
|
|
470
|
-
============================================================================ */
|
|
471
|
-
|
|
472
|
-
.taskon-table__loading,
|
|
473
|
-
.taskon-table__empty {
|
|
474
|
-
padding: 40px 16px;
|
|
475
|
-
text-align: center;
|
|
476
|
-
color: var(--taskon-color-text-
|
|
477
|
-
}
|
|
478
|
-
|
|
561
|
+
============================================================================ */
|
|
562
|
+
|
|
563
|
+
.taskon-table__loading,
|
|
564
|
+
.taskon-table__empty {
|
|
565
|
+
padding: 40px 16px;
|
|
566
|
+
text-align: center;
|
|
567
|
+
color: var(--taskon-color-text-disabled);
|
|
568
|
+
}
|
|
569
|
+
|
|
479
570
|
.taskon-table__empty-content {
|
|
480
571
|
display: flex;
|
|
481
572
|
flex-direction: column;
|
|
482
573
|
align-items: center;
|
|
483
574
|
gap: 8px;
|
|
484
|
-
}
|
|
485
|
-
|
|
575
|
+
}
|
|
576
|
+
|
|
486
577
|
.taskon-table__empty-icon {
|
|
487
578
|
font-size: 48px;
|
|
488
579
|
opacity: 0.5;
|
|
489
|
-
}
|
|
490
|
-
|
|
491
|
-
.taskon-table__empty-title {
|
|
492
|
-
font-size: 16px;
|
|
493
|
-
font-weight: 600;
|
|
494
|
-
color: var(--taskon-color-text
|
|
495
|
-
margin: 0;
|
|
496
|
-
}
|
|
497
|
-
|
|
498
|
-
.taskon-table__empty-desc {
|
|
499
|
-
font-size: 14px;
|
|
500
|
-
color: var(--taskon-color-text-
|
|
501
|
-
margin: 0;
|
|
502
|
-
}
|
|
503
|
-
|
|
504
|
-
/* 加载指示器 */
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
border
|
|
511
|
-
border-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
580
|
+
}
|
|
581
|
+
|
|
582
|
+
.taskon-table__empty-title {
|
|
583
|
+
font-size: 16px;
|
|
584
|
+
font-weight: 600;
|
|
585
|
+
color: var(--taskon-color-text);
|
|
586
|
+
margin: 0;
|
|
587
|
+
}
|
|
588
|
+
|
|
589
|
+
.taskon-table__empty-desc {
|
|
590
|
+
font-size: 14px;
|
|
591
|
+
color: var(--taskon-color-text-disabled);
|
|
592
|
+
margin: 0;
|
|
593
|
+
}
|
|
594
|
+
|
|
595
|
+
/* 加载指示器 */
|
|
596
|
+
|
|
597
|
+
.taskon-table__loading-spinner {
|
|
598
|
+
display: inline-block;
|
|
599
|
+
width: 24px;
|
|
600
|
+
height: 24px;
|
|
601
|
+
border: 2px solid var(--taskon-color-text-disabled);
|
|
602
|
+
border-top-color: var(--taskon-color-primary);
|
|
603
|
+
border-radius: 50%;
|
|
604
|
+
animation: taskon-table-spin 0.8s linear infinite;
|
|
605
|
+
}
|
|
606
|
+
|
|
515
607
|
@keyframes taskon-table-spin {
|
|
516
608
|
from {
|
|
517
609
|
transform: rotate(0deg);
|
|
@@ -519,10 +611,11 @@
|
|
|
519
611
|
to {
|
|
520
612
|
transform: rotate(360deg);
|
|
521
613
|
}
|
|
522
|
-
}
|
|
523
|
-
|
|
524
|
-
/* Overlay loading - 覆盖在表格数据上方 */
|
|
525
|
-
|
|
614
|
+
}
|
|
615
|
+
|
|
616
|
+
/* Overlay loading - 覆盖在表格数据上方 */
|
|
617
|
+
|
|
618
|
+
.taskon-table__loading-overlay {
|
|
526
619
|
position: absolute;
|
|
527
620
|
top: 0;
|
|
528
621
|
left: 0;
|
|
@@ -531,45 +624,73 @@
|
|
|
531
624
|
display: flex;
|
|
532
625
|
align-items: center;
|
|
533
626
|
justify-content: center;
|
|
534
|
-
background-color: var(--taskon-color-
|
|
535
|
-
backdrop-filter: blur(2px);
|
|
536
|
-
z-index: 10;
|
|
537
|
-
border-radius:
|
|
538
|
-
}
|
|
539
|
-
|
|
627
|
+
background-color: var(--taskon-color-bg-mask);
|
|
628
|
+
backdrop-filter: blur(2px);
|
|
629
|
+
z-index: 10;
|
|
630
|
+
border-radius: var(--taskon-border-radius-sm);
|
|
631
|
+
}
|
|
632
|
+
|
|
540
633
|
/* ============================================================================
|
|
541
634
|
紧凑模式
|
|
542
|
-
============================================================================ */
|
|
543
|
-
|
|
544
|
-
.taskon-table--compact .taskon-table__header {
|
|
545
|
-
padding:
|
|
546
|
-
}
|
|
547
|
-
|
|
548
|
-
.taskon-table--compact .taskon-table__cell {
|
|
549
|
-
padding:
|
|
550
|
-
}
|
|
551
|
-
|
|
635
|
+
============================================================================ */
|
|
636
|
+
|
|
637
|
+
.taskon-table--compact .taskon-table__header {
|
|
638
|
+
padding: var(--taskon-spacing-xs) var(--taskon-spacing-sm);
|
|
639
|
+
}
|
|
640
|
+
|
|
641
|
+
.taskon-table--compact .taskon-table__cell {
|
|
642
|
+
padding: var(--taskon-spacing-xs) var(--taskon-spacing-sm);
|
|
643
|
+
}
|
|
644
|
+
|
|
552
645
|
/* ============================================================================
|
|
553
646
|
无边框模式
|
|
554
|
-
============================================================================ */
|
|
555
|
-
|
|
647
|
+
============================================================================ */
|
|
648
|
+
|
|
556
649
|
.taskon-table--borderless .taskon-table__row td {
|
|
557
650
|
border-top: none;
|
|
558
651
|
border-bottom: none;
|
|
559
|
-
}
|
|
560
|
-
|
|
561
|
-
/* ============================================================================
|
|
562
|
-
|
|
563
|
-
============================================================================ */
|
|
564
|
-
|
|
565
|
-
@
|
|
566
|
-
|
|
567
|
-
.taskon-
|
|
568
|
-
padding:
|
|
569
|
-
}
|
|
570
|
-
|
|
571
|
-
.taskon-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
652
|
+
}
|
|
653
|
+
|
|
654
|
+
/* ============================================================================
|
|
655
|
+
Desktop 增强
|
|
656
|
+
============================================================================ */
|
|
657
|
+
|
|
658
|
+
@supports (container-type: inline-size) {
|
|
659
|
+
@container (min-width: 751px) {
|
|
660
|
+
.taskon-table__header {
|
|
661
|
+
padding: 10px 20px;
|
|
662
|
+
}
|
|
663
|
+
|
|
664
|
+
.taskon-table__cell {
|
|
665
|
+
padding: var(--taskon-spacing-md) 20px;
|
|
666
|
+
}
|
|
667
|
+
|
|
668
|
+
.taskon-table--compact .taskon-table__header {
|
|
669
|
+
padding: var(--taskon-spacing-xs) 12px;
|
|
670
|
+
}
|
|
671
|
+
|
|
672
|
+
.taskon-table--compact .taskon-table__cell {
|
|
673
|
+
padding: 12px;
|
|
674
|
+
}
|
|
675
|
+
}
|
|
676
|
+
}
|
|
677
|
+
|
|
678
|
+
@supports not (container-type: inline-size) {
|
|
679
|
+
@media (min-width: 751px) {
|
|
680
|
+
.taskon-table__header {
|
|
681
|
+
padding: 10px 20px;
|
|
682
|
+
}
|
|
683
|
+
|
|
684
|
+
.taskon-table__cell {
|
|
685
|
+
padding: var(--taskon-spacing-md) 20px;
|
|
686
|
+
}
|
|
687
|
+
|
|
688
|
+
.taskon-table--compact .taskon-table__header {
|
|
689
|
+
padding: var(--taskon-spacing-xs) 12px;
|
|
690
|
+
}
|
|
691
|
+
|
|
692
|
+
.taskon-table--compact .taskon-table__cell {
|
|
693
|
+
padding: 12px;
|
|
694
|
+
}
|
|
695
|
+
}
|
|
696
|
+
}
|