feat: complete TASK-WP2-03 project lifecycle

This commit is contained in:
suyx
2026-08-02 20:00:18 +08:00
parent da6fa25e60
commit 9b4860cfc2
17 changed files with 1477 additions and 10 deletions
+95 -2
View File
@@ -522,8 +522,8 @@
.project-card-body {
display: grid;
min-height: 170px;
grid-template-rows: minmax(48px, auto) auto auto 1fr;
min-height: 198px;
grid-template-rows: minmax(48px, auto) auto auto auto 1fr;
gap: 8px;
padding: 16px;
}
@@ -568,6 +568,46 @@
font-weight: 800;
}
.project-card-body .trash-expiry {
color: #8f1d14;
font-weight: 700;
}
.project-card-body .project-card-actions {
display: flex;
align-self: end;
justify-content: flex-start;
gap: 8px;
flex-wrap: wrap;
}
.project-card-actions a,
.project-card-actions button {
display: inline-grid;
min-height: 38px;
place-items: center;
padding: 7px 10px;
border: 1px solid #111111;
border-radius: 0;
color: #111111;
background: #ffffff;
font-size: 12px;
font-weight: 800;
text-decoration: none;
}
.project-card-actions button:disabled {
border-color: #b2b2ac;
color: #777770;
background: #dfdfda;
cursor: not-allowed;
}
.project-card[data-status="trashed"] .project-card-actions button:last-child:not(:disabled) {
border-color: #a52e24;
color: #8f1d14;
}
.projects-stale,
.projects-notice {
padding: 12px 14px;
@@ -912,6 +952,55 @@
background: rgb(17 17 17 / 58%);
}
.project-purge-overlay {
position: fixed;
z-index: 40;
inset: 0;
display: grid;
place-items: center;
padding: 24px;
background: rgb(17 17 17 / 62%);
}
.project-purge-dialog {
width: min(520px, 100%);
padding: 28px;
border: 2px solid #111111;
background: #ffffff;
box-shadow: 10px 10px 0 #d14a3b;
}
.project-purge-dialog > p:first-child {
margin: 0 0 8px;
font-family: Consolas, monospace;
font-size: 11px;
font-weight: 700;
}
.project-purge-dialog h2 {
margin: 0 0 10px;
}
.project-purge-dialog > div {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 8px;
margin-top: 22px;
}
.project-purge-dialog button {
min-height: 44px;
border: 1px solid #111111;
border-radius: 0;
background: #ffffff;
font-weight: 800;
}
.project-purge-dialog button:first-child {
color: #ffffff;
background: #a52e24;
}
.project-leave-dialog {
width: min(560px, 100%);
padding: 28px;
@@ -1120,6 +1209,10 @@
grid-template-columns: 1fr;
}
.project-purge-dialog > div {
grid-template-columns: 1fr;
}
.project-actions {
grid-template-columns: 1fr;
}