feat(client): add create/edit environment pages and hoverable cards

- add CreateEnvironmentPage and EditEnvironmentPage with pre-filled form
- add /environments/new and /environments/:id/edit routes
- add Edit option to card context menu and detail page toolbar
- move env id pill to card footer (left), timestamp stays right
- make env cards clickable (navigate to detail); cog stops propagation
- add hoverable Card variant with primary border+shadow on hover
- add link color tokens and global anchor styles for both themes
- fix Timestamp pill visibility in dark mode with border token
- add DescriptionList truncate prop with ellipsis and title tooltip
- stack DescriptionList dd below dt with 8px gap between items
This commit is contained in:
2026-04-09 17:22:01 +03:00
parent 89016b01d2
commit 18177cac52
11 changed files with 397 additions and 16 deletions
+49 -3
View File
@@ -16,6 +16,12 @@
margin-bottom: var(--space-4);
}
.toolbarActions {
display: flex;
align-items: center;
gap: var(--space-2);
}
.error {
margin-bottom: var(--space-4);
padding: var(--space-3) var(--space-4);
@@ -44,6 +50,21 @@
gap: var(--space-3);
}
.envCardAdd {
display: flex;
align-items: center;
justify-content: center;
min-height: 120px;
border: 2px dashed var(--color-border);
border-radius: var(--radius-lg);
transition: border-color var(--transition), background var(--transition);
}
.envCardAdd:hover {
border-color: var(--color-primary);
background: color-mix(in srgb, var(--color-primary) 6%, transparent);
}
.envCardHeader {
display: flex;
align-items: center;
@@ -54,15 +75,21 @@
.envCardId {
font-size: var(--font-size-xs);
font-weight: 700;
color: inherit;
color: var(--color-text-muted);
flex-shrink: 0;
background: rgba(0, 0, 0, 0.22);
border: 1px solid rgba(0, 0, 0, 0.35);
border: var(--border-width) solid var(--color-border);
border-radius: 9999px;
padding: 1px var(--space-2);
line-height: 1.6;
}
.envCardFooter {
display: flex;
align-items: center;
justify-content: space-between;
width: 100%;
}
.envCardHeader button {
color: inherit;
padding: var(--space-1);
@@ -115,6 +142,25 @@
color: var(--color-text-muted);
}
/* ── Environment form ───────────────────────────────────────────────────── */
.formCard {
max-width: 540px;
}
.formFields {
display: flex;
flex-direction: column;
gap: var(--space-4);
margin-bottom: var(--space-6);
}
.formActions {
display: flex;
gap: var(--space-3);
justify-content: flex-end;
}
/* ── Environment detail page ────────────────────────────────────────────── */
.detailToolbar {