synthesisui 0.16.208 → 0.16.209

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.
@@ -262,6 +262,26 @@ kind) {
262
262
  */
263
263
  export function judgeFragments(seen, declared, admitted) {
264
264
  return seen.map((f) => {
265
+ /**
266
+ * UMA DECLARAÇÃO SEM LEITOR CUJO VALOR É UM TOKEN QUE ELES JÁ DECLARAM.
267
+ *
268
+ * `h1 { font-size: var(--text-h1) }` num CSS global não tem leitor, e a frase que ia junto -
269
+ * *"os estilos que ela carrega não chegam a receita nenhuma"* - é falsa: `--text-h1` está
270
+ * declarado, capturado, e vale 2rem no sistema dele. O que não foi capturado é a LIGAÇÃO, qual
271
+ * elemento veste qual token.
272
+ *
273
+ * Medido em 11/08 na base tipográfica dele: das 13 declarações do `src/styles.css` arquivadas
274
+ * como sem leitor, SETE são desta forma - `--font-sans` (3x), `--text-h1`, `--text-h2`,
275
+ * `--text-h3` e `--color-blue-600`. Nenhuma delas carrega um valor que o sistema não tenha.
276
+ *
277
+ * A referência precisa apontar para algo DECLARADO. Um `var(--nao-existe)` continua sendo o que
278
+ * era: o browser descarta a declaração, e ali não há token nenhum a reivindicar.
279
+ */
280
+ if (f.reason === "shape-not-read") {
281
+ const ref = /:\s*var\(\s*(--[a-z0-9-]+)/i.exec(f.text);
282
+ if (ref && declared.has(ref[1]))
283
+ return { ...f, reason: "binding-not-read" };
284
+ }
265
285
  if (f.reason)
266
286
  return f;
267
287
  switch (f.shape) {
@@ -46,6 +46,11 @@ const OWNER = {
46
46
  function verdictOf(reason) {
47
47
  switch (reason) {
48
48
  case "shape-not-read":
49
+ /**
50
+ * A LIGAÇÃO TAMBÉM É TRABALHO DE LEITOR - o que muda é a frase, não o veredito. O valor já
51
+ * está no sistema; o que falta é um leitor que registre qual elemento veste qual token.
52
+ */
53
+ case "binding-not-read":
49
54
  return "no-reader";
50
55
  case "value-not-read":
51
56
  return "value-gap";
@@ -56,6 +56,7 @@ const BECAUSE = {
56
56
  computed: "the value is assembled at render time, so it is not in the source at any level and there is nothing to read",
57
57
  "component-not-admitted": "read, and it belongs to a component this scope does not admit into the system - the styles exist and no recipe claims them",
58
58
  "sheet-not-imported": "this is a sass partial and no stylesheet imports it, so your own build never compiles it - it paints nothing today, here or anywhere",
59
+ "binding-not-read": "the value here is a token your system already declares, so nothing is lost - what is not captured is which element wears it",
59
60
  };
60
61
  /**
61
62
  * O ledger de uma varredura, a partir dos fragmentos vistos.
@@ -93,7 +93,9 @@ export const CHECKER_SINCE = "0.16.202";
93
93
  * 0.16.208 `readInlineStyle` parou de descartar valor com parêntese - `var()` e
94
94
  * `linear-gradient()` em `style={{}}` chegam na receita, e 2 dos 6 fragmentos
95
95
  * chamados de `computed` eram literais no fonte
96
+ * 0.16.209 uma declaração global cujo valor é token JÁ declarado deixou de ser arquivada
97
+ * como "nenhum leitor entende esta forma" - 7 das 13 da base tipográfica dele
96
98
  *
97
99
  * Um censo medido antes disto carrega as duas leituras erradas.
98
100
  */
99
- export const READER_SINCE = "0.16.208";
101
+ export const READER_SINCE = "0.16.209";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "synthesisui",
3
- "version": "0.16.208",
3
+ "version": "0.16.209",
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": {