Feat: FileManager (#98) (#703)

* feat: add file manager module

- Complete file manager implementation with UI/UX
- Add drive management functionality
- Add file upload/download with progress tracking
- Add stamp integration and handling
- Add bulk operations and context menus

Co-authored-by: Roland Seres <roland.seres90@gmail.com>
Co-authored-by: nidishk <nidishkrishnan45@gmail.com>
This commit is contained in:
Bálint Ujvári
2025-11-12 11:26:00 +01:00
committed by GitHub
parent 1249c0df71
commit 5bfe2a0331
107 changed files with 21529 additions and 5578 deletions
@@ -0,0 +1,111 @@
.fm-admin-status-bar-container {
position: relative;
display: flex;
align-items: center;
justify-content: space-between;
background: rgb(33, 33, 33);
height: 60px;
padding: 10px 16px;
&.is-loading {
filter: blur(1px);
}
}
.fm-admin-status-bar-left {
display: flex;
align-items: center;
gap: 16px;
color: rgb(229, 231, 235);
}
.fm-admin-status-bar-upgrade-button {
padding: 6px;
background-color: rgb(237, 237, 237);
border-radius: 0;
text-align: center;
font-weight: 700;
cursor: pointer;
transition: opacity 0.2s ease;
&:hover {
opacity: 0.9;
}
&[aria-disabled='true'] {
pointer-events: none;
opacity: 0.6;
}
}
.fm-admin-status-bar-loader {
position: absolute;
inset: 0;
pointer-events: none;
background: linear-gradient(90deg, transparent, rgba(0, 0, 0, 0.04), transparent);
animation: fmShimmer 1.2s infinite;
border-radius: 6px;
}
@keyframes fmShimmer {
0% {
transform: translateX(-100%);
}
100% {
transform: translateX(100%);
}
}
.fm-admin-status-bar-progress-pill-container {
position: absolute;
height: 60px;
width: 100%;
display: flex;
align-items: center;
bottom: 0;
right: 0;
}
.fm-admin-status-progress-pill {
position: absolute;
right: 16px;
display: flex;
align-items: center;
gap: 6px;
padding: 6px 12px;
font-size: 13px;
font-weight: 500;
background: rgb(255, 255, 255);
color: #000000;
border: 1px solid rgba(255, 255, 255, 0.15);
backdrop-filter: blur(6px);
box-shadow: 0 0 8px rgba(0, 0, 0, 0.25);
cursor: pointer;
transition: all 0.2s ease-in-out;
z-index: 999;
&:hover {
background: rgb(221, 221, 221);
}
&::after {
content: '';
font-size: 14px;
opacity: 0.7;
transition: transform 0.2s ease;
}
&:hover::after {
transform: translateX(2px);
opacity: 1;
}
}
.fm-admin-status-bar-container.is-loading .fm-admin-status-progress-pill {
filter: none;
}