Skip to content

chore: Break circular dependency between themes' color palettes - #4837

Merged
jperals merged 1 commit into
mainfrom
chore/circular-dep
Jul 27, 2026
Merged

chore: Break circular dependency between themes' color palettes#4837
jperals merged 1 commit into
mainfrom
chore/circular-dep

Conversation

@jperals

@jperals jperals commented Jul 27, 2026

Copy link
Copy Markdown
Member

Description

style-dictionary/core/color-palette.ts and style-dictionary/visual-refresh/color-palette.ts were importing from each other. This would cause a build failure depending on the particular import order, so it didn't break on Github but it broke internally.

Fix this by refactoring the reused Core code into a new leaf file (palette-values.ts).

How has this been tested?

Review checklist

The following items are to be evaluated by the author(s) and the reviewer(s).

Correctness

  • Changes include appropriate documentation updates.
  • Changes are backward-compatible if not indicated, see CONTRIBUTING.md.
  • Changes do not include unsupported browser features, see CONTRIBUTING.md.
  • Changes were manually tested for accessibility, see accessibility guidelines.

Security

Testing

  • Changes are covered with new/existing unit tests?
  • Changes are covered with new/existing integration tests?

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Refactors the style-dictionary color palette sources to eliminate an import cycle between the core and visual-refresh theme palette modules, which could cause build-order-dependent failures.

Changes:

  • Extracted shared base paletteTokens into a new leaf module (style-dictionary/core/palette-values.ts).
  • Updated visual-refresh and one-theme palette consumers to import base palette values from the new leaf module instead of core/color-palette.
  • Removed the one-theme workaround side-effect import that previously forced a specific evaluation order.

Reviewed changes

Copilot reviewed 6 out of 6 changed files in this pull request and generated no comments.

Show a summary per file
File Description
style-dictionary/visual-refresh/colors.ts Switches base palette import to the new leaf core/palette-values module.
style-dictionary/visual-refresh/color-palette.ts Switches brand palette source to core/palette-values to avoid the prior cycle.
style-dictionary/one-theme/index.ts Removes the now-unnecessary side-effect import used to work around the import cycle.
style-dictionary/one-theme/color-palette.ts Switches brand palette source to core/palette-values while still layering on visual-refresh tokens.
style-dictionary/core/palette-values.ts New leaf module containing the shared base palette token values.
style-dictionary/core/color-palette.ts Imports paletteTokens from the new leaf module while keeping existing exports intact.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@codecov

codecov Bot commented Jul 27, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 97.62%. Comparing base (ee9b849) to head (f5fd39b).

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #4837   +/-   ##
=======================================
  Coverage   97.62%   97.62%           
=======================================
  Files         956      956           
  Lines       31012    31012           
  Branches    11410    11409    -1     
=======================================
  Hits        30277    30277           
- Misses        688      728   +40     
+ Partials       47        7   -40     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@jperals
jperals enabled auto-merge July 27, 2026 11:13
@jperals
jperals added this pull request to the merge queue Jul 27, 2026
Merged via the queue into main with commit 8d345a1 Jul 27, 2026
61 checks passed
@jperals
jperals deleted the chore/circular-dep branch July 27, 2026 11:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants