vitepress-plugin-filelist 0.2.3 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,33 +1,116 @@
1
+ /*
2
+ * vitepress-plugin-filelist
3
+ *
4
+ * Built on VitePress theme variables, so light / dark follow the site.
5
+ * Wide containers: compact table. Narrow containers (< 560px, container
6
+ * query, not viewport): two-line rows, 44px touch targets and a selection
7
+ * bar that sticks below the theme's fixed bars.
8
+ *
9
+ * Overridable:
10
+ * --fl-sticky-top offset of the sticky selection bar in narrow layout
11
+ * (measured from .VPNav / .VPLocalNav when unset)
12
+ */
1
13
  .fl-root {
14
+ --fl-indent: 24px;
15
+ --fl-row-h: 40px;
16
+ --fl-cols: 40px minmax(0, 1fr) 88px 104px 76px;
17
+ --fl-radius: 12px;
18
+ --fl-sticky: var(--fl-sticky-top, var(--fl-sticky-top-auto, 0px));
19
+ --fl-folder-fill: #f5c451;
20
+ --fl-folder-stroke: #d9a22b;
21
+
22
+ --fl-k-doc-bg: #e8f0fc;
23
+ --fl-k-doc-fg: #1f5fbf;
24
+ --fl-k-sheet-bg: #e6f4ea;
25
+ --fl-k-sheet-fg: #17773a;
26
+ --fl-k-slide-bg: #fdf0e3;
27
+ --fl-k-slide-fg: #a8490a;
28
+ --fl-k-pdf-bg: #fce9ea;
29
+ --fl-k-pdf-fg: #b8232a;
30
+ --fl-k-image-bg: #f3eafd;
31
+ --fl-k-image-fg: #7139b0;
32
+ --fl-k-media-bg: #e3f4f7;
33
+ --fl-k-media-fg: #0c6672;
34
+ --fl-k-archive-bg: #f3eee2;
35
+ --fl-k-archive-fg: #6b5420;
36
+ --fl-k-code-bg: #ececf1;
37
+ --fl-k-code-fg: #45454f;
38
+
39
+ container: fl / inline-size;
2
40
  position: relative;
3
41
  margin: 16px 0;
4
- overflow: hidden;
5
42
  font-size: 14px;
43
+ line-height: 1.4;
44
+ color: var(--vp-c-text-1);
6
45
  background: var(--vp-c-bg);
7
46
  border: 1px solid var(--vp-c-divider);
8
- border-radius: 10px;
47
+ border-radius: var(--fl-radius);
48
+ }
49
+
50
+ .dark .fl-root {
51
+ --fl-folder-fill: #d8a634;
52
+ --fl-folder-stroke: #b4851c;
53
+
54
+ --fl-k-doc-bg: rgb(88 142 240 / 18%);
55
+ --fl-k-doc-fg: #9cc0ff;
56
+ --fl-k-sheet-bg: rgb(64 182 104 / 18%);
57
+ --fl-k-sheet-fg: #86dba1;
58
+ --fl-k-slide-bg: rgb(240 146 64 / 18%);
59
+ --fl-k-slide-fg: #f6b985;
60
+ --fl-k-pdf-bg: rgb(240 84 96 / 18%);
61
+ --fl-k-pdf-fg: #ffa3a9;
62
+ --fl-k-image-bg: rgb(172 112 240 / 20%);
63
+ --fl-k-image-fg: #d4b0ff;
64
+ --fl-k-media-bg: rgb(44 182 204 / 18%);
65
+ --fl-k-media-fg: #86dce8;
66
+ --fl-k-archive-bg: rgb(204 172 100 / 18%);
67
+ --fl-k-archive-fg: #e3cd96;
68
+ --fl-k-code-bg: rgb(152 152 172 / 20%);
69
+ --fl-k-code-fg: #c9c9d4;
70
+ }
71
+
72
+ .fl-root button {
73
+ font: inherit;
74
+ }
75
+
76
+ .fl-root button:focus-visible,
77
+ .fl-root select:focus-visible,
78
+ .fl-root input:focus-visible {
79
+ outline: 2px solid var(--vp-c-brand-1);
80
+ outline-offset: 1px;
9
81
  }
10
82
 
