Skip to content

Bump @phcdevworks/spectre-tokens from 3.3.1 to 3.4.0#42

Open
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/npm_and_yarn/phcdevworks/spectre-tokens-3.4.0
Open

Bump @phcdevworks/spectre-tokens from 3.3.1 to 3.4.0#42
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/npm_and_yarn/phcdevworks/spectre-tokens-3.4.0

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Jul 19, 2026

Copy link
Copy Markdown
Contributor

Bumps @phcdevworks/spectre-tokens from 3.3.1 to 3.4.0.

Release notes

Sourced from @​phcdevworks/spectre-tokens's releases.

Phase 9 - Contract Generation and Ecosystem Maturity

Release Title: Phase 9 - Contract Generation and Ecosystem Maturity

Contract change type: additive

Changed

  • Phase 9 P0: replaced the hand-maintained field-mapping arrays in generateCssVariables (src/css.ts) — BADGE_VARIANTS, ICON_BOX_FIELDS, NAV_FIELDS, MODAL_FIELDS, TESTIMONIAL_FIELDS, PRICING_CARD_FIELDS, RATING_FIELDS, TOAST_VARIANTS, TOOLTIP_FIELDS, DROPDOWN_FIELDS, SELECTION_CONTROL_FIELDS, SELECT_FIELDS, TEXTAREA_FIELDS, FIELDSET_FIELDS, LABEL_FIELDS — with a recursive walker that derives every leaf path directly from tokens.modes.default.* / tokens.modes.dark.* (unioned with the top-level surface/text/ component alias objects), so a new field under any component.*, surface, or text group reaches generated CSS by construction instead of requiring a matching array update. This is the defect class behind the 3.1.0, 3.3.0, and 3.3.1 CSS-generation gaps.
  • resolveSemanticValue now throws with the precise token path when it encounters a value shape it cannot resolve (an object with metadata/ description but no value, or a non-object/non-primitive), instead of silently skipping it — turning "token exists but CSS output is missing" into a build-time failure.
  • Generated dist/index.css variable names and values are unchanged (byte- identical variable-to-value mapping in both light and dark blocks; declaration order within each block differs since it now follows object key order instead of a curated array order).
  • tests/css-semantic-coverage.test.ts continues to pass unmodified, confirming coverage parity with the array-based implementation it replaces.
  • Phase 9 P1: added contract.manifest.json's outputParity section and scripts/check-output-parity.ts (wired into npm run check as check:parity), which derives exhaustive leaf-path coverage assertions from the token tree instead of the curated path samples requiredOutputs.js.requiredPaths / requiredOutputs.css.requiredVariables relied on:
    • JS runtime: every leaf under each outputParity.js.namespaces entry must resolve to an equal value in both the runtime tokens export and generated coreTokens.
    • Generated TypeScript: every leaf under each outputParity.js.namespaces entry (excluding modes, which is JS/DTCG-only) must have a concrete (string/number/boolean/literal/array — not unknown/any/an index signature) field in the SpectreGeneratedTokens interface as it appears in the shipped dist/index.d.ts, parsed via the TypeScript compiler API. SpectreGeneratedTokens and coreTokens are generated from the same object literal in generate-types.ts and so cannot structurally drift from each other, and tsc (via build:ts) already guarantees coreTokens type-checks against its own declared type; this check verifies the thing tsc does not — that the bundled declaration downstream consumers actually type-check against was not separately

... (truncated)

Changelog

Sourced from @​phcdevworks/spectre-tokens's changelog.

[3.4.0] - 2026-07-16

Release Title: Phase 9 - Contract Generation and Ecosystem Maturity

Contract change type: additive

Changed

  • Phase 9 P0: replaced the hand-maintained field-mapping arrays in generateCssVariables (src/css.ts) — BADGE_VARIANTS, ICON_BOX_FIELDS, NAV_FIELDS, MODAL_FIELDS, TESTIMONIAL_FIELDS, PRICING_CARD_FIELDS, RATING_FIELDS, TOAST_VARIANTS, TOOLTIP_FIELDS, DROPDOWN_FIELDS, SELECTION_CONTROL_FIELDS, SELECT_FIELDS, TEXTAREA_FIELDS, FIELDSET_FIELDS, LABEL_FIELDS — with a recursive walker that derives every leaf path directly from tokens.modes.default.* / tokens.modes.dark.* (unioned with the top-level surface/text/ component alias objects), so a new field under any component.*, surface, or text group reaches generated CSS by construction instead of requiring a matching array update. This is the defect class behind the 3.1.0, 3.3.0, and 3.3.1 CSS-generation gaps.
  • resolveSemanticValue now throws with the precise token path when it encounters a value shape it cannot resolve (an object with metadata/ description but no value, or a non-object/non-primitive), instead of silently skipping it — turning "token exists but CSS output is missing" into a build-time failure.
  • Generated dist/index.css variable names and values are unchanged (byte- identical variable-to-value mapping in both light and dark blocks; declaration order within each block differs since it now follows object key order instead of a curated array order).
  • tests/css-semantic-coverage.test.ts continues to pass unmodified, confirming coverage parity with the array-based implementation it replaces.
  • Phase 9 P1: added contract.manifest.json's outputParity section and scripts/check-output-parity.ts (wired into npm run check as check:parity), which derives exhaustive leaf-path coverage assertions from the token tree instead of the curated path samples requiredOutputs.js.requiredPaths / requiredOutputs.css.requiredVariables relied on:
    • JS runtime: every leaf under each outputParity.js.namespaces entry must resolve to an equal value in both the runtime tokens export and generated coreTokens.
    • Generated TypeScript: every leaf under each outputParity.js.namespaces entry (excluding modes, which is JS/DTCG-only) must have a concrete (string/number/boolean/literal/array — not unknown/any/an index signature) field in the SpectreGeneratedTokens interface as it appears in the shipped dist/index.d.ts, parsed via the TypeScript compiler API. SpectreGeneratedTokens and coreTokens are generated from the same object literal in generate-types.ts and so cannot structurally drift from each other, and tsc (via build:ts) already guarantees coreTokens type-checks against its own declared type; this check verifies the thing tsc does not — that the bundled declaration

... (truncated)

Commits

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Bumps [@phcdevworks/spectre-tokens](https://github.com/phcdevworks/spectre-tokens) from 3.3.1 to 3.4.0.
- [Release notes](https://github.com/phcdevworks/spectre-tokens/releases)
- [Changelog](https://github.com/phcdevworks/spectre-tokens/blob/main/CHANGELOG.md)
- [Commits](phcdevworks/spectre-tokens@3.3.1...v3.4.0)

---
updated-dependencies:
- dependency-name: "@phcdevworks/spectre-tokens"
  dependency-version: 3.4.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file javascript Pull requests that update javascript code labels Jul 19, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file javascript Pull requests that update javascript code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants