|
| 1 | +--- |
| 2 | +"@object-ui/types": minor |
| 3 | +"@object-ui/core": minor |
| 4 | +"@object-ui/react": minor |
| 5 | +--- |
| 6 | + |
| 7 | +chore(deps): upgrade `@objectstack/*` to 17.0.0-rc.0, and let the spec take back what it now owns |
| 8 | + |
| 9 | +`spec` / `client` / `formula` / `lint` move from `^16.x` to `^17.0.0-rc.0`. Two |
| 10 | +groups of v17 changes reach this repo, and they pull in opposite directions — |
| 11 | +the spec pruned surface objectui re-exported, and adopted surface objectui had |
| 12 | +been carrying locally. |
| 13 | + |
| 14 | +**The spec pruned dead Theme config (objectstack#3494), so the re-exports went |
| 15 | +with it.** `ThemeSchema` dropped `spacing`, `breakpoints`, `logo`, `density`, |
| 16 | +`wcagContrast`, `rtl`, `touchTarget` and `keyboardNavigation` — authorable but |
| 17 | +never enforced, so authoring them was already a silent no-op. `@object-ui/types` |
| 18 | +re-exported those sub-schemas *by reference* (issue #2231), so they could not |
| 19 | +survive the prune without becoming hand-written mirrors — exactly the second |
| 20 | +de-facto contract AGENTS.md #0.1 forbids. Removed from the public surface: |
| 21 | + |
| 22 | +- Types: `Spacing`, `Breakpoints`, `DensityMode`, `WcagContrastLevel`, |
| 23 | + `ThemeLogo`, and the deprecated `SpacingScale` alias |
| 24 | +- Schemas: `SpacingSchema`, `SpacingScaleSchema`, `BreakpointsSchema`, |
| 25 | + `ThemeLogoSchema`, and the `SpacingSchemaType` / `BreakpointsSchemaType` helpers |
| 26 | +- `Theme.spacing`, `Theme.breakpoints` and `Theme.logo` |
| 27 | + |
| 28 | +`mergeThemes` no longer merges the three dropped keys. `generateThemeVars` is |
| 29 | +unaffected — it never emitted them, which is why the liveness audit called them |
| 30 | +dead. The one real consumer was `ThemeProvider`, which set the favicon from |
| 31 | +`theme.logo.favicon`; that path is gone, because v17 strips the key at parse and |
| 32 | +it could never arrive again. The live favicon is unaffected: it comes from |
| 33 | +operator branding (`getFaviconUrl()`), applied in the console's `index.html`, |
| 34 | +`main.tsx`, and on route change. |
| 35 | + |
| 36 | +Nothing else read the pruned types. In particular the list-density feature is |
| 37 | +untouched — `useDensityMode` and `rowHeightToDensityMode` use `@object-ui/core`'s |
| 38 | +own local `DensityMode`, which never came from the spec. |
| 39 | + |
| 40 | +**The spec adopted objectui's ListColumn extensions (objectui#2231), so the |
| 41 | +extension collapsed.** `ListColumnSchema` used to `.extend()` the spec with two |
| 42 | +fields, each carrying a note to promote it upstream rather than grow the |
| 43 | +extension; v17 did exactly that. `summary` is now the spec's |
| 44 | +`union([ColumnSummarySchema, ColumnSummaryConfigSchema])` — the same enum ∪ |
| 45 | +`{ type, field }` form `useColumnSummary` reads — and `prefix` is the spec's |
| 46 | +`ColumnPrefixSchema`. `ListColumnSchema` is now a plain by-reference re-export. |
| 47 | +One behavior change rides along: `prefix.type` defaults to `'text'` on parse |
| 48 | +instead of staying `undefined`, so the cell renderer always gets a value. |
| 49 | + |
| 50 | +**Node 22 is now the floor.** Every `@objectstack` package declares |
| 51 | +`engines.node: ">=22.0.0"` (objectstack#3825; Node 20 reached EOL 2026-04-30). |
| 52 | +This repo claimed `>=20` and ran CI on Node 20.x, so it promised — and validated |
| 53 | +— a runtime its own core dependency does not support. `engines.node` is now |
| 54 | +`>=22`, CI runs Node 22.x, and the CI/deployment docs say so. |
| 55 | + |
| 56 | +The major stays 17: per AGENTS.md the major tracks `@objectstack`'s major, which |
| 57 | +is also 17, and that convention deliberately outranks semver purity — so the |
| 58 | +removals above ship as a minor rather than desyncing the two. |
0 commit comments