83
+ /* ---------------- toolbar ---------------- */
84
+
11
85
  .fl-bar {
12
86
  display: flex;
13
- flex-wrap: wrap;
14
87
  gap: 8px;
15
88
  align-items: center;
16
- justify-content: space-between;
89
+ min-height: 52px;
90
+ box-sizing: border-box;
17
91
  padding: 10px 12px;
18
- background: var(--vp-c-bg-soft);
92
+ background: var(--vp-c-bg);
19
93
  border-bottom: 1px solid var(--vp-c-divider);
94
+ border-radius: var(--fl-radius) var(--fl-radius) 0 0;
20
95
  }
21
96
 
22
97
  .fl-title {
23
98
  display: flex;
24
- gap: 6px;
99
+ flex: 1 1 auto;
100
+ gap: 8px;
25
101
  align-items: center;
102
+ min-width: 0;
26
103
  font-weight: 600;
27
- color: var(--vp-c-text-1);
104
+ }
105
+
106
+ .fl-title-text {
107
+ overflow: hidden;
108
+ text-overflow: ellipsis;
109
+ white-space: nowrap;
28
110
  }
29
111
 
30
112
  .fl-demo-badge {
113
+ flex: none;
31
114
  padding: 0 8px;
32
115
  font-size: 11px;
33
116
  font-weight: 500;
@@ -37,33 +120,137 @@
37
120
  border-radius: 999px;
38
121
  }
39
122
 
123
+ .fl-selection {
124
+ display: flex;
125
+ flex: none;
126
+ gap: 8px;
127
+ align-items: center;
128
+ }
129
+
130
+ .fl-selection-count {
131
+ height: 28px;
132
+ padding: 0 10px;
133
+ font-size: 13px;
134
+ font-weight: 600;
135
+ line-height: 28px;
136
+ color: var(--vp-c-brand-1);
137
+ white-space: nowrap;
138
+ background: var(--vp-c-brand-soft);
139
+ border-radius: 6px;
140
+ }
141
+
142
+ .fl-selection-size {
143
+ font-size: 13px;
144
+ color: var(--vp-c-text-2);
145
+ white-space: nowrap;
146
+ }
147
+
148
+ .fl-clear {
149
+ display: inline-flex;
150
+ flex: none;
151
+ align-items: center;
152
+ justify-content: center;
153
+ height: 28px;
154
+ padding: 0 8px;
155
+ font-size: 13px;
156
+ color: var(--vp-c-text-2);
157
+ cursor: pointer;
158
+ background: transparent;
159
+ border: 0;
160
+ border-radius: 6px;
161
+ }
162
+
163
+ .fl-clear:hover {
164
+ color: var(--vp-c-text-1);
165
+ background: var(--vp-c-default-soft);
166
+ }
167
+
168
+ .fl-clear-icon {
169
+ display: none;
170
+ }
171
+
40
172
  .fl-tools {
41
173
  display: flex;
42
- flex-wrap: wrap;
43
- gap: 6px;
174
+ gap: 8px;
44
175
  align-items: center;
176
+ margin-left: auto;
45
177
  }
46
178
 
47
179
  .fl-search {
48
- width: 140px;
49
- height: 30px;
180
+ display: flex;
181
+ gap: 6px;
182
+ align-items: center;
183
+ width: 180px;
184
+ height: 32px;
185
+ box-sizing: border-box;
50
186
  padding: 0 10px;
187
+ color: var(--vp-c-text-2);
188
+ background: var(--vp-c-bg-soft);
189
+ border: 1px solid var(--vp-c-divider);
190
+ border-radius: 8px;
191
+ transition: border-color 0.2s;
192
+ }
193
+
194
+ .fl-search:focus-within {
195
+ border-color: var(--vp-c-brand-1);
196
+ }
197
+
198
+ .fl-search svg {
199
+ flex: none;
200
+ }
201
+
202
+ .fl-search input {
203
+ width: 100%;
204
+ min-width: 0;
205
+ padding: 0;
206
+ font: inherit;
51
207
  font-size: 13px;
52
208
  color: var(--vp-c-text-1);
209
+ background: transparent;
210
+ border: 0;
211
+ outline: 0;
212
+ }
213
+
214
+ .fl-root .fl-search input:focus-visible {
215
+ outline: 0;
216
+ }
217
+
218
+ .fl-icon-btn {
219
+ display: inline-flex;
220
+ flex: none;
221
+ align-items: center;
222
+ justify-content: center;
223
+ width: 32px;
224
+ height: 32px;
225
+ padding: 0;
226
+ color: var(--vp-c-text-2);
227
+ cursor: pointer;
53
228
  background: var(--vp-c-bg);
54
229
  border: 1px solid var(--vp-c-divider);
55
- border-radius: 6px;
230
+ border-radius: 8px;
231
+ transition: color 0.2s, border-color 0.2s;
232
+ }
233
+
234
+ .fl-icon-btn:hover {
235
+ color: var(--vp-c-brand-1);
236
+ border-color: var(--vp-c-brand-1);
56
237
  }
