synthesisui 0.11.1 → 0.11.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -375,6 +375,7 @@ export async function doctor(opts) {
375
375
  console.log(body("complains - the surface just stays put when the scheme"));
376
376
  console.log(body("moves around it."));
377
377
  }
378
+ const frozenAt = new Set(frozen.map((f) => `${f.component}:${f.where.split(" · ").pop()}`));
378
379
  if (overrides.length > 0) {
379
380
  // An override on a property the component's own law FORBIDS, written as a
380
381
  // reset, is not drift - it is the author keeping a promise the recipe
@@ -465,6 +466,13 @@ export async function doctor(opts) {
465
466
  ? " ↑ removes it rather than replacing it"
466
467
  : " ↑ a raw value, not a token");
467
468
  }
469
+ // The recipe froze this binding at a primitive and the author reached
470
+ // for a ROLE. Theirs follows the scheme; the recipe's does not. Listing
471
+ // that as an infraction is the same unfairness as the law case above.
472
+ if (frozenAt.has(`${o.component}:${o.prop}`) &&
473
+ /var\(\s*--ds-color-semantic-/.test(o.wrote)) {
474
+ console.log(" ✓ the recipe is frozen here; yours names a role");
475
+ }
468
476
  const kept = lawKept(o);
469
477
  if (kept) {
470
478
  console.log(` ✓ but the law says: "${kept}"`);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "synthesisui",
3
- "version": "0.11.1",
3
+ "version": "0.11.2",
4
4
  "description": "Bring SynthesisUI design systems into any project - tokens, typed components, whole pages and an agent-ready CLAUDE.md manifest.",
5
5
  "type": "module",
6
6
  "bin": {