mbkbucket 1.5.1 → 2.1.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 +20 -20
- package/lib/config/index.js +34 -98
- package/lib/config/validation.js +89 -0
- package/lib/debug.js +12 -0
- package/lib/routes/api.js +147 -88
- package/lib/routes/index.js +70 -1
- package/lib/routes/view.js +108 -35
- package/lib/s3.js +102 -57
- package/package.json +6 -5
- package/public/bucketadmin.css +571 -18
- package/public/bucketadmin.js +431 -150
- package/test/config-validation.test.js +116 -0
- package/views/bucket.handlebars +66 -31
- package/views/bucketadmincontent.handlebars +40 -19
- 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);
|
|
@@ -546,9 +731,18 @@
|
|
|
546
731
|
align-items: center;
|
|
547
732
|
gap: 0.5rem;
|
|
548
733
|
font-size: 0.9rem;
|
|
734
|
+
min-width: 0;
|
|
735
|
+
}
|
|
736
|
+
|
|
737
|
+
.breadcrumb-nav .breadcrumb-item::before {
|
|
738
|
+
display: none !important;
|
|
739
|
+
content: none !important;
|
|
549
740
|
}
|
|
550
741
|
|
|
551
742
|
.breadcrumb-link {
|
|
743
|
+
background: transparent;
|
|
744
|
+
border: 0;
|
|
745
|
+
padding: 0;
|
|
552
746
|
color: var(--primary-color-ml);
|
|
553
747
|
cursor: pointer;
|
|
554
748
|
transition: all 0.2s ease;
|
|
@@ -569,6 +763,8 @@
|
|
|
569
763
|
.breadcrumb-current {
|
|
570
764
|
color: var(--dark-color-ml);
|
|
571
765
|
font-weight: 600;
|
|
766
|
+
min-width: 0;
|
|
767
|
+
overflow-wrap: anywhere;
|
|
572
768
|
}
|
|
573
769
|
|
|
574
770
|
.file-icon {
|
|
@@ -821,6 +1017,24 @@
|
|
|
821
1017
|
background: var(--light-color-ml);
|
|
822
1018
|
}
|
|
823
1019
|
|
|
1020
|
+
.virtualized-info {
|
|
1021
|
+
display: flex;
|
|
1022
|
+
justify-content: space-between;
|
|
1023
|
+
align-items: center;
|
|
1024
|
+
gap: 1rem;
|
|
1025
|
+
padding: 0.75rem 1rem;
|
|
1026
|
+
background: #f8fafc;
|
|
1027
|
+
border-top: 1px solid var(--gray-light-color-ml);
|
|
1028
|
+
color: var(--gray-color-ml);
|
|
1029
|
+
font-size: 0.85rem;
|
|
1030
|
+
}
|
|
1031
|
+
|
|
1032
|
+
.virtualized-actions {
|
|
1033
|
+
display: inline-flex;
|
|
1034
|
+
gap: 0.5rem;
|
|
1035
|
+
align-items: center;
|
|
1036
|
+
}
|
|
1037
|
+
|
|
824
1038
|
.toast-close-btn {
|
|
825
1039
|
background: none;
|
|
826
1040
|
border: none;
|
|
@@ -997,8 +1211,9 @@
|
|
|
997
1211
|
color: white;
|
|
998
1212
|
padding: 0.5rem;
|
|
999
1213
|
display: flex;
|
|
1000
|
-
align-items:
|
|
1214
|
+
align-items: flex-start;
|
|
1001
1215
|
justify-content: space-between;
|
|
1216
|
+
gap: 0.75rem;
|
|
1002
1217
|
}
|
|
1003
1218
|
|
|
1004
1219
|
.modal-title {
|
|
@@ -1008,15 +1223,55 @@
|
|
|
1008
1223
|
display: flex;
|
|
1009
1224
|
align-items: center;
|
|
1010
1225
|
gap: 0.75rem;
|
|
1226
|
+
flex: 1;
|
|
1227
|
+
min-width: 0;
|
|
1228
|
+
line-height: 1.2;
|
|
1229
|
+
}
|
|
1230
|
+
|
|
1231
|
+
#previewModal .modal-title i {
|
|
1232
|
+
flex-shrink: 0;
|
|
1011
1233
|
}
|
|
1012
1234
|
|
|
1013
1235
|
/* Allow preview filename to wrap and break long words */
|
|
1014
1236
|
#previewModal .modal-title #previewFileName {
|
|
1015
1237
|
display: inline-block;
|
|
1016
|
-
max-width:
|
|
1017
|
-
|
|
1018
|
-
|
|
1019
|
-
|
|
1238
|
+
max-width: 100%;
|
|
1239
|
+
min-width: 0;
|
|
1240
|
+
overflow: hidden;
|
|
1241
|
+
text-overflow: ellipsis;
|
|
1242
|
+
white-space: nowrap;
|
|
1243
|
+
}
|
|
1244
|
+
|
|
1245
|
+
#previewModal .preview-header-controls {
|
|
1246
|
+
flex-shrink: 0;
|
|
1247
|
+
}
|
|
1248
|
+
|
|
1249
|
+
.upload-item-meta-row {
|
|
1250
|
+
min-width: 0;
|
|
1251
|
+
}
|
|
1252
|
+
|
|
1253
|
+
.upload-file-icon {
|
|
1254
|
+
width: 36px;
|
|
1255
|
+
height: 36px;
|
|
1256
|
+
margin-right: 0.6rem;
|
|
1257
|
+
border-radius: 10px;
|
|
1258
|
+
font-size: 1rem;
|
|
1259
|
+
flex-shrink: 0;
|
|
1260
|
+
}
|
|
1261
|
+
|
|
1262
|
+
.upload-item-name {
|
|
1263
|
+
min-width: 0;
|
|
1264
|
+
max-width: 100%;
|
|
1265
|
+
overflow: hidden;
|
|
1266
|
+
text-overflow: ellipsis;
|
|
1267
|
+
white-space: nowrap;
|
|
1268
|
+
font-weight: 600;
|
|
1269
|
+
}
|
|
1270
|
+
|
|
1271
|
+
@media (max-width: 768px) {
|
|
1272
|
+
#previewModal .modal-title {
|
|
1273
|
+
font-size: 1.05rem;
|
|
1274
|
+
}
|
|
1020
1275
|
}
|
|
1021
1276
|
|
|
1022
1277
|
.modal-body {
|
|
@@ -1135,6 +1390,13 @@
|
|
|
1135
1390
|
box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.1);
|
|
1136
1391
|
}
|
|
1137
1392
|
|
|
1393
|
+
@media (max-width: 768px) {
|
|
1394
|
+
.virtualized-info {
|
|
1395
|
+
flex-direction: column;
|
|
1396
|
+
align-items: flex-start;
|
|
1397
|
+
}
|
|
1398
|
+
}
|
|
1399
|
+
|
|
1138
1400
|
.progress-bar {
|
|
1139
1401
|
height: 100%;
|
|
1140
1402
|
background: linear-gradient(135deg, var(--primary-color-ml) 0%, var(--success-color-ml) 100%);
|
|
@@ -1234,11 +1496,13 @@
|
|
|
1234
1496
|
/* Skeleton loaders - tuned grid to equalize column spacing visually */
|
|
1235
1497
|
.skeleton-row {
|
|
1236
1498
|
display: grid;
|
|
1237
|
-
grid-template-columns: 48px minmax(120px, 1fr) minmax(120px, 1fr) minmax(120px, 240px);
|
|
1499
|
+
grid-template-columns: 48px minmax(120px, 1fr) minmax(120px, 1fr) minmax(120px, 240px);
|
|
1500
|
+
/* icon + 3 columns with balanced min widths */
|
|
1238
1501
|
gap: 1rem;
|
|
1239
1502
|
padding: 1rem;
|
|
1240
1503
|
align-items: center;
|
|
1241
|
-
justify-items: stretch;
|
|
1504
|
+
justify-items: stretch;
|
|
1505
|
+
/* make cells span their tracks evenly */
|
|
1242
1506
|
}
|
|
1243
1507
|
|
|
1244
1508
|
/* make skeleton boxes flexible and responsive */
|
|
@@ -1252,9 +1516,20 @@
|
|
|
1252
1516
|
}
|
|
1253
1517
|
|
|
1254
1518
|
/* semantic size hints (max widths) and alignment to ensure visual balance */
|
|
1255
|
-
.skeleton-box.s-40 {
|
|
1256
|
-
|
|
1257
|
-
|
|
1519
|
+
.skeleton-box.s-40 {
|
|
1520
|
+
max-width: 48px;
|
|
1521
|
+
justify-self: start;
|
|
1522
|
+
}
|
|
1523
|
+
|
|
1524
|
+
.skeleton-box.s-80 {
|
|
1525
|
+
max-width: 160px;
|
|
1526
|
+
justify-self: center;
|
|
1527
|
+
}
|
|
1528
|
+
|
|
1529
|
+
.skeleton-box.s-200 {
|
|
1530
|
+
max-width: 220px;
|
|
1531
|
+
justify-self: end;
|
|
1532
|
+
}
|
|
1258
1533
|
|
|
1259
1534
|
.skeleton-row .file-icon {
|
|
1260
1535
|
width: 40px;
|
|
@@ -1268,7 +1543,10 @@
|
|
|
1268
1543
|
grid-template-columns: 40px minmax(100px, 1fr) minmax(100px, 1fr) minmax(100px, 200px);
|
|
1269
1544
|
gap: 0.9rem;
|
|
1270
1545
|
}
|
|
1271
|
-
|
|
1546
|
+
|
|
1547
|
+
.skeleton-box.s-200 {
|
|
1548
|
+
max-width: 180px;
|
|
1549
|
+
}
|
|
1272
1550
|
}
|
|
1273
1551
|
|
|
1274
1552
|
@media (max-width: 768px) {
|
|
@@ -1276,8 +1554,15 @@
|
|
|
1276
1554
|
grid-template-columns: 40px 1fr 1fr 1fr;
|
|
1277
1555
|
gap: 0.75rem;
|
|
1278
1556
|
}
|
|
1279
|
-
|
|
1280
|
-
.skeleton-box.s-
|
|
1557
|
+
|
|
1558
|
+
.skeleton-box.s-80 {
|
|
1559
|
+
justify-self: start;
|
|
1560
|
+
}
|
|
1561
|
+
|
|
1562
|
+
.skeleton-box.s-200 {
|
|
1563
|
+
max-width: 140px;
|
|
1564
|
+
justify-self: end;
|
|
1565
|
+
}
|
|
1281
1566
|
}
|
|
1282
1567
|
|
|
1283
1568
|
|
|
@@ -1326,6 +1611,162 @@
|
|
|
1326
1611
|
transform: none;
|
|
1327
1612
|
}
|
|
1328
1613
|
|
|
1614
|
+
/* v2 Visual System */
|
|
1615
|
+
:root {
|
|
1616
|
+
--v2-accent: #0b6b64;
|
|
1617
|
+
--v2-accent-strong: #084f4a;
|
|
1618
|
+
--v2-highlight: #0ea5a0;
|
|
1619
|
+
--v2-surface: #f4fcf9;
|
|
1620
|
+
--v2-border: rgba(11, 107, 100, 0.28);
|
|
1621
|
+
}
|
|
1622
|
+
|
|
1623
|
+
.content-area {
|
|
1624
|
+
animation: v2FadeIn 0.45s ease;
|
|
1625
|
+
}
|
|
1626
|
+
|
|
1627
|
+
.dashboard-card {
|
|
1628
|
+
background: linear-gradient(180deg, #f7fffc 0%, #eefaf6 100%);
|
|
1629
|
+
border: 1px solid rgba(11, 107, 100, 0.2);
|
|
1630
|
+
box-shadow: 0 16px 30px rgba(7, 54, 51, 0.12);
|
|
1631
|
+
}
|
|
1632
|
+
|
|
1633
|
+
.dashboard-card:hover {
|
|
1634
|
+
transform: translateY(-1px);
|
|
1635
|
+
box-shadow: 0 18px 36px rgba(7, 54, 51, 0.2);
|
|
1636
|
+
}
|
|
1637
|
+
|
|
1638
|
+
.card-header {
|
|
1639
|
+
background: linear-gradient(122deg, #07544e 0%, #0b6b64 52%, #0f7e75 100%);
|
|
1640
|
+
}
|
|
1641
|
+
|
|
1642
|
+
.card-title {
|
|
1643
|
+
letter-spacing: 0.01em;
|
|
1644
|
+
}
|
|
1645
|
+
|
|
1646
|
+
.card-icon {
|
|
1647
|
+
background: rgba(255, 255, 255, 0.23);
|
|
1648
|
+
border: 1px solid rgba(255, 255, 255, 0.35);
|
|
1649
|
+
}
|
|
1650
|
+
|
|
1651
|
+
.file-stats {
|
|
1652
|
+
background:
|
|
1653
|
+
linear-gradient(132deg, #064640 0%, #0a5b54 46%, #0d6b63 100%);
|
|
1654
|
+
}
|
|
1655
|
+
|
|
1656
|
+
.bucket-switcher-control {
|
|
1657
|
+
background: rgba(255, 255, 255, 0.24);
|
|
1658
|
+
}
|
|
1659
|
+
|
|
1660
|
+
.bucket-switcher-select {
|
|
1661
|
+
font-size: 0.85rem;
|
|
1662
|
+
}
|
|
1663
|
+
|
|
1664
|
+
.upload-drop-zone {
|
|
1665
|
+
background:
|
|
1666
|
+
linear-gradient(145deg, rgba(219, 247, 241, 0.9), rgba(226, 244, 241, 0.82));
|
|
1667
|
+
border-color: rgba(11, 107, 100, 0.55);
|
|
1668
|
+
}
|
|
1669
|
+
|
|
1670
|
+
.upload-drop-zone:hover,
|
|
1671
|
+
.upload-drop-zone.dragover {
|
|
1672
|
+
border-color: var(--v2-highlight);
|
|
1673
|
+
background:
|
|
1674
|
+
linear-gradient(145deg, rgba(201, 244, 236, 0.95), rgba(224, 249, 242, 0.86));
|
|
1675
|
+
}
|
|
1676
|
+
|
|
1677
|
+
.btn {
|
|
1678
|
+
border-radius: 0.65rem;
|
|
1679
|
+
}
|
|
1680
|
+
|
|
1681
|
+
.btn-primary {
|
|
1682
|
+
background: linear-gradient(135deg, var(--v2-accent), var(--v2-accent-strong));
|
|
1683
|
+
}
|
|
1684
|
+
|
|
1685
|
+
.btn-primary:hover {
|
|
1686
|
+
background: linear-gradient(135deg, #064640, #073a36);
|
|
1687
|
+
}
|
|
1688
|
+
|
|
1689
|
+
.btn-outline-secondary {
|
|
1690
|
+
border-color: #9ca3af;
|
|
1691
|
+
color: #1f2937;
|
|
1692
|
+
}
|
|
1693
|
+
|
|
1694
|
+
.table thead {
|
|
1695
|
+
background: linear-gradient(180deg, rgba(225, 242, 238, 0.95), rgba(210, 236, 230, 0.9));
|
|
1696
|
+
}
|
|
1697
|
+
|
|
1698
|
+
.table th {
|
|
1699
|
+
color: #23403d;
|
|
1700
|
+
}
|
|
1701
|
+
|
|
1702
|
+
.file-row:hover {
|
|
1703
|
+
background-color: #ddf2ed;
|
|
1704
|
+
}
|
|
1705
|
+
|
|
1706
|
+
.folder-row:hover {
|
|
1707
|
+
background-color: #d7efe9;
|
|
1708
|
+
}
|
|
1709
|
+
|
|
1710
|
+
.search-inline .form-control {
|
|
1711
|
+
border-color: rgba(15, 118, 110, 0.3);
|
|
1712
|
+
}
|
|
1713
|
+
|
|
1714
|
+
.quick-filter-btn.active {
|
|
1715
|
+
color: #ffffff;
|
|
1716
|
+
background: linear-gradient(135deg, var(--v2-accent), var(--v2-accent-strong));
|
|
1717
|
+
border-color: var(--v2-accent-strong);
|
|
1718
|
+
}
|
|
1719
|
+
|
|
1720
|
+
.reveal-item {
|
|
1721
|
+
opacity: 0;
|
|
1722
|
+
transform: translateY(14px) scale(0.99);
|
|
1723
|
+
animation: v2Rise 0.48s cubic-bezier(0.2, 0.8, 0.2, 1) forwards;
|
|
1724
|
+
}
|
|
1725
|
+
|
|
1726
|
+
.reveal-delay-1 {
|
|
1727
|
+
animation-delay: 0.05s;
|
|
1728
|
+
}
|
|
1729
|
+
|
|
1730
|
+
.reveal-delay-2 {
|
|
1731
|
+
animation-delay: 0.12s;
|
|
1732
|
+
}
|
|
1733
|
+
|
|
1734
|
+
.reveal-delay-3 {
|
|
1735
|
+
animation-delay: 0.2s;
|
|
1736
|
+
}
|
|
1737
|
+
|
|
1738
|
+
.reveal-delay-4 {
|
|
1739
|
+
animation-delay: 0.28s;
|
|
1740
|
+
}
|
|
1741
|
+
|
|
1742
|
+
@keyframes v2FadeIn {
|
|
1743
|
+
from {
|
|
1744
|
+
opacity: 0.4;
|
|
1745
|
+
}
|
|
1746
|
+
|
|
1747
|
+
to {
|
|
1748
|
+
opacity: 1;
|
|
1749
|
+
}
|
|
1750
|
+
}
|
|
1751
|
+
|
|
1752
|
+
@keyframes v2Rise {
|
|
1753
|
+
from {
|
|
1754
|
+
opacity: 0;
|
|
1755
|
+
transform: translateY(14px) scale(0.99);
|
|
1756
|
+
}
|
|
1757
|
+
|
|
1758
|
+
to {
|
|
1759
|
+
opacity: 1;
|
|
1760
|
+
transform: translateY(0) scale(1);
|
|
1761
|
+
}
|
|
1762
|
+
}
|
|
1763
|
+
|
|
1764
|
+
@media (max-width: 768px) {
|
|
1765
|
+
.card-header {
|
|
1766
|
+
padding: 0.8rem;
|
|
1767
|
+
}
|
|
1768
|
+
}
|
|
1769
|
+
|
|
1329
1770
|
.upload-success {
|
|
1330
1771
|
color: var(--success-color-ml);
|
|
1331
1772
|
font-weight: 600;
|
|
@@ -1618,6 +2059,19 @@
|
|
|
1618
2059
|
.breadcrumb-nav {
|
|
1619
2060
|
padding: 0.5rem 1rem;
|
|
1620
2061
|
font-size: 0.85rem;
|
|
2062
|
+
gap: 0.35rem;
|
|
2063
|
+
overflow: visible;
|
|
2064
|
+
}
|
|
2065
|
+
|
|
2066
|
+
.breadcrumb-item {
|
|
2067
|
+
max-width: 100%;
|
|
2068
|
+
}
|
|
2069
|
+
|
|
2070
|
+
.breadcrumb-current,
|
|
2071
|
+
.breadcrumb-link {
|
|
2072
|
+
max-width: calc(100vw - 4rem);
|
|
2073
|
+
white-space: normal;
|
|
2074
|
+
overflow-wrap: anywhere;
|
|
1621
2075
|
}
|
|
1622
2076
|
|
|
1623
2077
|
.file-size {
|
|
@@ -1742,4 +2196,103 @@
|
|
|
1742
2196
|
.dtm {
|
|
1743
2197
|
display: block;
|
|
1744
2198
|
}
|
|
1745
|
-
}
|
|
2199
|
+
}
|
|
2200
|
+
|
|
2201
|
+
.table-cell-center {
|
|
2202
|
+
text-align: center;
|
|
2203
|
+
}
|
|
2204
|
+
|
|
2205
|
+
.table-select-col {
|
|
2206
|
+
width: 48px;
|
|
2207
|
+
text-align: center;
|
|
2208
|
+
}
|
|
2209
|
+
|
|
2210
|
+
.file-name-cell,
|
|
2211
|
+
.file-name-heading {
|
|
2212
|
+
padding-left: 1.5rem;
|
|
2213
|
+
}
|
|
2214
|
+
|
|
2215
|
+
.file-row-main {
|
|
2216
|
+
display: flex;
|
|
2217
|
+
align-items: center;
|
|
2218
|
+
}
|
|
2219
|
+
|
|
2220
|
+
.folder-name {
|
|
2221
|
+
font-weight: 700;
|
|
2222
|
+
}
|
|
2223
|
+
|
|
2224
|
+
.folder-leading-icon {
|
|
2225
|
+
margin-right: 0.5rem;
|
|
2226
|
+
color: #f59e0b;
|
|
2227
|
+
}
|
|
2228
|
+
|
|
2229
|
+
.muted-cell-value {
|
|
2230
|
+
color: var(--gray-color-ml);
|
|
2231
|
+
}
|
|
2232
|
+
|
|
2233
|
+
.path-display-icon {
|
|
2234
|
+
margin-right: 4px;
|
|
2235
|
+
opacity: 0.5;
|
|
2236
|
+
}
|
|
2237
|
+
|
|
2238
|
+
.copy-btn {
|
|
2239
|
+
color: #fff;
|
|
2240
|
+
}
|
|
2241
|
+
|
|
2242
|
+
.view-btn.is-disabled {
|
|
2243
|
+
opacity: 0.5;
|
|
2244
|
+
}
|
|
2245
|
+
|
|
2246
|
+
.sortable-heading {
|
|
2247
|
+
cursor: pointer;
|
|
2248
|
+
}
|
|
2249
|
+
|
|
2250
|
+
.bulk-actions-controls {
|
|
2251
|
+
float: right;
|
|
2252
|
+
}
|
|
2253
|
+
|
|
2254
|
+
.toast-icon {
|
|
2255
|
+
font-size: 1.25rem;
|
|
2256
|
+
}
|
|
2257
|
+
|
|
2258
|
+
.toast-message {
|
|
2259
|
+
flex: 1;
|
|
2260
|
+
}
|
|
2261
|
+
|
|
2262
|
+
.empty-state-error-icon {
|
|
2263
|
+
color: var(--danger-color-ml);
|
|
2264
|
+
}
|
|
2265
|
+
|
|
2266
|
+
.empty-state-folder-icon {
|
|
2267
|
+
font-size: 4rem;
|
|
2268
|
+
color: #cbd5e0;
|
|
2269
|
+
}
|
|
2270
|
+
|
|
2271
|
+
.upload-progress-cell {
|
|
2272
|
+
min-width: 220px;
|
|
2273
|
+
}
|
|
2274
|
+
|
|
2275
|
+
.upload-progress-track {
|
|
2276
|
+
height: 8px;
|
|
2277
|
+
margin-bottom: 6px;
|
|
2278
|
+
}
|
|
2279
|
+
|
|
2280
|
+
.upload-progress-bar {
|
|
2281
|
+
height: 8px;
|
|
2282
|
+
}
|
|
2283
|
+
|
|
2284
|
+
.progress-bar-empty {
|
|
2285
|
+
width: 0%;
|
|
2286
|
+
}
|
|
2287
|
+
|
|
2288
|
+
.is-hidden {
|
|
2289
|
+
display: none !important;
|
|
2290
|
+
}
|
|
2291
|
+
|
|
2292
|
+
.bucket-switcher-status:not(.is-hidden) {
|
|
2293
|
+
display: inline;
|
|
2294
|
+
}
|
|
2295
|
+
|
|
2296
|
+
.file-list-card-body {
|
|
2297
|
+
padding: 0;
|
|
2298
|
+
}
|