Skip to content

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

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

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
@dependabot @github

dependabot Bot commented on behalf of github Jul 22, 2026

Copy link
Copy Markdown
Contributor Author

Looks like @phcdevworks/spectre-tokens is up-to-date now, so this is no longer needed.

@dependabot dependabot Bot closed this Jul 22, 2026
@dependabot
dependabot Bot deleted the dependabot/npm_and_yarn/phcdevworks/spectre-tokens-3.4.0 branch July 22, 2026 03:29
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