mbkbucket 1.5.0 → 2.0.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.
- package/.env.example +2 -2
- package/README.md +72 -0
- package/index.d.ts +87 -49
- package/index.js +15 -13
- package/lib/config/index.js +9 -89
- package/lib/config/validation.js +86 -0
- package/lib/routes/api.js +139 -45
- package/lib/routes/index.js +70 -1
- package/lib/routes/view.js +71 -18
- package/lib/s3.js +64 -32
- package/package.json +2 -2
- package/public/bucketadmin.css +447 -17
- package/public/bucketadmin.js +272 -82
- package/test/config-validation.test.js +116 -0
- package/views/bucket.handlebars +66 -31
- package/views/bucketadmincontent.handlebars +30 -9
- package/views/bucketportal.handlebars +1 -0
package/public/bucketadmin.css
CHANGED
|
@@ -48,6 +48,12 @@
|
|
|
48
48
|
display: flex;
|
|
49
49
|
justify-content: space-between;
|
|
50
50
|
align-items: center;
|
|
51
|
+
cursor: pointer;
|
|
52
|
+
transition: background 0.25s ease, box-shadow 0.25s ease;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
.upload-card-header:hover {
|
|
56
|
+
background: linear-gradient(122deg, #064c47 0%, #0b6b64 52%, #0f7e75 100%);
|
|
51
57
|
}
|
|
52
58
|
|
|
53
59
|
.collapse-btn {
|
|
@@ -73,16 +79,53 @@
|
|
|
73
79
|
}
|
|
74
80
|
|
|
75
81
|
.collapsible-content {
|
|
76
|
-
padding:
|
|
82
|
+
padding: 0 !important;
|
|
77
83
|
max-height: 0;
|
|
78
84
|
overflow: hidden;
|
|
79
|
-
|
|
85
|
+
opacity: 0;
|
|
86
|
+
transform: translateY(-10px);
|
|
87
|
+
border-top: 1px solid transparent;
|
|
88
|
+
background: linear-gradient(180deg, rgba(247, 255, 252, 0.45) 0%, rgba(238, 250, 246, 0.72) 100%);
|
|
89
|
+
transition:
|
|
90
|
+
max-height 0.34s ease,
|
|
91
|
+
opacity 0.25s ease,
|
|
92
|
+
transform 0.3s ease,
|
|
93
|
+
padding 0.24s ease,
|
|
94
|
+
border-color 0.24s ease;
|
|
80
95
|
}
|
|
81
96
|
|
|
82
97
|
.collapsible-content.expanded {
|
|
83
|
-
padding:
|
|
98
|
+
padding: 1.15rem !important;
|
|
84
99
|
max-height: 2000px;
|
|
85
|
-
|
|
100
|
+
opacity: 1;
|
|
101
|
+
transform: translateY(0);
|
|
102
|
+
border-top-color: rgba(11, 107, 100, 0.22);
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
.dashboard-card.upload-panel-open {
|
|
106
|
+
box-shadow: 0 22px 42px rgba(7, 54, 51, 0.22);
|
|
107
|
+
border-color: rgba(11, 107, 100, 0.3);
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
.dashboard-card.upload-panel-open .upload-card-header {
|
|
111
|
+
box-shadow: inset 0 -1px 0 rgba(255, 255, 255, 0.14);
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
.dashboard-card.upload-panel-open .card-title {
|
|
115
|
+
letter-spacing: 0.015em;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
.dashboard-card.upload-panel-open .card-icon {
|
|
119
|
+
background: rgba(255, 255, 255, 0.34);
|
|
120
|
+
border: 1px solid rgba(255, 255, 255, 0.4);
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
.dashboard-card.upload-panel-open .form-label {
|
|
124
|
+
color: #12413d;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
.dashboard-card.upload-panel-open .form-text {
|
|
128
|
+
color: #245651;
|
|
86
129
|
}
|
|
87
130
|
|
|
88
131
|
/* File Stats Card - Welcome Style */
|
|
@@ -133,6 +176,120 @@
|
|
|
133
176
|
letter-spacing: 0.02em;
|
|
134
177
|
}
|
|
135
178
|
|
|
179
|
+
.bucket-switcher-wrap {
|
|
180
|
+
margin-left: auto;
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
.bucket-switcher {
|
|
184
|
+
display: flex;
|
|
185
|
+
flex-direction: column;
|
|
186
|
+
gap: 0.35rem;
|
|
187
|
+
min-width: 230px;
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
.bucket-switcher-label {
|
|
191
|
+
color: rgba(255, 255, 255, 0.9);
|
|
192
|
+
font-size: 0.76rem;
|
|
193
|
+
font-weight: 700;
|
|
194
|
+
letter-spacing: 0.06em;
|
|
195
|
+
text-transform: uppercase;
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
.bucket-switcher-control {
|
|
199
|
+
position: relative;
|
|
200
|
+
display: flex;
|
|
201
|
+
align-items: center;
|
|
202
|
+
background: rgba(255, 255, 255, 0.18);
|
|
203
|
+
border: 1px solid rgba(255, 255, 255, 0.3);
|
|
204
|
+
border-radius: 0.65rem;
|
|
205
|
+
padding-left: 0.6rem;
|
|
206
|
+
transition: var(--transition-fast-ml);
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
.bucket-switcher-control:focus-within {
|
|
210
|
+
background: rgba(255, 255, 255, 0.26);
|
|
211
|
+
border-color: rgba(255, 255, 255, 0.9);
|
|
212
|
+
box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.2);
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
.bucket-switcher-icon {
|
|
216
|
+
color: rgba(255, 255, 255, 0.9);
|
|
217
|
+
margin-right: 0.5rem;
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
.bucket-switcher-select {
|
|
221
|
+
appearance: none;
|
|
222
|
+
-webkit-appearance: none;
|
|
223
|
+
-moz-appearance: none;
|
|
224
|
+
background: transparent;
|
|
225
|
+
border: none;
|
|
226
|
+
color: #ffffff;
|
|
227
|
+
font-weight: 600;
|
|
228
|
+
padding: 0.5rem 2rem 0.5rem 0;
|
|
229
|
+
min-width: 180px;
|
|
230
|
+
box-shadow: none;
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
.bucket-switcher-select:focus {
|
|
234
|
+
box-shadow: none;
|
|
235
|
+
outline: none;
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
.bucket-switcher-select option {
|
|
239
|
+
color: var(--dark-color-ml);
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
.bucket-switcher-caret {
|
|
243
|
+
position: absolute;
|
|
244
|
+
right: 0.65rem;
|
|
245
|
+
color: rgba(255, 255, 255, 0.9);
|
|
246
|
+
font-size: 0.8rem;
|
|
247
|
+
pointer-events: none;
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
.bucket-switcher-select:disabled {
|
|
251
|
+
opacity: 0.75;
|
|
252
|
+
cursor: not-allowed;
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
.bucket-switcher-status {
|
|
256
|
+
color: rgba(255, 255, 255, 0.9);
|
|
257
|
+
font-size: 0.72rem;
|
|
258
|
+
letter-spacing: 0.02em;
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
.quick-filter-group {
|
|
262
|
+
display: inline-flex;
|
|
263
|
+
align-items: center;
|
|
264
|
+
gap: 0.45rem;
|
|
265
|
+
flex-wrap: wrap;
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
.quick-filter-btn {
|
|
269
|
+
background: rgba(255, 255, 255, 0.08);
|
|
270
|
+
color: #ffffff;
|
|
271
|
+
border: 1px solid rgba(255, 255, 255, 0.3);
|
|
272
|
+
border-radius: 999px;
|
|
273
|
+
padding: 0.36rem 0.72rem;
|
|
274
|
+
font-size: 0.78rem;
|
|
275
|
+
line-height: 1;
|
|
276
|
+
min-height: 30px;
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
.quick-filter-btn:hover {
|
|
280
|
+
background: rgba(255, 255, 255, 0.16);
|
|
281
|
+
color: #ffffff;
|
|
282
|
+
border-color: rgba(255, 255, 255, 0.5);
|
|
283
|
+
box-shadow: none;
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
.quick-filter-btn.active {
|
|
287
|
+
background: #ffffff;
|
|
288
|
+
color: var(--primary-color-ml);
|
|
289
|
+
border-color: #ffffff;
|
|
290
|
+
font-weight: 700;
|
|
291
|
+
}
|
|
292
|
+
|
|
136
293
|
/* Form styling - Modern approach */
|
|
137
294
|
.form-control {
|
|
138
295
|
border: 1px solid var(--gray-light-color-ml);
|
|
@@ -144,6 +301,34 @@
|
|
|
144
301
|
background: white;
|
|
145
302
|
}
|
|
146
303
|
|
|
304
|
+
@media (max-width: 768px) {
|
|
305
|
+
.stats-content {
|
|
306
|
+
align-items: flex-start;
|
|
307
|
+
flex-wrap: wrap;
|
|
308
|
+
}
|
|
309
|
+
|
|
310
|
+
.bucket-switcher-wrap {
|
|
311
|
+
width: 100%;
|
|
312
|
+
margin-left: 0;
|
|
313
|
+
}
|
|
314
|
+
|
|
315
|
+
.bucket-switcher {
|
|
316
|
+
width: 100%;
|
|
317
|
+
max-width: 100%;
|
|
318
|
+
}
|
|
319
|
+
|
|
320
|
+
.bucket-switcher-select {
|
|
321
|
+
width: 100%;
|
|
322
|
+
min-width: 0;
|
|
323
|
+
}
|
|
324
|
+
|
|
325
|
+
.quick-filter-group {
|
|
326
|
+
width: 100%;
|
|
327
|
+
justify-content: flex-start;
|
|
328
|
+
margin-top: 0.35rem;
|
|
329
|
+
}
|
|
330
|
+
}
|
|
331
|
+
|
|
147
332
|
.form-control:focus {
|
|
148
333
|
border-color: var(--primary-color-ml);
|
|
149
334
|
box-shadow: 0 0 0 3px rgba(13, 148, 136, 0.1);
|
|
@@ -821,6 +1006,24 @@
|
|
|
821
1006
|
background: var(--light-color-ml);
|
|
822
1007
|
}
|
|
823
1008
|
|
|
1009
|
+
.virtualized-info {
|
|
1010
|
+
display: flex;
|
|
1011
|
+
justify-content: space-between;
|
|
1012
|
+
align-items: center;
|
|
1013
|
+
gap: 1rem;
|
|
1014
|
+
padding: 0.75rem 1rem;
|
|
1015
|
+
background: #f8fafc;
|
|
1016
|
+
border-top: 1px solid var(--gray-light-color-ml);
|
|
1017
|
+
color: var(--gray-color-ml);
|
|
1018
|
+
font-size: 0.85rem;
|
|
1019
|
+
}
|
|
1020
|
+
|
|
1021
|
+
.virtualized-actions {
|
|
1022
|
+
display: inline-flex;
|
|
1023
|
+
gap: 0.5rem;
|
|
1024
|
+
align-items: center;
|
|
1025
|
+
}
|
|
1026
|
+
|
|
824
1027
|
.toast-close-btn {
|
|
825
1028
|
background: none;
|
|
826
1029
|
border: none;
|
|
@@ -997,8 +1200,9 @@
|
|
|
997
1200
|
color: white;
|
|
998
1201
|
padding: 0.5rem;
|
|
999
1202
|
display: flex;
|
|
1000
|
-
align-items:
|
|
1203
|
+
align-items: flex-start;
|
|
1001
1204
|
justify-content: space-between;
|
|
1205
|
+
gap: 0.75rem;
|
|
1002
1206
|
}
|
|
1003
1207
|
|
|
1004
1208
|
.modal-title {
|
|
@@ -1008,15 +1212,55 @@
|
|
|
1008
1212
|
display: flex;
|
|
1009
1213
|
align-items: center;
|
|
1010
1214
|
gap: 0.75rem;
|
|
1215
|
+
flex: 1;
|
|
1216
|
+
min-width: 0;
|
|
1217
|
+
line-height: 1.2;
|
|
1218
|
+
}
|
|
1219
|
+
|
|
1220
|
+
#previewModal .modal-title i {
|
|
1221
|
+
flex-shrink: 0;
|
|
1011
1222
|
}
|
|
1012
1223
|
|
|
1013
1224
|
/* Allow preview filename to wrap and break long words */
|
|
1014
1225
|
#previewModal .modal-title #previewFileName {
|
|
1015
1226
|
display: inline-block;
|
|
1016
|
-
max-width:
|
|
1017
|
-
|
|
1018
|
-
|
|
1019
|
-
|
|
1227
|
+
max-width: 100%;
|
|
1228
|
+
min-width: 0;
|
|
1229
|
+
overflow: hidden;
|
|
1230
|
+
text-overflow: ellipsis;
|
|
1231
|
+
white-space: nowrap;
|
|
1232
|
+
}
|
|
1233
|
+
|
|
1234
|
+
#previewModal .preview-header-controls {
|
|
1235
|
+
flex-shrink: 0;
|
|
1236
|
+
}
|
|
1237
|
+
|
|
1238
|
+
.upload-item-meta-row {
|
|
1239
|
+
min-width: 0;
|
|
1240
|
+
}
|
|
1241
|
+
|
|
1242
|
+
.upload-file-icon {
|
|
1243
|
+
width: 36px;
|
|
1244
|
+
height: 36px;
|
|
1245
|
+
margin-right: 0.6rem;
|
|
1246
|
+
border-radius: 10px;
|
|
1247
|
+
font-size: 1rem;
|
|
1248
|
+
flex-shrink: 0;
|
|
1249
|
+
}
|
|
1250
|
+
|
|
1251
|
+
.upload-item-name {
|
|
1252
|
+
min-width: 0;
|
|
1253
|
+
max-width: 100%;
|
|
1254
|
+
overflow: hidden;
|
|
1255
|
+
text-overflow: ellipsis;
|
|
1256
|
+
white-space: nowrap;
|
|
1257
|
+
font-weight: 600;
|
|
1258
|
+
}
|
|
1259
|
+
|
|
1260
|
+
@media (max-width: 768px) {
|
|
1261
|
+
#previewModal .modal-title {
|
|
1262
|
+
font-size: 1.05rem;
|
|
1263
|
+
}
|
|
1020
1264
|
}
|
|
1021
1265
|
|
|
1022
1266
|
.modal-body {
|
|
@@ -1135,6 +1379,13 @@
|
|
|
1135
1379
|
box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.1);
|
|
1136
1380
|
}
|
|
1137
1381
|
|
|
1382
|
+
@media (max-width: 768px) {
|
|
1383
|
+
.virtualized-info {
|
|
1384
|
+
flex-direction: column;
|
|
1385
|
+
align-items: flex-start;
|
|
1386
|
+
}
|
|
1387
|
+
}
|
|
1388
|
+
|
|
1138
1389
|
.progress-bar {
|
|
1139
1390
|
height: 100%;
|
|
1140
1391
|
background: linear-gradient(135deg, var(--primary-color-ml) 0%, var(--success-color-ml) 100%);
|
|
@@ -1234,11 +1485,13 @@
|
|
|
1234
1485
|
/* Skeleton loaders - tuned grid to equalize column spacing visually */
|
|
1235
1486
|
.skeleton-row {
|
|
1236
1487
|
display: grid;
|
|
1237
|
-
grid-template-columns: 48px minmax(120px, 1fr) minmax(120px, 1fr) minmax(120px, 240px);
|
|
1488
|
+
grid-template-columns: 48px minmax(120px, 1fr) minmax(120px, 1fr) minmax(120px, 240px);
|
|
1489
|
+
/* icon + 3 columns with balanced min widths */
|
|
1238
1490
|
gap: 1rem;
|
|
1239
1491
|
padding: 1rem;
|
|
1240
1492
|
align-items: center;
|
|
1241
|
-
justify-items: stretch;
|
|
1493
|
+
justify-items: stretch;
|
|
1494
|
+
/* make cells span their tracks evenly */
|
|
1242
1495
|
}
|
|
1243
1496
|
|
|
1244
1497
|
/* make skeleton boxes flexible and responsive */
|
|
@@ -1252,9 +1505,20 @@
|
|
|
1252
1505
|
}
|
|
1253
1506
|
|
|
1254
1507
|
/* semantic size hints (max widths) and alignment to ensure visual balance */
|
|
1255
|
-
.skeleton-box.s-40 {
|
|
1256
|
-
|
|
1257
|
-
|
|
1508
|
+
.skeleton-box.s-40 {
|
|
1509
|
+
max-width: 48px;
|
|
1510
|
+
justify-self: start;
|
|
1511
|
+
}
|
|
1512
|
+
|
|
1513
|
+
.skeleton-box.s-80 {
|
|
1514
|
+
max-width: 160px;
|
|
1515
|
+
justify-self: center;
|
|
1516
|
+
}
|
|
1517
|
+
|
|
1518
|
+
.skeleton-box.s-200 {
|
|
1519
|
+
max-width: 220px;
|
|
1520
|
+
justify-self: end;
|
|
1521
|
+
}
|
|
1258
1522
|
|
|
1259
1523
|
.skeleton-row .file-icon {
|
|
1260
1524
|
width: 40px;
|
|
@@ -1268,7 +1532,10 @@
|
|
|
1268
1532
|
grid-template-columns: 40px minmax(100px, 1fr) minmax(100px, 1fr) minmax(100px, 200px);
|
|
1269
1533
|
gap: 0.9rem;
|
|
1270
1534
|
}
|
|
1271
|
-
|
|
1535
|
+
|
|
1536
|
+
.skeleton-box.s-200 {
|
|
1537
|
+
max-width: 180px;
|
|
1538
|
+
}
|
|
1272
1539
|
}
|
|
1273
1540
|
|
|
1274
1541
|
@media (max-width: 768px) {
|
|
@@ -1276,8 +1543,15 @@
|
|
|
1276
1543
|
grid-template-columns: 40px 1fr 1fr 1fr;
|
|
1277
1544
|
gap: 0.75rem;
|
|
1278
1545
|
}
|
|
1279
|
-
|
|
1280
|
-
.skeleton-box.s-
|
|
1546
|
+
|
|
1547
|
+
.skeleton-box.s-80 {
|
|
1548
|
+
justify-self: start;
|
|
1549
|
+
}
|
|
1550
|
+
|
|
1551
|
+
.skeleton-box.s-200 {
|
|
1552
|
+
max-width: 140px;
|
|
1553
|
+
justify-self: end;
|
|
1554
|
+
}
|
|
1281
1555
|
}
|
|
1282
1556
|
|
|
1283
1557
|
|
|
@@ -1326,6 +1600,162 @@
|
|
|
1326
1600
|
transform: none;
|
|
1327
1601
|
}
|
|
1328
1602
|
|
|
1603
|
+
/* v2 Visual System */
|
|
1604
|
+
:root {
|
|
1605
|
+
--v2-accent: #0b6b64;
|
|
1606
|
+
--v2-accent-strong: #084f4a;
|
|
1607
|
+
--v2-highlight: #0ea5a0;
|
|
1608
|
+
--v2-surface: #f4fcf9;
|
|
1609
|
+
--v2-border: rgba(11, 107, 100, 0.28);
|
|
1610
|
+
}
|
|
1611
|
+
|
|
1612
|
+
.content-area {
|
|
1613
|
+
animation: v2FadeIn 0.45s ease;
|
|
1614
|
+
}
|
|
1615
|
+
|
|
1616
|
+
.dashboard-card {
|
|
1617
|
+
background: linear-gradient(180deg, #f7fffc 0%, #eefaf6 100%);
|
|
1618
|
+
border: 1px solid rgba(11, 107, 100, 0.2);
|
|
1619
|
+
box-shadow: 0 16px 30px rgba(7, 54, 51, 0.12);
|
|
1620
|
+
}
|
|
1621
|
+
|
|
1622
|
+
.dashboard-card:hover {
|
|
1623
|
+
transform: translateY(-1px);
|
|
1624
|
+
box-shadow: 0 18px 36px rgba(7, 54, 51, 0.2);
|
|
1625
|
+
}
|
|
1626
|
+
|
|
1627
|
+
.card-header {
|
|
1628
|
+
background: linear-gradient(122deg, #07544e 0%, #0b6b64 52%, #0f7e75 100%);
|
|
1629
|
+
}
|
|
1630
|
+
|
|
1631
|
+
.card-title {
|
|
1632
|
+
letter-spacing: 0.01em;
|
|
1633
|
+
}
|
|
1634
|
+
|
|
1635
|
+
.card-icon {
|
|
1636
|
+
background: rgba(255, 255, 255, 0.23);
|
|
1637
|
+
border: 1px solid rgba(255, 255, 255, 0.35);
|
|
1638
|
+
}
|
|
1639
|
+
|
|
1640
|
+
.file-stats {
|
|
1641
|
+
background:
|
|
1642
|
+
linear-gradient(132deg, #064640 0%, #0a5b54 46%, #0d6b63 100%);
|
|
1643
|
+
}
|
|
1644
|
+
|
|
1645
|
+
.bucket-switcher-control {
|
|
1646
|
+
background: rgba(255, 255, 255, 0.24);
|
|
1647
|
+
}
|
|
1648
|
+
|
|
1649
|
+
.bucket-switcher-select {
|
|
1650
|
+
font-size: 0.85rem;
|
|
1651
|
+
}
|
|
1652
|
+
|
|
1653
|
+
.upload-drop-zone {
|
|
1654
|
+
background:
|
|
1655
|
+
linear-gradient(145deg, rgba(219, 247, 241, 0.9), rgba(226, 244, 241, 0.82));
|
|
1656
|
+
border-color: rgba(11, 107, 100, 0.55);
|
|
1657
|
+
}
|
|
1658
|
+
|
|
1659
|
+
.upload-drop-zone:hover,
|
|
1660
|
+
.upload-drop-zone.dragover {
|
|
1661
|
+
border-color: var(--v2-highlight);
|
|
1662
|
+
background:
|
|
1663
|
+
linear-gradient(145deg, rgba(201, 244, 236, 0.95), rgba(224, 249, 242, 0.86));
|
|
1664
|
+
}
|
|
1665
|
+
|
|
1666
|
+
.btn {
|
|
1667
|
+
border-radius: 0.65rem;
|
|
1668
|
+
}
|
|
1669
|
+
|
|
1670
|
+
.btn-primary {
|
|
1671
|
+
background: linear-gradient(135deg, var(--v2-accent), var(--v2-accent-strong));
|
|
1672
|
+
}
|
|
1673
|
+
|
|
1674
|
+
.btn-primary:hover {
|
|
1675
|
+
background: linear-gradient(135deg, #064640, #073a36);
|
|
1676
|
+
}
|
|
1677
|
+
|
|
1678
|
+
.btn-outline-secondary {
|
|
1679
|
+
border-color: #9ca3af;
|
|
1680
|
+
color: #1f2937;
|
|
1681
|
+
}
|
|
1682
|
+
|
|
1683
|
+
.table thead {
|
|
1684
|
+
background: linear-gradient(180deg, rgba(225, 242, 238, 0.95), rgba(210, 236, 230, 0.9));
|
|
1685
|
+
}
|
|
1686
|
+
|
|
1687
|
+
.table th {
|
|
1688
|
+
color: #23403d;
|
|
1689
|
+
}
|
|
1690
|
+
|
|
1691
|
+
.file-row:hover {
|
|
1692
|
+
background-color: #ddf2ed;
|
|
1693
|
+
}
|
|
1694
|
+
|
|
1695
|
+
.folder-row:hover {
|
|
1696
|
+
background-color: #d7efe9;
|
|
1697
|
+
}
|
|
1698
|
+
|
|
1699
|
+
.search-inline .form-control {
|
|
1700
|
+
border-color: rgba(15, 118, 110, 0.3);
|
|
1701
|
+
}
|
|
1702
|
+
|
|
1703
|
+
.quick-filter-btn.active {
|
|
1704
|
+
color: #ffffff;
|
|
1705
|
+
background: linear-gradient(135deg, var(--v2-accent), var(--v2-accent-strong));
|
|
1706
|
+
border-color: var(--v2-accent-strong);
|
|
1707
|
+
}
|
|
1708
|
+
|
|
1709
|
+
.reveal-item {
|
|
1710
|
+
opacity: 0;
|
|
1711
|
+
transform: translateY(14px) scale(0.99);
|
|
1712
|
+
animation: v2Rise 0.48s cubic-bezier(0.2, 0.8, 0.2, 1) forwards;
|
|
1713
|
+
}
|
|
1714
|
+
|
|
1715
|
+
.reveal-delay-1 {
|
|
1716
|
+
animation-delay: 0.05s;
|
|
1717
|
+
}
|
|
1718
|
+
|
|
1719
|
+
.reveal-delay-2 {
|
|
1720
|
+
animation-delay: 0.12s;
|
|
1721
|
+
}
|
|
1722
|
+
|
|
1723
|
+
.reveal-delay-3 {
|
|
1724
|
+
animation-delay: 0.2s;
|
|
1725
|
+
}
|
|
1726
|
+
|
|
1727
|
+
.reveal-delay-4 {
|
|
1728
|
+
animation-delay: 0.28s;
|
|
1729
|
+
}
|
|
1730
|
+
|
|
1731
|
+
@keyframes v2FadeIn {
|
|
1732
|
+
from {
|
|
1733
|
+
opacity: 0.4;
|
|
1734
|
+
}
|
|
1735
|
+
|
|
1736
|
+
to {
|
|
1737
|
+
opacity: 1;
|
|
1738
|
+
}
|
|
1739
|
+
}
|
|
1740
|
+
|
|
1741
|
+
@keyframes v2Rise {
|
|
1742
|
+
from {
|
|
1743
|
+
opacity: 0;
|
|
1744
|
+
transform: translateY(14px) scale(0.99);
|
|
1745
|
+
}
|
|
1746
|
+
|
|
1747
|
+
to {
|
|
1748
|
+
opacity: 1;
|
|
1749
|
+
transform: translateY(0) scale(1);
|
|
1750
|
+
}
|
|
1751
|
+
}
|
|
1752
|
+
|
|
1753
|
+
@media (max-width: 768px) {
|
|
1754
|
+
.card-header {
|
|
1755
|
+
padding: 0.8rem;
|
|
1756
|
+
}
|
|
1757
|
+
}
|
|
1758
|
+
|
|
1329
1759
|
.upload-success {
|
|
1330
1760
|
color: var(--success-color-ml);
|
|
1331
1761
|
font-weight: 600;
|