|
6 | 6 |
|
7 | 7 | **Version:** v0.5.x |
8 | 8 | **Spec Version:** @objectstack/spec v1.1.0 |
9 | | -**Overall Spec Coverage:** ~75% |
| 9 | +**Overall Spec Coverage:** ~80% |
10 | 10 |
|
11 | 11 | ## Package Maturity Matrix |
12 | 12 |
|
13 | 13 | | Package | Status | Spec Coverage | Notes | |
14 | 14 | |---------|--------|--------------|-------| |
15 | 15 | | @object-ui/types | ✅ Complete | 100% | Full spec re-export + local types | |
16 | | -| @object-ui/core | ✅ Complete | 95% | Registry, Plugin, Expression, Action, Validation | |
| 16 | +| @object-ui/core | ✅ Complete | 98% | Registry, Plugin, Expression, Action, Validation, ThemeEngine | |
17 | 17 | | @object-ui/components | ✅ Complete | 100% | 80+ renderers, 50 Shadcn primitives | |
18 | 18 | | @object-ui/fields | ✅ Complete | 95% | 36 widgets, 20+ cell renderers | |
19 | 19 | | @object-ui/layout | 🟡 Partial | 60% | Basic layouts, missing responsive grid | |
20 | | -| @object-ui/react | ✅ Complete | 100% | SchemaRenderer, hooks, providers | |
| 20 | +| @object-ui/react | ✅ Complete | 100% | SchemaRenderer, hooks, providers, ThemeProvider | |
21 | 21 | | @object-ui/plugin-form | ✅ Complete | 90% | All 6 variants (simple/tabbed/wizard/split/drawer/modal), FormField enhancements | |
22 | 22 | | @object-ui/plugin-grid | ✅ Complete | 95% | Full ListView support | |
23 | 23 | | @object-ui/plugin-aggrid | ✅ Complete | 100% | AG Grid integration | |
@@ -226,18 +226,25 @@ WidgetManifest: { |
226 | 226 |
|
227 | 227 | --- |
228 | 228 |
|
229 | | -#### 7. Theme System Alignment |
| 229 | +#### 7. Theme System Alignment ✅ |
230 | 230 |
|
231 | 231 | **Spec Requirement:** Full theme schema with ColorPalette, Typography, Spacing, BorderRadius, Shadow, Breakpoints, Animation, ZIndex. |
232 | 232 |
|
233 | | -**Current State:** Simplified ThemeDefinition, missing half the spec. |
| 233 | +**Current State:** Fully aligned with @objectstack/spec v1.1.0. Complete ThemeEngine in core + ThemeProvider/useTheme in react. |
234 | 234 |
|
235 | | -**Tasks:** |
236 | | -- [ ] Add Shadow, Breakpoints, Animation, ZIndex to ThemeDefinition |
237 | | -- [ ] Align ColorPalette with spec (surface, textSecondary, primaryLight/Dark) |
238 | | -- [ ] Add ThemeProvider to @object-ui/react or @object-ui/layout |
239 | | -- [ ] Theme inheritance (extends) |
240 | | -- [ ] Branding (logo, darkLogo, favicon) |
| 235 | +**Completed:** |
| 236 | +- [x] Realigned `Theme` interface with spec (name, label, mode, colors, typography, spacing, borderRadius, shadows, breakpoints, animation, zIndex, customVars, logo, extends) |
| 237 | +- [x] Added `Shadow`, `Breakpoints`, `Animation`, `ZIndex`, `ThemeLogo` types to @object-ui/types |
| 238 | +- [x] Aligned `ColorPalette` with spec (primary required, surface, textSecondary, primaryLight/Dark, secondaryLight/Dark, disabled) |
| 239 | +- [x] Aligned `Typography` with spec (nested fontFamily/fontSize/fontWeight/lineHeight/letterSpacing) |
| 240 | +- [x] Aligned `Spacing` with spec (explicit '0'–'24' scale keys) |
| 241 | +- [x] Aligned `BorderRadius` with spec (none/sm/base/md/lg/xl/2xl/full) |
| 242 | +- [x] Updated all Zod schemas (ColorPaletteSchema, TypographySchema, SpacingSchema, ShadowSchema, BreakpointsSchema, AnimationSchema, ZIndexSchema, ThemeDefinitionSchema) |
| 243 | +- [x] `ThemeEngine` in @object-ui/core — `generateThemeVars()` converts Theme → CSS custom properties, `mergeThemes()`, `resolveThemeInheritance()`, `resolveMode()`, `hexToHSL()`/`toCSSColor()` |
| 244 | +- [x] `ThemeProvider` + `useTheme()` + `useOptionalTheme()` in @object-ui/react — CSS var injection, mode class toggling, system preference detection, localStorage persistence, theme inheritance resolution |
| 245 | +- [x] Branding support (logo.light, logo.dark, logo.favicon) |
| 246 | +- [x] Legacy aliases (`ThemeDefinition` → `Theme`, `SpacingScale` → `Spacing`) for backward compatibility |
| 247 | +- [x] Full test coverage: 57 ThemeEngine tests + 28 ThemeProvider tests (85 total) |
241 | 248 |
|
242 | 249 | --- |
243 | 250 |
|
|
0 commit comments