57
238
 
58
239
  .fl-btn {
59
- height: 30px;
240
+ display: inline-flex;
241
+ flex: none;
242
+ gap: 6px;
243
+ align-items: center;
244
+ justify-content: center;
245
+ height: 32px;
60
246
  padding: 0 12px;
61
247
  font-size: 13px;
62
248
  color: var(--vp-c-text-1);
249
+ white-space: nowrap;
63
250
  cursor: pointer;
64
251
  background: var(--vp-c-bg);
65
252
  border: 1px solid var(--vp-c-divider);
66
- border-radius: 6px;
253
+ border-radius: 8px;
67
254
  }
68
255
 
69
256
  .fl-btn:hover {
@@ -72,23 +259,26 @@
72
259
  }
73
260
 
74
261
  .fl-btn-primary {
75
- color: #fff;
76
- background: var(--vp-c-brand-1);
77
- border-color: var(--vp-c-brand-1);
262
+ font-weight: 600;
263
+ color: var(--vp-button-brand-text, #fff);
264
+ background: var(--vp-button-brand-bg, var(--vp-c-brand-3));
265
+ border-color: var(--vp-button-brand-border, transparent);
78
266
  }
79
267
 
80
268
  .fl-btn-primary:hover {
81
- color: #fff;
82
- opacity: 0.9;
269
+ color: var(--vp-button-brand-hover-text, #fff);
270
+ background: var(--vp-button-brand-hover-bg, var(--vp-c-brand-2));
271
+ border-color: var(--vp-button-brand-hover-border, transparent);
83
272
  }
84
273
 
85
274
  .fl-btn-primary:disabled {
86
- cursor: not-allowed;
87
- opacity: 0.45;
275
+ cursor: progress;
276
+ opacity: 0.7;
88
277
  }
89
278
 
90
279
  .fl-password {
91
280
  display: flex;
281
+ flex-wrap: wrap;
92
282
  gap: 8px;
93
283
  align-items: center;
94
284
  padding: 10px 12px;
@@ -98,101 +288,146 @@
98
288
  }
99
289
 
100
290
  .fl-password input {
101
- height: 30px;
291
+ height: 32px;
292
+ box-sizing: border-box;
102
293
  padding: 0 10px;
294
+ font: inherit;
103
295
  color: var(--vp-c-text-1);
104
296
  background: var(--vp-c-bg);
105
297
  border: 1px solid var(--vp-c-divider);
106
- border-radius: 6px;
298
+ border-radius: 8px;
107
299
  }
108
300
 
301
+ /* ---------------- table ---------------- */
302
+
109
303
  .fl-row {
110
304
  display: grid;
111
- grid-template-columns: 34px minmax(0, 1fr) 96px 116px 66px;
112
- column-gap: 6px;
305
+ grid-template-columns: var(--fl-cols);
113
306
  align-items: center;
114
- min-height: 44px;
115
- padding: 4px 8px 4px 4px;
307
+ min-height: var(--fl-row-h);
308
+ padding: 0 8px;
116
309
  color: var(--vp-c-text-1);
117
310
  border-bottom: 1px solid var(--vp-c-divider);
311
+ scroll-margin-top: calc(var(--fl-sticky) + 64px);
118
312
  }
119
313
 
120
- .fl-row:last-of-type {
121
- border-bottom: none;
122
- }
123
-
124
- .fl-row:hover {
314
+ .fl-row:not(.fl-head):hover {
125
315
  background: var(--vp-c-bg-soft);
126
316
  }
127
317
 
128
- .fl-row-selected {
318
+ .fl-row.fl-row-selected,
319
+ .fl-row.fl-row-selected:hover {
129
320
  background: var(--vp-c-brand-soft);
130
321
  }
131
322
 
132
323
  .fl-head {
133
324
  min-height: 36px;
134
- font-size: 12.5px;
325
+ font-size: 12px;
135
326
  font-weight: 600;
136
327
  color: var(--vp-c-text-2);
137
- cursor: pointer;
138
328
  background: var(--vp-c-bg-soft);
139
329
  user-select: none;
140
330
  }
141
331
 
142
- .fl-sort {
143
- margin-left: 3px;
144
- font-size: 10px;
145
- color: var(--vp-c-brand-1);
332
+ .fl-sort-btn {
333
+ display: inline-flex;
334
+ gap: 4px;
335
+ align-items: center;
336
+ padding: 0;
337
+ font-weight: 600;
338
+ color: inherit;
339
+ cursor: pointer;
340
+ background: transparent;
341
+ border: 0;
146
342
  }
147
343
 
148
- .fl-cell {
149
- display: flex;
150
- align-items: center;
151
- min-width: 0;
344
+ .fl-sort-btn:hover {
345
+ color: var(--vp-c-text-1);
152
346
  }
153
347
 
154
- .fl-cell-size,
155
- .fl-cell-date {
156
- font-size: 13px;
157
- color: var(--vp-c-text-2);
158
- white-space: nowrap;
348
+ .fl-sort {
349
+ font-size: 9px;
350
+ color: var(--vp-c-brand-1);
159
351
  }
160
352
 
161
- .fl-cell-size {
162
- justify-content: flex-end;
353
+ .fl-sort-select {
354
+ display: none;
163
355
  }
164
356
 
165
- .fl-cell-date {
166
- justify-content: flex-end;
357
+ .fl-cell {
358
+ display: flex;
359
+ align-items: center;
360
+ min-width: 0;
167
361
  }
168
362
 
169
363
  .fl-cell-check {
170
364
  justify-content: center;
365
+ align-self: stretch;
366
+ cursor: pointer;
171
367
  }
172
368
 
173
369
  .fl-cell-check input {
174
370
  width: 15px;
175
371
  height: 15px;
372
+ margin: 0;
176
373
  cursor: pointer;
177
374
  accent-color: var(--vp-c-brand-1);
178
375
  }
179
376
 
377
+ .fl-cell-name {
378
+ gap: 8px;
379
+ align-self: stretch;
380
+ }
381
+
382
+ .fl-cell-size,
383
+ .fl-cell-date {
384
+ justify-content: flex-end;
385
+ font-size: 13px;
386
+ font-variant-numeric: tabular-nums;
387
+ color: var(--vp-c-text-2);
388
+ white-space: nowrap;
389
+ }
390
+
180
391
  .fl-cell-op {
181
- gap: 6px;
392
+ gap: 2px;
182
393
  justify-content: flex-end;
183
394
  }
184
395
 
396
+ /* indentation with one guide line per level, under the parent's chevron */
397
+ .fl-indent {
398
+ flex: none;
399
+ align-self: stretch;
400
+ width: calc(var(--fl-depth, 0) * var(--fl-indent));
401
+ margin-right: -8px;
402
+ background-image: repeating-linear-gradient(
403
+ to right,
404
+ transparent 0,
405
+ transparent 8.5px,
406
+ var(--vp-c-divider) 8.5px,
407
+ var(--vp-c-divider) 9.5px,
408
+ transparent 9.5px,
409
+ transparent var(--fl-indent)
410
+ );
411
+ }
412
+
185
413
  .fl-arrow {
414
+ display: inline-flex;
186
415
  flex: none;
187
- width: 20px;
188
- height: 24px;
416
+ align-items: center;
417
+ justify-content: center;
418
+ width: 18px;
419
+ height: 18px;
189
420
  padding: 0;
190
- font-size: 12px;
191
421
  color: var(--vp-c-text-2);
192
422
  cursor: pointer;
193
- background: none;
194
- border: none;
195
- transition: transform 0.15s;
423
+ background: transparent;
424
+ border: 0;
425
+ border-radius: 4px;
426
+ transition: transform 0.15s, color 0.15s;
427
+ }
428
+
429
+ .fl-arrow:hover {
430
+ color: var(--vp-c-text-1);
196
431
  }
197
432
 
198
433
  .fl-arrow-open {
@@ -201,16 +436,51 @@
201
436
 
202
437
  .fl-arrow-placeholder {
203
438
  flex: none;
204
- width: 20px;
439
+ width: 18px;
205
440
  }
206
441
 
207
- .fl-name {
442
+ .fl-folder-icon {
443
+ flex: none;
444
+ fill: var(--fl-folder-fill);
445
+ stroke: var(--fl-folder-stroke);
446
+ stroke-width: 1.2;
447
+ }
448
+
449
+ .fl-type {
208
450
  display: inline-flex;
209
- gap: 7px;
451
+ flex: none;
210
452
  align-items: center;
453
+ justify-content: center;
454
+ width: 34px;
455
+ height: 20px;
456
+ overflow: hidden;
457
+ font-size: 9.5px;
458
+ font-weight: 700;
459
+ letter-spacing: 0.02em;
460
+ color: var(--fl-k-fg, var(--vp-c-text-2));
461
+ background: var(--fl-k-bg, var(--vp-c-default-soft));
462
+ border-radius: 5px;
463
+ }
464
+
465
+ .fl-type[data-kind='doc'] { --fl-k-bg: var(--fl-k-doc-bg); --fl-k-fg: var(--fl-k-doc-fg); }
466
+ .fl-type[data-kind='sheet'] { --fl-k-bg: var(--fl-k-sheet-bg); --fl-k-fg: var(--fl-k-sheet-fg); }
467
+ .fl-type[data-kind='slide'] { --fl-k-bg: var(--fl-k-slide-bg); --fl-k-fg: var(--fl-k-slide-fg); }
468
+ .fl-type[data-kind='pdf'] { --fl-k-bg: var(--fl-k-pdf-bg); --fl-k-fg: var(--fl-k-pdf-fg); }
469
+ .fl-type[data-kind='image'] { --fl-k-bg: var(--fl-k-image-bg); --fl-k-fg: var(--fl-k-image-fg); }
470
+ .fl-type[data-kind='media'] { --fl-k-bg: var(--fl-k-media-bg); --fl-k-fg: var(--fl-k-media-fg); }
471
+ .fl-type[data-kind='archive'] { --fl-k-bg: var(--fl-k-archive-bg); --fl-k-fg: var(--fl-k-archive-fg); }
472
+ .fl-type[data-kind='code'] { --fl-k-bg: var(--fl-k-code-bg); --fl-k-fg: var(--fl-k-code-fg); }
473
+
474
+ .fl-label {
475
+ display: flex;
476
+ flex-direction: column;
211
477
  min-width: 0;
212
- line-height: 1.45;
213
- overflow-wrap: anywhere;
478
+ }
479
+
480
+ .fl-name {
481
+ overflow: hidden;
482
+ text-overflow: ellipsis;
483
+ white-space: nowrap;
214
484
  cursor: pointer;
215
485
  }
216
486
 
@@ -218,46 +488,60 @@
218
488
  color: var(--vp-c-brand-1);
219
489
  }
220
490
 
221
- .fl-folder-icon {
222
- font-size: 15px;
491
+ .fl-name-dir {
492
+ font-weight: 600;
223
493
  }
224
494
 
225
- .fl-ext-badge {
495
+ .fl-meta {
496
+ display: none;
497
+ }
498
+
499
+ .fl-count {
226
500
  flex: none;
227
- padding: 1px 4px;
228
- font-size: 10px;
229
- font-weight: 700;
230
- letter-spacing: 0.3px;
231
- color: var(--vp-c-brand-1);
232
- background: var(--vp-c-bg-soft);
233
- border: 1px solid var(--vp-c-divider);
234
- border-radius: 4px;
501
+ font-size: 12px;
502
+ color: var(--vp-c-text-2);
235
503
  }
236
504
 
237
- .fl-download {
505
+ .fl-loading {
506
+ color: var(--vp-c-text-2);
507
+ }
508
+
509
+ .fl-action {
238
510
  display: inline-flex;
511
+ flex: none;
239
512
  align-items: center;
240
513
  justify-content: center;
241
514
  width: 28px;
242
515
  height: 28px;
243
516
  padding: 0;
244
- font-size: 14px;
245
517
  color: var(--vp-c-text-2);
246
518
  cursor: pointer;
247
- background: none;
248
- border: none;
519
+ background: transparent;
520
+ border: 0;
249
521
  border-radius: 6px;
522
+ transition: transform 0.15s, color 0.15s, background-color 0.15s;
250
523
  }
251
524
 
252
- .fl-download:hover {
525
+ .fl-action:hover {
253
526
  color: var(--vp-c-brand-1);
254
- background: var(--vp-c-bg-soft);
527
+ background: var(--vp-c-default-soft);
255
528
  }
256
529
 
530
+ .fl-arrow-end {
531
+ display: none;
532
+ }
533
+
534
+ .fl-arrow-end.fl-arrow-open {
535
+ transform: rotate(90deg);
536
+ }
537
+
538
+ /* ---------------- states & footer ---------------- */
539
+
257
540
  .fl-status {
258
541
  padding: 26px 12px;
259
542
  color: var(--vp-c-text-2);
260
543
  text-align: center;
544
+ border-bottom: 1px solid var(--vp-c-divider);
261
545
  }
262
546
 
263
547
  .fl-error {
@@ -270,15 +554,16 @@
270
554
  color: var(--vp-c-text-2);
271
555
  }
272
556
 
273
- .fl-loading {
274
- color: var(--vp-c-text-2);
275
- }
276
-
277
557
  .fl-foot {
278
- padding: 6px 12px;
558
+ display: flex;
559
+ flex-wrap: wrap;
560
+ gap: 4px 12px;
561
+ justify-content: space-between;
562
+ padding: 9px 16px;
279
563
  font-size: 12px;
280
- color: var(--vp-c-text-3);
281
- border-top: 1px solid var(--vp-c-divider);
564
+ color: var(--vp-c-text-2);
565
+ background: var(--vp-c-bg-soft);
566
+ border-radius: 0 0 var(--fl-radius) var(--fl-radius);
282
567
  }
283
568
 
284
569
  .fl-toast {
@@ -299,21 +584,221 @@
299
584
  transform: translateX(-50%);
300
585
  }
301
586
 
302
- @media (max-width: 640px) {
587
+ /* ---------------- narrow containers ---------------- */
588
+
589
+ @container fl (max-width: 559px) {
590
+ .fl-bar {
591
+ padding: 10px;
592
+ }
593
+
594
+ .fl-title {
595
+ display: none;
596
+ }
597
+
598
+ .fl-tools {
599
+ flex: 1 1 auto;
600
+ min-width: 0;
601
+ margin-left: 0;
602
+ }
603
+
604
+ .fl-search {
605
+ flex: 1 1 auto;
606
+ width: auto;
607
+ height: 40px;
608
+ padding: 0 12px;
609
+ }
610
+
611
+ /* 16px keeps iOS Safari from zooming in on focus */
612
+ .fl-search input {
613
+ font-size: 16px;
614
+ }
615
+
616
+ .fl-icon-btn {
617
+ width: 44px;
618
+ height: 40px;
619
+ }
620
+
621
+ /* selecting: the toolbar becomes a sticky action bar */
622
+ .fl-selecting .fl-bar {
623
+ position: sticky;
624
+ top: var(--fl-sticky);
625
+ z-index: 10;
626
+ min-height: 61px;
627
+ padding: 8px 8px 8px 4px;
628
+ background: linear-gradient(var(--vp-c-brand-soft), var(--vp-c-brand-soft)), var(--vp-c-bg);
629
+ box-shadow: 0 2px 8px rgb(0 0 0 / 8%);
630
+ }
631
+
632
+ .fl-selecting .fl-tools {
633
+ display: none;
634
+ }
635
+
636
+ .fl-selecting .fl-selection {
637
+ flex: 1 1 auto;
638
+ flex-direction: column;
639
+ gap: 0;
640
+ align-items: flex-start;
641
+ min-width: 0;
642
+ }
643
+
644
+ .fl-selecting .fl-selection-count {
645
+ height: auto;
646
+ padding: 0;
647
+ font-size: 15px;
648
+ line-height: 1.35;
649
+ background: transparent;
650
+ }
651
+
652
+ .fl-selecting .fl-selection-size {
653
+ font-size: 12px;
654
+ }
655
+
656
+ .fl-clear {
657
+ order: -1;
658
+ width: 44px;
659
+ height: 44px;
660
+ padding: 0;
661
+ color: var(--vp-c-brand-1);
662
+ border-radius: 10px;
663
+ }
664
+
665
+ .fl-clear-icon {
666
+ display: block;
667
+ }
668
+
669
+ .fl-clear-text {
670
+ display: none;
671
+ }
672
+
673
+ .fl-bar .fl-btn-primary {
674
+ height: 44px;
675
+ padding: 0 14px;
676
+ font-size: 14px;
677
+ border-radius: 10px;
678
+ }
679
+
680
+ /* rows (container queries cannot restyle .fl-root itself) */
303
681
  .fl-row {
304
- grid-template-columns: 28px minmax(0, 1fr) 64px 64px;
682
+ --fl-indent: 16px;
683
+ --fl-row-h: 56px;
684
+ --fl-cols: 44px minmax(0, 1fr) auto;
685
+
686
+ padding: 0 4px 0 0;
687
+ }
688
+
689
+ .fl-head {
690
+ min-height: 40px;
691
+ padding-right: 8px;
305
692
  }
306
693
 
694
+ .fl-cell-size,
307
695
  .fl-cell-date {
308
696
  display: none;
309
697
  }
310
698
 
311
- .fl-search {
312
- width: 110px;
699
+ .fl-sort-select {
700
+ position: relative;
701
+ display: inline-flex;
702
+ gap: 4px;
703
+ align-items: center;
704
+ height: 32px;
705
+ font-weight: 500;
706
+ cursor: pointer;
707
+ }
708
+
709
+ .fl-sort-current {
710
+ font-weight: 600;
711
+ color: var(--vp-c-brand-1);
712
+ }
713
+
714
+ .fl-sort-select::after {
715
+ width: 0;
716
+ height: 0;
717
+ content: '';
718
+ border-top: 5px solid var(--vp-c-brand-1);
719
+ border-right: 4px solid transparent;
720
+ border-left: 4px solid transparent;
721
+ }
722
+
723
+ /* the native select sits invisibly on top, so tapping opens the system picker */
724
+ .fl-sort-select select {
725
+ position: absolute;
726
+ inset: 0;
727
+ width: 100%;
728
+ height: 100%;
729
+ font-size: 16px;
730
+ cursor: pointer;
731
+ opacity: 0;
732
+ }
733
+
734
+ /* the compact select replaces the clickable header in narrow layout */
735
+ .fl-head .fl-cell-name .fl-sort {
736
+ display: none;
737
+ }
738
+
739
+ .fl-head .fl-sort-btn {
740
+ cursor: default;
741
+ pointer-events: none;
742
+ }
743
+
744
+ .fl-cell-check input {
745
+ width: 17px;
746
+ height: 17px;
747
+ }
748
+
749
+ .fl-arrow,
750
+ .fl-arrow-placeholder,
751
+ .fl-count {
752
+ display: none;
753
+ }
754
+
755
+ .fl-indent {
756
+ margin-right: 0;
757
+ }
758
+
759
+ .fl-type {
760
+ width: 36px;
761
+ height: 22px;
762
+ }
763
+
764
+ .fl-folder-icon {
765
+ width: 20px;
766
+ height: 20px;
767
+ }
768
+
769
+ .fl-label {
770
+ gap: 1px;
771
+ }
772
+
773
+ .fl-name {
774
+ font-size: 15px;
775
+ }
776
+
777
+ .fl-meta {
778
+ display: block;
779
+ overflow: hidden;
780
+ font-size: 12px;
781
+ font-variant-numeric: tabular-nums;
782
+ color: var(--vp-c-text-2);
783
+ text-overflow: ellipsis;
784
+ white-space: nowrap;
785
+ }
786
+
787
+ .fl-meta:empty {
788
+ display: none;
789
+ }
790
+
791
+ .fl-action {
792
+ width: 44px;
793
+ height: 44px;
794
+ border-radius: 10px;
795
+ }
796
+
797
+ .fl-arrow-end {
798
+ display: inline-flex;
313
799
  }
314
800
 
315
- .fl-download {
316
- width: 26px;
317
- height: 26px;
801
+ .fl-foot {
802
+ padding: 10px 12px;
318
803
  }
319
804
  }