|
| 1 | +--- |
| 2 | +"@object-ui/types": minor |
| 3 | +"@object-ui/layout": patch |
| 4 | +"@object-ui/plugin-designer": patch |
| 5 | +"@object-ui/i18n": patch |
| 6 | +--- |
| 7 | + |
| 8 | +fix(types,layout): nav item type `component` joins `NavigationItemType` and its zod enum — objectui#2918 |
| 9 | + |
| 10 | +The renderers have carried a full `type: 'component'` implementation (Phase 3b: |
| 11 | +`componentRef` colon-split to `/component/<ns>/<name>`, `params` serialised as |
| 12 | +querystring, `metadata:*` special-cases) — but the vocabulary never gained the |
| 13 | +member, and `@objectstack/spec` has had `ComponentNavItem` all along. The zod |
| 14 | +enum was the part that bit: `NavigationItemTypeSchema` rejected |
| 15 | +`type: 'component'` at validation time, so authors could not declare one and |
| 16 | +the renderer half was unreachable — dead on arrival rather than dead code. |
| 17 | + |
| 18 | +- `NavigationItemType` and `NavigationItemTypeSchema` gain `'component'`; |
| 19 | + `NavigationItem` gains the fields the renderer consumes, `componentRef` and |
| 20 | + `params` (also used by `type: 'page'`), mirroring spec's `ComponentNavItem` — |
| 21 | + declared in zod too, so parse no longer strips them. |
| 22 | +- The `(item as any).componentRef` / `params` casts in `NavigationRenderer` |
| 23 | + and `AppSchemaRenderer` become typed access. |
| 24 | +- `NavigationDesigner`'s exhaustive type-meta map gains a `component` badge |
| 25 | + (new `appDesigner.navTypeComponent` key in all 10 locales). |
| 26 | +- `@object-ui/layout` gains `type-check` (src + tests) with the #2915 `paths` |
| 27 | + override; its DEBT entry in `check-type-check-coverage.mjs` is deleted. |
0 commit comments