Acceptance Criteria
TintTokens interface exported from packages/transform/src/types.ts with the six aligned field names (bg, surface, text, muted, primary, border)TintTokenSet removed; downstream imports updatedTintDefinition updated: mode removed, lockMode?: 'light' | 'dark' added, extends?: string addedSiteConfig.tints in packages/types/src/theme.ts typed as Record<string, TintDefinition> (no more Record<string, unknown>)RefraktConfig.tints (the deprecated flat-shape field) removed entirely — per SPEC-053 decision- JSDoc on every renamed field clearly states the target
--rf-color-* token - Build passes; downstream packages that read
TintTokenSet get clear migration errors (since this lands before WORK-198 migrates the actual configs)
Approach
Single type-rename PR. Mechanical change to packages/transform/src/types.ts and the corresponding import in packages/types/src/theme.ts.
Build will break immediately in packages/lumina/src/config.ts and any plugin that defines tints — that's expected and gets fixed in WORK-198. Order matters: this type-only PR lands first, then the engine/CSS/config updates land together.
Dependencies
None (or minimal — does not require SPEC-048 to be implemented). Independent of the rest of the SPEC-048 chain; can start in parallel.
References
- SPEC-053 — full rationale for each rename and the
mode → lockMode simplification packages/transform/src/types.ts — file being editedpackages/types/src/theme.ts — file being edited