Generic list component with render props for item content, search input,
add button, selection highlighting, and keyboard navigation support.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Two-column grid layout with configurable ratio (1:1, 1:2, 2:3), list/detail
slots, and empty state message. Uses CSS custom property for dynamic grid
columns.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
When a title string is provided, renders an uppercase monospace h3 header
with a subtle border separator above the card body. Children are wrapped
in a padded body div when title is present; without title, children render
directly as before (no breaking change).
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Inline <span> component supporting success, warning, error, running, and
muted variants with optional bold styling. Includes 7 unit tests.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Composable login components with social provider support,
client-side validation, and full dark mode compatibility.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Implements the LoginForm composite with social login, email/password
credentials, remember me, forgot password, and sign up sections.
All sections conditionally render based on provided props.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Make onSubmit optional so the social-only variant works cleanly
without requiring a no-op callback.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Click user name/avatar to open dropdown with Logout option.
TopBar accepts optional onLogout callback prop.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The Gitea runner uses sh, not bash — [[ ]] syntax fails silently
causing all pushes to publish as snapshots instead of tagged releases.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Add ButtonGroup primitive: multi-select toggle with colored dot indicators
- Replace FilterPill status filters with ButtonGroup in TopBar and EventFeed
- Add light/dark mode toggle to TopBar (moon/sun icon)
- Fix dark theme: add --purple/--purple-bg tokens, replace all hardcoded
#F3EEFA/#7C3AED with tokens, fix --amber-light text contrast in sidebar,
brighten --sidebar-text/--sidebar-muted tokens, use color-mix for
ProcessorTimeline bar fills
- Remove all "shift" references (presets, labels, badges)
- Shrink SegmentedTabs height to match search bar and ButtonGroup
- Update COMPONENT_GUIDE.md with new components and updated descriptions
- Add ButtonGroup demo to Inventory
- Add README.md with setup instructions and navigation guide
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Routes tree nodes now have starrable: true at both app and route levels
- Add starred Routes group to the starred section
- Fix missing starred collection for top-level agent application nodes
- Fix agent starred path from /agents/:id to /agents/:appId/:id
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Rename Metrics to Routes with /routes, /routes/:appId, /routes/:appId/:routeId
- Sidebar: Routes is now a collapsible tree (apps > routes) like Applications/Agents
- KPI header matching mock-v3-metrics-dashboard: throughput with sparkline, error rate,
latency percentiles (P50/P95/P99), active routes with mini donut, in-flight exchanges
- Same KPI header used consistently across all 3 levels with scoped data
- Route detail level shows per-processor performance table and RouteFlow diagram
- Added appId to RouteMetricRow and filled missing route entries in mock data
- Fix sidebar section toggle indentation
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Rewrite ExchangeDetail with split Message IN/OUT panels that update
on processor click, error panel for failed processors, and
Timeline/Flow toggle for the processor visualization
- Add correlation chain in header with status-colored clickable nodes
sorted by start time, labeled "Correlated Exchanges"
- Add Exchange ID column and inspect button (↗) to Dashboard table
- Add "Open full details" link in the exchange slide-in panel
- Add selectedIndex prop to ProcessorTimeline and RouteFlow for
highlighting the active processor
- Add onNodeClick + selectedIndex to RouteFlow for interactive use
- Add correlationGroup field to exchange mock data
- Fix sidebar section toggle indentation alignment
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Table columns: Status, Route, Application, Started (yyyy-mm-dd hh:mm:ss),
Duration, Agent (removed Order ID and Customer)
- /apps shows all exchanges, /apps/:id filters by application,
/apps/:id/:routeId filters by application and route
- Route paths changed from /routes/:id to /apps/:appId/:routeId across
sidebar, search, breadcrumbs, metrics, and exchange detail
- Added buildRouteToAppMap utility for route→application lookup
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Replace the 4-tab DetailPanel (Overview/Processors/Exchange/Error) with a
single scrollable view: overview, errors (limited to 1 with +N indicator),
route flow diagram, and processor timeline. DetailPanel now supports
children as an alternative to tabs.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
New components:
- SegmentedTabs — pill-style tabs with sliding animated indicator,
trailing slot for custom content, MutationObserver for dynamic resizing
- Custom DateTimePicker — replaces native datetime-local with calendar
grid, hour/minute inputs, Now/Apply buttons, portal dropdown
Time range selector redesign:
- Uses SegmentedTabs with inline from/to DateTimePicker triggers
- "now" shown as clickable placeholder when to-date is not explicitly set
- Preset selection keeps to-date as "now" until user sets it
- No more "Custom" button — last tab is the live date range
Other improvements:
- FilterPill gains activeColor prop for status-colored active states
- TopBar and EventFeed status pills now use colored dots + activeColor
- Inventory nav expanded to full component-level table of contents
- COMPONENT_GUIDE.md updated with new components
- DateRangePicker test updated for custom DateTimePicker
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
FilterPill gains activeColor prop — when active, border/text/background
tint match the status color instead of generic amber. Inactive dots
are muted at 40% opacity for clear active/inactive contrast.
Applied to TopBar status pills and EventFeed severity pills.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- New /agents/:appId/:instanceId page with process info, 3x2 charts
grid (CPU, memory, throughput, errors, threads, GC), application
log viewer with level filtering, and instance-scoped timeline
- AgentHealth now uses slide-in DetailPanel for quick instance preview
- Stat strip enhanced: colored StatusDot breakdowns, route ratio with
state-colored values, Groups renamed to Applications
- Unified page structure: stat strip → scope trail with inline badges
(removed duplicate section headers from both pages)
- StatCard value/detail props now accept ReactNode
- Log and timeline displayed side by side
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Instance detail now opens in a DetailPanel (slide-in from right)
with Overview and Performance tabs instead of navigating away
- Stat strip matches mock design: 5 cards with colored StatusDot
breakdowns, labeled states (live/stale/dead, healthy/degraded/critical)
- Active Routes shows colored ratio (green/yellow/red) based on state
- Groups renamed to Applications
- StatCard value/detail props now accept ReactNode for rich content
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
11-task plan covering token fix, Tabs migration, DataTable migration,
title cleanup, user creation rework with provider selection, password
management, toast feedback, accessibility, and cascading confirmations.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Based on 3-expert UX/UI review: fixes critical --bg-base bug,
migrates AuditLog to DataTable, replaces admin nav with Tabs,
reworks user creation with provider-aware flow, adds password
management, toast feedback, and accessibility improvements.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>