mbkbucket 1.2.0 → 1.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.
- package/index.d.ts +1 -1
- package/index.js +16 -2
- package/lib/bucket.js +111 -48
- package/lib/s3.js +9 -3
- package/package.json +2 -2
- package/public/{css/bucketadmin.css → bucketadmin.css} +271 -51
- package/public/{js/bucketadmincontent.js → bucketadmin.js} +359 -127
- package/views/bucket.handlebars +2 -2
- package/views/bucketadmincontent.handlebars +44 -58
|
@@ -43,12 +43,54 @@
|
|
|
43
43
|
padding: 1rem;
|
|
44
44
|
}
|
|
45
45
|
|
|
46
|
+
/* Collapsible Upload Section */
|
|
47
|
+
.upload-card-header {
|
|
48
|
+
display: flex;
|
|
49
|
+
justify-content: space-between;
|
|
50
|
+
align-items: center;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
.collapse-btn {
|
|
54
|
+
background: none;
|
|
55
|
+
border: none;
|
|
56
|
+
color: white;
|
|
57
|
+
padding: 0.5rem;
|
|
58
|
+
border-radius: 4px;
|
|
59
|
+
transition: all 0.3s ease;
|
|
60
|
+
cursor: pointer;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
.collapse-btn:hover {
|
|
64
|
+
background: rgba(255, 255, 255, 0.1);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
.collapse-btn i {
|
|
68
|
+
transition: transform 0.3s ease;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
.collapse-btn.expanded i {
|
|
72
|
+
transform: rotate(180deg);
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
.collapsible-content {
|
|
76
|
+
padding: 0rem !important;
|
|
77
|
+
max-height: 0;
|
|
78
|
+
overflow: hidden;
|
|
79
|
+
transition: max-height 0.3s ease-out;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
.collapsible-content.expanded {
|
|
83
|
+
padding: 1rem !important;
|
|
84
|
+
max-height: 2000px;
|
|
85
|
+
transition: max-height 0.3s ease-in;
|
|
86
|
+
}
|
|
87
|
+
|
|
46
88
|
/* File Stats Card - Welcome Style */
|
|
47
89
|
.file-stats {
|
|
48
90
|
background: linear-gradient(135deg, var(--primary-color-ml) 0%, var(--primary-dark-color-ml) 100%);
|
|
49
91
|
color: white;
|
|
50
92
|
border: none;
|
|
51
|
-
margin-bottom:
|
|
93
|
+
margin-bottom: 1rem;
|
|
52
94
|
}
|
|
53
95
|
|
|
54
96
|
.stats-content {
|
|
@@ -121,6 +163,57 @@
|
|
|
121
163
|
gap: 0.5rem;
|
|
122
164
|
}
|
|
123
165
|
|
|
166
|
+
/* Upload Drop Zone */
|
|
167
|
+
.upload-drop-zone {
|
|
168
|
+
border: 2px dashed var(--gray-color-ml);
|
|
169
|
+
border-radius: var(--border-radius-lg-ml);
|
|
170
|
+
background-color: #f8fafc;
|
|
171
|
+
min-height: 160px;
|
|
172
|
+
display: flex;
|
|
173
|
+
align-items: center;
|
|
174
|
+
justify-content: center;
|
|
175
|
+
cursor: pointer;
|
|
176
|
+
text-align: center;
|
|
177
|
+
transition: all 0.2s ease;
|
|
178
|
+
position: relative;
|
|
179
|
+
overflow: hidden;
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
.upload-drop-zone:hover,
|
|
183
|
+
.upload-drop-zone.dragover {
|
|
184
|
+
border-color: var(--primary-color-ml);
|
|
185
|
+
background-color: #f0fdfa;
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
.drop-zone-content {
|
|
189
|
+
pointer-events: none;
|
|
190
|
+
padding: 2rem;
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
.drop-zone-content i {
|
|
194
|
+
font-size: 3rem;
|
|
195
|
+
color: var(--primary-color-ml);
|
|
196
|
+
margin-bottom: 1rem;
|
|
197
|
+
opacity: 0.8;
|
|
198
|
+
transition: transform 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
.upload-drop-zone:hover .drop-zone-content i {
|
|
202
|
+
opacity: 1;
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
.drop-text {
|
|
206
|
+
font-weight: 600;
|
|
207
|
+
font-size: 1.1rem;
|
|
208
|
+
color: var(--dark-color-ml);
|
|
209
|
+
margin-bottom: 0.5rem;
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
.drop-hint {
|
|
213
|
+
font-size: 0.85rem;
|
|
214
|
+
color: var(--gray-color-ml);
|
|
215
|
+
}
|
|
216
|
+
|
|
124
217
|
/* Button styling - Modern hover effects */
|
|
125
218
|
.btn {
|
|
126
219
|
background: var(--primary-color-ml);
|
|
@@ -347,64 +440,74 @@
|
|
|
347
440
|
/* Table styling - Modern clean design */
|
|
348
441
|
.table-responsive {
|
|
349
442
|
overflow-x: auto;
|
|
350
|
-
|
|
443
|
+
border-radius: var(--border-radius-lg-ml);
|
|
444
|
+
box-shadow: none;
|
|
351
445
|
}
|
|
352
446
|
|
|
353
447
|
.table {
|
|
354
448
|
width: 100%;
|
|
355
449
|
margin-bottom: 0;
|
|
356
450
|
background: white;
|
|
357
|
-
border-collapse:
|
|
451
|
+
border-collapse: separate;
|
|
452
|
+
border-spacing: 0;
|
|
358
453
|
}
|
|
359
454
|
|
|
360
455
|
.table thead {
|
|
361
|
-
background:
|
|
362
|
-
color:
|
|
456
|
+
background: var(--light-color-ml);
|
|
457
|
+
color: var(--dark-color-ml);
|
|
458
|
+
position: sticky;
|
|
459
|
+
top: 0;
|
|
460
|
+
z-index: 10;
|
|
363
461
|
}
|
|
364
462
|
|
|
365
463
|
.table th,
|
|
366
464
|
.table td {
|
|
367
|
-
padding: 0.5rem
|
|
465
|
+
padding: 0.5rem 1.25rem;
|
|
368
466
|
vertical-align: middle;
|
|
369
467
|
border-bottom: 1px solid var(--gray-light-color-ml);
|
|
370
|
-
font-size: 0.
|
|
468
|
+
font-size: 0.95rem;
|
|
371
469
|
}
|
|
372
470
|
|
|
373
471
|
.table th {
|
|
374
|
-
font-weight:
|
|
375
|
-
text-transform:
|
|
376
|
-
font-size: 0.
|
|
377
|
-
letter-spacing: 0.
|
|
472
|
+
font-weight: 700;
|
|
473
|
+
text-transform: none;
|
|
474
|
+
font-size: 0.85rem;
|
|
475
|
+
letter-spacing: 0.02em;
|
|
476
|
+
color: var(--text-muted-color-ml);
|
|
477
|
+
border-bottom: 2px solid var(--gray-light-color-ml);
|
|
378
478
|
}
|
|
379
479
|
|
|
380
480
|
.table tbody tr {
|
|
381
|
-
transition:
|
|
481
|
+
transition: background-color 0.2s ease, transform 0.2s cubic-bezier(0.2, 0.8, 0.2, 1);
|
|
382
482
|
position: relative;
|
|
483
|
+
background-color: white;
|
|
383
484
|
}
|
|
384
485
|
|
|
385
486
|
.table tbody tr:hover {
|
|
386
|
-
background:
|
|
487
|
+
background-color: var(--light-color-ml);
|
|
387
488
|
}
|
|
388
489
|
|
|
389
490
|
.file-row {
|
|
390
491
|
border-left: 3px solid transparent;
|
|
391
|
-
transition: all 0.2s ease;
|
|
392
492
|
}
|
|
393
493
|
|
|
394
494
|
.file-row:hover {
|
|
395
495
|
border-left-color: var(--primary-color-ml);
|
|
396
|
-
background:
|
|
496
|
+
background-color: #f0fdfa;
|
|
497
|
+
/* Very light teal */
|
|
498
|
+
z-index: 1;
|
|
397
499
|
}
|
|
398
500
|
|
|
399
501
|
.folder-row {
|
|
400
502
|
border-left: 3px solid transparent;
|
|
401
|
-
transition: all 0.2s ease;
|
|
402
503
|
cursor: pointer;
|
|
403
504
|
}
|
|
404
505
|
|
|
405
506
|
.folder-row:hover {
|
|
406
507
|
border-left-color: #f59e0b;
|
|
407
|
-
background:
|
|
508
|
+
background-color: #fffbeb;
|
|
509
|
+
/* Very light amber */
|
|
510
|
+
z-index: 1;
|
|
408
511
|
}
|
|
409
512
|
|
|
410
513
|
.folder-row .file-icon {
|
|
@@ -414,12 +517,11 @@
|
|
|
414
517
|
}
|
|
415
518
|
|
|
416
519
|
.folder-row:hover .file-icon {
|
|
417
|
-
transform: scale(1.1);
|
|
418
520
|
box-shadow: 0 4px 12px rgba(245, 158, 11, 0.3);
|
|
419
521
|
}
|
|
420
522
|
|
|
421
523
|
.breadcrumb-nav {
|
|
422
|
-
padding:
|
|
524
|
+
padding: 0.5rem 1.5rem;
|
|
423
525
|
background: linear-gradient(135deg, var(--light-color-ml) 0%, #f9fafb 100%);
|
|
424
526
|
border-bottom: 1px solid var(--gray-light-color-ml);
|
|
425
527
|
display: flex;
|
|
@@ -459,8 +561,8 @@
|
|
|
459
561
|
}
|
|
460
562
|
|
|
461
563
|
.file-icon {
|
|
462
|
-
width:
|
|
463
|
-
height:
|
|
564
|
+
width: 40px;
|
|
565
|
+
height: 40px;
|
|
464
566
|
background: linear-gradient(135deg, var(--primary-light-color-ml) 0%, rgba(13, 148, 136, 0.08) 100%);
|
|
465
567
|
border-radius: 10px;
|
|
466
568
|
display: flex;
|
|
@@ -474,7 +576,6 @@
|
|
|
474
576
|
}
|
|
475
577
|
|
|
476
578
|
.file-row:hover .file-icon {
|
|
477
|
-
transform: scale(1.1);
|
|
478
579
|
box-shadow: 0 2px 8px rgba(13, 148, 136, 0.2);
|
|
479
580
|
}
|
|
480
581
|
|
|
@@ -609,7 +710,7 @@
|
|
|
609
710
|
}
|
|
610
711
|
|
|
611
712
|
.empty-state i {
|
|
612
|
-
font-size: 5rem;
|
|
713
|
+
font-size: 1.5rem;
|
|
613
714
|
margin-bottom: 1.5rem;
|
|
614
715
|
opacity: 0.3;
|
|
615
716
|
background: linear-gradient(135deg, var(--primary-color-ml), var(--primary-dark-color-ml));
|
|
@@ -618,6 +719,12 @@
|
|
|
618
719
|
background-clip: text;
|
|
619
720
|
}
|
|
620
721
|
|
|
722
|
+
.fa-add:before,
|
|
723
|
+
.fa-plus:before {
|
|
724
|
+
color: #fff !important;
|
|
725
|
+
align-items: center;
|
|
726
|
+
}
|
|
727
|
+
|
|
621
728
|
.empty-state h4 {
|
|
622
729
|
color: var(--dark-color-ml);
|
|
623
730
|
margin-bottom: 0.75rem;
|
|
@@ -1012,39 +1119,57 @@
|
|
|
1012
1119
|
align-items: center;
|
|
1013
1120
|
}
|
|
1014
1121
|
|
|
1015
|
-
/* Skeleton loaders */
|
|
1122
|
+
/* Skeleton loaders - tuned grid to equalize column spacing visually */
|
|
1016
1123
|
.skeleton-row {
|
|
1017
|
-
display:
|
|
1124
|
+
display: grid;
|
|
1125
|
+
grid-template-columns: 48px minmax(120px, 1fr) minmax(120px, 1fr) minmax(120px, 240px); /* icon + 3 columns with balanced min widths */
|
|
1018
1126
|
gap: 1rem;
|
|
1019
1127
|
padding: 1rem;
|
|
1128
|
+
align-items: center;
|
|
1129
|
+
justify-items: stretch; /* make cells span their tracks evenly */
|
|
1020
1130
|
}
|
|
1021
1131
|
|
|
1132
|
+
/* make skeleton boxes flexible and responsive */
|
|
1022
1133
|
.skeleton-box {
|
|
1023
1134
|
background: linear-gradient(90deg, #f5f7fa, #eef2f6);
|
|
1024
1135
|
border-radius: 6px;
|
|
1025
|
-
}
|
|
1026
|
-
|
|
1027
|
-
.skeleton-box.s-80 {
|
|
1028
|
-
width: 80px;
|
|
1029
1136
|
height: 16px;
|
|
1137
|
+
width: 100%;
|
|
1138
|
+
min-width: 0;
|
|
1139
|
+
justify-self: stretch;
|
|
1030
1140
|
}
|
|
1031
1141
|
|
|
1032
|
-
|
|
1033
|
-
|
|
1034
|
-
|
|
1035
|
-
}
|
|
1142
|
+
/* semantic size hints (max widths) and alignment to ensure visual balance */
|
|
1143
|
+
.skeleton-box.s-40 { max-width: 48px; justify-self: start; }
|
|
1144
|
+
.skeleton-box.s-80 { max-width: 160px; justify-self: center; }
|
|
1145
|
+
.skeleton-box.s-200 { max-width: 220px; justify-self: end; }
|
|
1036
1146
|
|
|
1037
|
-
.skeleton-
|
|
1147
|
+
.skeleton-row .file-icon {
|
|
1038
1148
|
width: 40px;
|
|
1039
|
-
height:
|
|
1149
|
+
height: 40px;
|
|
1150
|
+
border-radius: 8px;
|
|
1040
1151
|
}
|
|
1041
1152
|
|
|
1042
|
-
|
|
1043
|
-
|
|
1044
|
-
|
|
1045
|
-
|
|
1153
|
+
/* Responsive adjustments */
|
|
1154
|
+
@media (max-width: 992px) {
|
|
1155
|
+
.skeleton-row {
|
|
1156
|
+
grid-template-columns: 40px minmax(100px, 1fr) minmax(100px, 1fr) minmax(100px, 200px);
|
|
1157
|
+
gap: 0.9rem;
|
|
1158
|
+
}
|
|
1159
|
+
.skeleton-box.s-200 { max-width: 180px; }
|
|
1160
|
+
}
|
|
1161
|
+
|
|
1162
|
+
@media (max-width: 768px) {
|
|
1163
|
+
.skeleton-row {
|
|
1164
|
+
grid-template-columns: 40px 1fr 1fr 1fr;
|
|
1165
|
+
gap: 0.75rem;
|
|
1166
|
+
}
|
|
1167
|
+
.skeleton-box.s-80 { justify-self: start; }
|
|
1168
|
+
.skeleton-box.s-200 { max-width: 140px; justify-self: end; }
|
|
1046
1169
|
}
|
|
1047
1170
|
|
|
1171
|
+
|
|
1172
|
+
|
|
1048
1173
|
.btn:disabled {
|
|
1049
1174
|
opacity: 0.5;
|
|
1050
1175
|
cursor: not-allowed;
|
|
@@ -1122,12 +1247,21 @@
|
|
|
1122
1247
|
}
|
|
1123
1248
|
|
|
1124
1249
|
.stats-content {
|
|
1125
|
-
|
|
1126
|
-
text-align: center;
|
|
1250
|
+
gap: 0.75rem;
|
|
1127
1251
|
}
|
|
1128
1252
|
|
|
1129
1253
|
.stats-icon {
|
|
1130
|
-
|
|
1254
|
+
width: 50px;
|
|
1255
|
+
height: 50px;
|
|
1256
|
+
font-size: 1.3rem;
|
|
1257
|
+
}
|
|
1258
|
+
|
|
1259
|
+
.stats-text h2 {
|
|
1260
|
+
font-size: 1.3rem;
|
|
1261
|
+
}
|
|
1262
|
+
|
|
1263
|
+
.stats-text p {
|
|
1264
|
+
font-size: 0.85rem;
|
|
1131
1265
|
}
|
|
1132
1266
|
|
|
1133
1267
|
.filter-form {
|
|
@@ -1144,8 +1278,23 @@
|
|
|
1144
1278
|
padding: 1rem;
|
|
1145
1279
|
}
|
|
1146
1280
|
|
|
1281
|
+
.stats-content {
|
|
1282
|
+
gap: 0.5rem;
|
|
1283
|
+
}
|
|
1284
|
+
|
|
1285
|
+
.stats-icon {
|
|
1286
|
+
width: 40px;
|
|
1287
|
+
height: 40px;
|
|
1288
|
+
font-size: 1.2rem;
|
|
1289
|
+
}
|
|
1290
|
+
|
|
1147
1291
|
.stats-text h2 {
|
|
1148
|
-
font-size: 1.
|
|
1292
|
+
font-size: 1.2rem;
|
|
1293
|
+
}
|
|
1294
|
+
|
|
1295
|
+
.stats-text p {
|
|
1296
|
+
font-size: 0.8rem;
|
|
1297
|
+
margin: 0.25rem 0 0;
|
|
1149
1298
|
}
|
|
1150
1299
|
|
|
1151
1300
|
.btn-group {
|
|
@@ -1195,8 +1344,8 @@
|
|
|
1195
1344
|
}
|
|
1196
1345
|
|
|
1197
1346
|
.file-row td:nth-child(2) .file-icon {
|
|
1198
|
-
width:
|
|
1199
|
-
height:
|
|
1347
|
+
width: 40px;
|
|
1348
|
+
height: 40px;
|
|
1200
1349
|
font-size: 1.25rem;
|
|
1201
1350
|
border-radius: 10px;
|
|
1202
1351
|
}
|
|
@@ -1298,8 +1447,8 @@
|
|
|
1298
1447
|
|
|
1299
1448
|
/* Make folder icon and name more prominent on mobile */
|
|
1300
1449
|
.folder-row .file-icon {
|
|
1301
|
-
width:
|
|
1302
|
-
height:
|
|
1450
|
+
width: 40px;
|
|
1451
|
+
height: 40px;
|
|
1303
1452
|
font-size: 1.2rem;
|
|
1304
1453
|
margin-right: 0.75rem;
|
|
1305
1454
|
}
|
|
@@ -1324,8 +1473,8 @@
|
|
|
1324
1473
|
}
|
|
1325
1474
|
|
|
1326
1475
|
.file-icon {
|
|
1327
|
-
width:
|
|
1328
|
-
height:
|
|
1476
|
+
width: 40px;
|
|
1477
|
+
height: 40px;
|
|
1329
1478
|
font-size: 1.2rem;
|
|
1330
1479
|
margin-right: 0.85rem;
|
|
1331
1480
|
}
|
|
@@ -1355,7 +1504,7 @@
|
|
|
1355
1504
|
}
|
|
1356
1505
|
|
|
1357
1506
|
.breadcrumb-nav {
|
|
1358
|
-
padding: 0.
|
|
1507
|
+
padding: 0.5rem 1rem;
|
|
1359
1508
|
font-size: 0.85rem;
|
|
1360
1509
|
}
|
|
1361
1510
|
|
|
@@ -1379,7 +1528,7 @@
|
|
|
1379
1528
|
}
|
|
1380
1529
|
|
|
1381
1530
|
.empty-state i {
|
|
1382
|
-
font-size:
|
|
1531
|
+
font-size: 1.5rem;
|
|
1383
1532
|
}
|
|
1384
1533
|
|
|
1385
1534
|
.modal-dialog {
|
|
@@ -1410,4 +1559,75 @@
|
|
|
1410
1559
|
.file-stats .stats-text p {
|
|
1411
1560
|
font-size: 0.85rem;
|
|
1412
1561
|
}
|
|
1562
|
+
}
|
|
1563
|
+
|
|
1564
|
+
.dtm {
|
|
1565
|
+
display: none;
|
|
1566
|
+
}
|
|
1567
|
+
|
|
1568
|
+
/* Additional utility classes for removing inline styles */
|
|
1569
|
+
.file-list-header {
|
|
1570
|
+
display: flex;
|
|
1571
|
+
justify-content: space-between;
|
|
1572
|
+
align-items: center;
|
|
1573
|
+
flex-wrap: wrap;
|
|
1574
|
+
gap: 1rem;
|
|
1575
|
+
}
|
|
1576
|
+
|
|
1577
|
+
.search-inline {
|
|
1578
|
+
flex: 1;
|
|
1579
|
+
max-width: 640px;
|
|
1580
|
+
display: flex;
|
|
1581
|
+
gap: 0.5rem;
|
|
1582
|
+
align-items: center;
|
|
1583
|
+
justify-content: center;
|
|
1584
|
+
}
|
|
1585
|
+
|
|
1586
|
+
.view-btn-left {
|
|
1587
|
+
border-top-right-radius: 0;
|
|
1588
|
+
border-bottom-right-radius: 0;
|
|
1589
|
+
}
|
|
1590
|
+
|
|
1591
|
+
.view-btn-right {
|
|
1592
|
+
border-top-left-radius: 0;
|
|
1593
|
+
border-bottom-left-radius: 0;
|
|
1594
|
+
}
|
|
1595
|
+
|
|
1596
|
+
.pagination-container {
|
|
1597
|
+
display: none;
|
|
1598
|
+
padding: 1rem;
|
|
1599
|
+
border-top: 1px solid var(--gray-light-color-ml);
|
|
1600
|
+
background: var(--light-color-ml);
|
|
1601
|
+
}
|
|
1602
|
+
|
|
1603
|
+
.modal-body-text-style {
|
|
1604
|
+
color: var(--gray-color-ml);
|
|
1605
|
+
margin-bottom: 0;
|
|
1606
|
+
}
|
|
1607
|
+
|
|
1608
|
+
.modal-body-text-top {
|
|
1609
|
+
color: var(--gray-color-ml);
|
|
1610
|
+
margin-top: 0.5rem;
|
|
1611
|
+
margin-bottom: 0;
|
|
1612
|
+
}
|
|
1613
|
+
|
|
1614
|
+
.modal-header-spacing {
|
|
1615
|
+
margin-top: 0.5rem;
|
|
1616
|
+
color: var(--gray-color-ml);
|
|
1617
|
+
}
|
|
1618
|
+
|
|
1619
|
+
.toast-container {
|
|
1620
|
+
position: fixed;
|
|
1621
|
+
bottom: 20px;
|
|
1622
|
+
right: 20px;
|
|
1623
|
+
z-index: 1050;
|
|
1624
|
+
display: flex;
|
|
1625
|
+
flex-direction: column;
|
|
1626
|
+
gap: 10px;
|
|
1627
|
+
}
|
|
1628
|
+
|
|
1629
|
+
@media (max-width: 768px) {
|
|
1630
|
+
.dtm {
|
|
1631
|
+
display: block;
|
|
1632
|
+
}
|
|
1413
1633
|
}
|