@@ -31,6 +31,7 @@
+
0 of 0 chunks
@@ -38,6 +39,11 @@
+
+
- Choose a file to begin.
diff --git a/static/styles.css b/static/styles.css
index 7db618d..3b8d031 100644
--- a/static/styles.css
+++ b/static/styles.css
@@ -29,6 +29,10 @@ input {
font: inherit;
}
+[hidden] {
+ display: none !important;
+}
+
.app-shell {
width: min(720px, 100%);
margin: 0 auto;
@@ -79,16 +83,20 @@ h1 {
}
.file-picker {
- display: grid;
- gap: 10px;
+ display: flex;
+ align-items: center;
+ gap: 12px;
padding: 18px;
border: 1px dashed var(--line);
border-radius: 8px;
- cursor: pointer;
}
-.file-picker span {
- font-weight: 700;
+.file-picker input {
+ position: absolute;
+ width: 1px;
+ height: 1px;
+ overflow: hidden;
+ clip: rect(0, 0, 0, 0);
}
.file-summary {
@@ -117,6 +125,12 @@ h1 {
transition: width 180ms ease;
}
+.progress-meta {
+ margin-top: -12px;
+ color: var(--muted);
+ font-size: 0.875rem;
+}
+
.actions {
display: flex;
flex-wrap: wrap;
@@ -134,12 +148,67 @@ button {
cursor: pointer;
}
+button.secondary {
+ border-color: var(--line);
+ color: var(--text);
+ background: transparent;
+}
+
+button.danger {
+ border-color: #b42318;
+ color: #b42318;
+ background: transparent;
+}
+
button:disabled {
color: var(--muted);
background: var(--track);
cursor: not-allowed;
}
+.pending-section {
+ display: grid;
+ gap: 12px;
+}
+
+h2 {
+ margin: 0;
+ font-size: 1rem;
+}
+
+.pending-list {
+ display: grid;
+ gap: 10px;
+ margin: 0;
+ padding: 0;
+ list-style: none;
+}
+
+.pending-item {
+ display: grid;
+ grid-template-columns: minmax(0, 1fr) auto auto;
+ align-items: center;
+ gap: 10px;
+ padding: 12px;
+ border: 1px solid var(--line);
+ border-radius: 8px;
+}
+
+.pending-item strong,
+.file-summary strong {
+ overflow-wrap: anywhere;
+}
+
+.pending-meta {
+ display: grid;
+ gap: 4px;
+}
+
+.pending-meta span {
+ color: var(--muted);
+ font-size: 0.875rem;
+}
+
.event-log {
min-height: 80px;
margin: 0;
@@ -174,4 +243,8 @@ button:disabled {
.upload-panel {
padding: 18px;
}
+
+ .pending-item {
+ grid-template-columns: 1fr;
+ }
}
diff --git a/tests/static_server.rs b/tests/static_server.rs
index 4d612c8..66d913c 100644
--- a/tests/static_server.rs
+++ b/tests/static_server.rs
@@ -22,7 +22,8 @@ async fn serves_index_page() -> Result<(), Box
> {
let body = String::from_utf8(body.to_vec())?;
assert!(body.contains("upl"));
- assert!(body.contains("Select file"));
+ assert!(body.contains("Choose file"));
+ assert!(body.contains("Pending uploads"));
Ok(())
}