| D-M7-24-0 |
2026-10-16 |
The ticket was built on an integration base and ported onto main with only its own commits; the English docs and spec of main win (the spec chapter is 25-visualization.md), and text this ticket adds is English. The rows stand in a section per ticket, as for the other ported tickets. The brief relies on no core rule and no D-W ruling that main lacks. |
The tickets are built in parallel on integration bases; main takes each ticket as one pull request; merged names win (D-W-100). |
| D-M7-24-1 |
2026-10-15 |
Shape and name mapping of design/build/ts/tokens.gen.ts: export const light = {...} as const and export const dark = {...} as const satisfies Theme with every token of type colour of the theme contexts (the roles of DsColors; the accent variants of DsAccent stay out, the themes carry the default accent), nested by role below the dropped prefix color; a segment with - or _ becomes camelCase (bg-hover to bgHover, on-sidebar-muted to onSidebarMuted, area-fill to areaFill), a numeric segment stays a numeric key (viz.series[1]); a role that would also be a group, a key used twice or a segment without a valid identifier fails the build (exit 2). Values are the hex strings of tokens.resolved.json; the translucent roles scrim and shadow are { hex, alpha }, as there. type Theme = Widen<typeof light> widens the literals, so dark with a missing or extra role does not compile. fonts keeps the families with fallback list (fonts.sans, fonts.mono), sizes the font sizes in px keyed by size (sizes[12]), radii the radii in px (radii.md). The header line // SPDX-License-Identifier: Apache-2.0 comes first because the license gate requires it in every .ts file, the next line says that the file is generated and must not be edited. The fonts and their <family>.OFL.txt are copied byte for byte from vendor/fonts/, whose checksums vendor/MANIFEST.json holds; check reports a missing, changed or extra copy as stale. |
Brief, design note 1 and requirements 12 to 15; keys that need no quoting keep plugin code plain, and numeric keys keep the series order of components.md section 11. |
| D-M7-24-2 |
2026-10-15 |
Compile check: the target ts of tools/design-tokens/Makefile, part of check and so of make tokens, runs tsc --strict --noEmit --target es2022 --module es2022 --lib es2022 of TypeScript 5.9.3 from sdk/typescript/package-lock.json (the only TypeScript lock of the repository; make bootstrap-ci installs it in CI and locally). Without it the target fails with a hint instead of skipping. The unit test CompileTest compiles the rendered file and one whose dark theme lost a role; it skips only when that compiler is not installed, because make tokens runs the hard check after it. When M7-25 brings the plugin's own lock, the check may switch to that TypeScript. |
Brief, requirement 13: a pinned TypeScript of a lock file of the repository; no new dependency. |