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
STYLE-005: ElementStyleSectionHost wraps ElementStyleSection with
SuggestionBanner. Uses useStyleSuggestions + executeSuggestionAction.
propertyeditor.ts updated to use host (drop-in, zero API change).
UBA-001: types.ts — Field discriminated union (8 types), BackendMetadata,
Section, Condition, ParseResult<T>. Zero external deps.
UBA-002: SchemaParser.ts validates pre-parsed objects against UBA v1.
Forward-compat: unknown field types/versions produce warnings not errors.
22 unit tests in tests/models/UBASchemaParser.test.ts.