Richard Osborne
ade2afee85
feat(uba): UBA-008/009 panel registration + health indicator
...
UBA-008: Register UBAPanel in editor sidebar (router.setup.ts)
UBA-009: Health indicator widget in Configure tab
- useUBAHealth hook polling UBAClient.health() every 30s
- HealthBadge component: 4 states (unknown/checking/healthy/unhealthy)
- Pulsing animation on checking; design token colours with fallbacks
- Shown only when schema.backend.endpoints.health is present
Test fix: UBASchemaParser.test.ts
- isFailure<T>() type guard for webpack ts-loader friendly narrowing
- eslint-disable for destructuring discard patterns
2026-02-18 20:43:03 +01:00
..
2025-12-08 16:19:56 +01:00
2026-02-18 15:59:52 +01:00
2024-01-26 11:52:55 +01:00
2024-12-29 10:01:32 +01:00
2026-02-18 20:43:03 +01:00
2026-02-18 20:43:03 +01:00
2026-01-08 13:27:38 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2024-01-26 11:52:55 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2024-01-26 11:52:55 +01:00
2026-02-18 15:59:52 +01:00
2026-02-18 15:59:52 +01:00
2024-01-26 11:52:55 +01:00
2025-12-08 16:19:56 +01:00