2026-03-28 14:54:29 +01:00
|
|
|
/* Scrollable content area — fills remaining height */
|
feat: replace UI with design system example pages wired to real API
Migrate all page components from the @cameleer/design-system v0.0.3
example UI, replacing mock data with real backend API hooks. This brings
richer visuals (KpiStrip, GroupCard, RouteFlow, ProcessorTimeline,
DateRangePicker, expandable rows) while preserving all existing API
integration, auth, and routing infrastructure.
Pages migrated: Dashboard, RoutesMetrics, RouteDetail, ExchangeDetail,
AgentHealth, AgentInstance, OidcConfig, AuditLog, RBAC (Users/Groups/Roles).
Also enhanced LayoutShell CommandPalette with real search data from catalog.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 16:42:16 +01:00
|
|
|
.content {
|
2026-03-28 14:54:29 +01:00
|
|
|
display: flex;
|
|
|
|
|
flex-direction: column;
|
feat: replace UI with design system example pages wired to real API
Migrate all page components from the @cameleer/design-system v0.0.3
example UI, replacing mock data with real backend API hooks. This brings
richer visuals (KpiStrip, GroupCard, RouteFlow, ProcessorTimeline,
DateRangePicker, expandable rows) while preserving all existing API
integration, auth, and routing infrastructure.
Pages migrated: Dashboard, RoutesMetrics, RouteDetail, ExchangeDetail,
AgentHealth, AgentInstance, OidcConfig, AuditLog, RBAC (Users/Groups/Roles).
Also enhanced LayoutShell CommandPalette with real search data from catalog.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 16:42:16 +01:00
|
|
|
flex: 1;
|
2026-03-28 14:54:29 +01:00
|
|
|
min-height: 0;
|
feat: replace UI with design system example pages wired to real API
Migrate all page components from the @cameleer/design-system v0.0.3
example UI, replacing mock data with real backend API hooks. This brings
richer visuals (KpiStrip, GroupCard, RouteFlow, ProcessorTimeline,
DateRangePicker, expandable rows) while preserving all existing API
integration, auth, and routing infrastructure.
Pages migrated: Dashboard, RoutesMetrics, RouteDetail, ExchangeDetail,
AgentHealth, AgentInstance, OidcConfig, AuditLog, RBAC (Users/Groups/Roles).
Also enhanced LayoutShell CommandPalette with real search data from catalog.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 16:42:16 +01:00
|
|
|
min-width: 0;
|
|
|
|
|
background: var(--bg-body);
|
|
|
|
|
}
|
|
|
|
|
|
2026-03-28 14:54:29 +01:00
|
|
|
/* Table section — stretches to fill and scrolls internally */
|
|
|
|
|
|
|
|
|
|
|
2026-03-19 18:16:16 +01:00
|
|
|
.tableSection {
|
2026-03-28 14:54:29 +01:00
|
|
|
display: flex;
|
|
|
|
|
flex-direction: column;
|
|
|
|
|
flex: 1;
|
|
|
|
|
min-height: 0;
|
2026-03-19 18:16:16 +01:00
|
|
|
background: var(--bg-surface);
|
|
|
|
|
overflow: hidden;
|
|
|
|
|
}
|
|
|
|
|
|
2026-03-28 14:57:16 +01:00
|
|
|
.tableScroll {
|
2026-03-28 14:54:29 +01:00
|
|
|
flex: 1;
|
|
|
|
|
min-height: 0;
|
|
|
|
|
overflow-y: auto;
|
|
|
|
|
}
|
|
|
|
|
|
2026-03-19 18:16:16 +01:00
|
|
|
.tableHeader {
|
|
|
|
|
display: flex;
|
|
|
|
|
align-items: center;
|
|
|
|
|
justify-content: space-between;
|
2026-03-28 14:52:53 +01:00
|
|
|
padding: 8px 12px;
|
2026-03-19 18:16:16 +01:00
|
|
|
border-bottom: 1px solid var(--border-subtle);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.tableTitle {
|
2026-03-27 23:33:39 +01:00
|
|
|
display: flex;
|
|
|
|
|
align-items: center;
|
|
|
|
|
gap: 4px;
|
2026-03-19 18:16:16 +01:00
|
|
|
font-size: 13px;
|
|
|
|
|
font-weight: 600;
|
|
|
|
|
color: var(--text-primary);
|
|
|
|
|
}
|
|
|
|
|
|
2026-03-27 23:33:39 +01:00
|
|
|
.clearSearch {
|
|
|
|
|
display: inline-flex;
|
|
|
|
|
align-items: center;
|
|
|
|
|
justify-content: center;
|
|
|
|
|
width: 18px;
|
|
|
|
|
height: 18px;
|
|
|
|
|
margin-left: 4px;
|
|
|
|
|
border: none;
|
|
|
|
|
background: var(--bg-hover, #F5F0EA);
|
|
|
|
|
color: var(--text-secondary, #5C5347);
|
|
|
|
|
border-radius: 50%;
|
|
|
|
|
cursor: pointer;
|
|
|
|
|
padding: 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.clearSearch:hover {
|
|
|
|
|
background: var(--border, #E4DFD8);
|
|
|
|
|
color: var(--text-primary, #1A1612);
|
|
|
|
|
}
|
|
|
|
|
|
2026-03-19 18:16:16 +01:00
|
|
|
.tableRight {
|
|
|
|
|
display: flex;
|
|
|
|
|
align-items: center;
|
|
|
|
|
gap: 10px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.tableMeta {
|
|
|
|
|
font-size: 11px;
|
|
|
|
|
color: var(--text-muted);
|
|
|
|
|
font-family: var(--font-mono);
|
|
|
|
|
}
|
|
|
|
|
|
feat: replace UI with design system example pages wired to real API
Migrate all page components from the @cameleer/design-system v0.0.3
example UI, replacing mock data with real backend API hooks. This brings
richer visuals (KpiStrip, GroupCard, RouteFlow, ProcessorTimeline,
DateRangePicker, expandable rows) while preserving all existing API
integration, auth, and routing infrastructure.
Pages migrated: Dashboard, RoutesMetrics, RouteDetail, ExchangeDetail,
AgentHealth, AgentInstance, OidcConfig, AuditLog, RBAC (Users/Groups/Roles).
Also enhanced LayoutShell CommandPalette with real search data from catalog.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 16:42:16 +01:00
|
|
|
/* Status cell */
|
|
|
|
|
.statusCell {
|
|
|
|
|
display: flex;
|
|
|
|
|
align-items: center;
|
|
|
|
|
gap: 5px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* Route cells */
|
|
|
|
|
.routeName {
|
|
|
|
|
font-size: 12px;
|
|
|
|
|
font-weight: 500;
|
|
|
|
|
color: var(--text-primary);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* Application column */
|
|
|
|
|
.appName {
|
|
|
|
|
font-size: 12px;
|
|
|
|
|
color: var(--text-secondary);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* Duration color classes */
|
|
|
|
|
.durFast {
|
|
|
|
|
color: var(--success);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.durNormal {
|
|
|
|
|
color: var(--text-secondary);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.durSlow {
|
|
|
|
|
color: var(--warning);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.durBreach {
|
|
|
|
|
color: var(--error);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* Agent badge in table */
|
|
|
|
|
.agentBadge {
|
|
|
|
|
display: inline-flex;
|
|
|
|
|
align-items: center;
|
|
|
|
|
gap: 5px;
|
|
|
|
|
font-family: var(--font-mono);
|
|
|
|
|
font-size: 11px;
|
|
|
|
|
color: var(--text-secondary);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.agentDot {
|
|
|
|
|
width: 6px;
|
|
|
|
|
height: 6px;
|
|
|
|
|
border-radius: 50%;
|
|
|
|
|
background: #5db866;
|
|
|
|
|
box-shadow: 0 0 4px rgba(93, 184, 102, 0.4);
|
|
|
|
|
flex-shrink: 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* Inline error preview below row */
|
|
|
|
|
.inlineError {
|
|
|
|
|
display: flex;
|
|
|
|
|
align-items: flex-start;
|
|
|
|
|
gap: 10px;
|
|
|
|
|
padding: 8px 12px;
|
|
|
|
|
background: var(--error-bg);
|
|
|
|
|
border-left: 3px solid var(--error-border);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.inlineErrorIcon {
|
|
|
|
|
color: var(--error);
|
|
|
|
|
font-size: 14px;
|
|
|
|
|
flex-shrink: 0;
|
|
|
|
|
margin-top: 1px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.inlineErrorText {
|
|
|
|
|
font-size: 11px;
|
|
|
|
|
color: var(--error);
|
|
|
|
|
font-family: var(--font-mono);
|
|
|
|
|
line-height: 1.4;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.inlineErrorHint {
|
|
|
|
|
font-size: 10px;
|
|
|
|
|
color: var(--text-muted);
|
|
|
|
|
margin-top: 3px;
|
|
|
|
|
}
|
|
|
|
|
|
2026-03-26 18:36:53 +01:00
|
|
|
/* Attributes cell in table */
|
|
|
|
|
.attrCell {
|
|
|
|
|
display: flex;
|
|
|
|
|
gap: 4px;
|
|
|
|
|
align-items: center;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.attrOverflow {
|
|
|
|
|
font-size: 10px;
|
|
|
|
|
color: var(--text-muted);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.muted {
|
|
|
|
|
color: var(--text-muted);
|
|
|
|
|
}
|
|
|
|
|
|