Skip to content

refactor(mix): simplify deferred merge and stabilize variant ordering#862

Draft
leoafarias wants to merge 4 commits intomainfrom
refactor/simplify-defer-merge-and-test
Draft

refactor(mix): simplify deferred merge and stabilize variant ordering#862
leoafarias wants to merge 4 commits intomainfrom
refactor/simplify-defer-merge-and-test

Conversation

@leoafarias
Copy link
Collaborator

Summary

  • Centralize deferred merge logic in Style.deferMerge() with DeferredVariant and hasBasePayload/copyWithVariants hooks, replacing duplicated inline guards in generated merge methods
  • Add cycle detection via _visitedStyles to prevent infinite recursion in mergeActiveVariants
  • Flatten double MixOps.mergeVariants nesting to [...?$variants, ...?deferredVariants] for readability
  • Reduce over-specified 50-element insertion-order test to 7 elements — same invariant, less cognitive load

Test plan

  • All existing tests pass (style_get_all_variants_test, token_style_mixin_test, style_nested_variants_test, style_defer_merge_test)
  • Verify insertion-order test still catches unstable sorting
  • Verify useToken precedence chain: useToken(...).color(red) → red wins

Centralize deferred merge logic in Style.deferMerge() with DeferredVariant,
add cycle detection via _visitedStyles, flatten double MixOps.mergeVariants
nesting, and reduce over-specified 50-element insertion-order test to 7
elements.
@vercel
Copy link
Contributor

vercel bot commented Feb 26, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
mix-docs Building Building Preview, Comment Feb 26, 2026 3:03pm

@docs-page
Copy link

docs-page bot commented Feb 26, 2026

To view this pull requests documentation preview, visit the following URL:

docs.page/btwld/mix~862

Documentation is deployed and generated using docs.page.

@leoafarias leoafarias changed the base branch from feat/token-style-mixin-main to main February 26, 2026 15:05
@leoafarias leoafarias changed the title Simplify deferred merge and stabilize variant ordering refactor(mix): simplify deferred merge and stabilize variant ordering Feb 26, 2026
@leoafarias leoafarias marked this pull request as draft February 26, 2026 15:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant