synthesisui 0.16.439 → 0.16.440

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.
@@ -1,3 +1,4 @@
1
+ import { arranjoSemValor } from "./value-ledger.js";
1
2
  /**
2
3
  * TODO FRAGMENTO QUE CARREGA ESTILO, com arquivo e linha.
3
4
  *
@@ -646,6 +647,8 @@ forms = []) {
646
647
  const tokens = literal.split(/\s+/).filter(Boolean);
647
648
  const readElsewhere = tokens.length > 0 &&
648
649
  tokens.every((tk) => STRUCTURE.has(tk) ||
650
+ /** Arranjo sem valor de design - a MESMA resposta que a conta do anel dá. */
651
+ arranjoSemValor(tk) ||
649
652
  wornGlobal.has(tk) ||
650
653
  definedGlobal.has(tk) ||
651
654
  islandRead.get(f.file)?.has(tk));
@@ -95,6 +95,37 @@ const STRUCTURAL_TOKENS = new Set([
95
95
  "peer",
96
96
  "isolate",
97
97
  ]);
98
+ /**
99
+ * O ARRANJO QUE NÃO CARREGA VALOR DE DESIGN - e por isso sai do denominador (dono, 19/09).
100
+ *
101
+ * O QUE O CLIENTE GANHA: a cobertura dele para de ser descontada por `mx-auto` e `col-span-6`.
102
+ * Medido nos dois repositórios limpos, `mx-auto` é o utilitário que mais aparece no que sobrava
103
+ * como não lido - 12 ocorrências num deles, o maior item isolado da lista inteira. Centrar um
104
+ * bloco e dizer quantas colunas ele ocupa não são decisões de design: são arranjo, a mesma coisa
105
+ * que `flex-col` e `w-full`, que já saem por `STRUCTURAL_TOKENS`.
106
+ *
107
+ * O TESTE É O VALOR, e não o nome da família. Estas famílias já resolvem para propriedades que
108
+ * `STRUCTURAL_PROPERTIES` conhece - `gridColumn`, `gridTemplateColumns`, `order` - e o que decide
109
+ * é o outro lado: o valor é uma CONTAGEM (`6`, `12`) ou a palavra `auto`, nenhum dos dois sendo
110
+ * quantidade que alguém escolheu de uma escala. `gap-6` continua fora daqui de propósito, porque
111
+ * ali o número É uma escolha de escala: ele muda o ritmo da tela.
112
+ *
113
+ * A LISTA CONTINUA CONSERVADORA, pelo mesmo motivo escrito em `STRUCTURAL_TOKENS`: o que não
114
+ * estiver aqui cai em `unread`, que é o lado certo de errar. E ela vive NESTE arquivo, junto das
115
+ * outras duas, porque três fontes para "isto é arranjo?" discordariam no primeiro conserto.
116
+ */
117
+ const ARRANJO_SEM_VALOR = [
118
+ /** Grade e ordem: o valor é uma contagem de trilhas, `auto`, `full` ou `none`. */
119
+ /^(col|row)-(span|start|end)-(\d+|auto|full)$/,
120
+ /^grid-(cols|rows)-(\d+|none|subgrid)$/,
121
+ /^order-(\d+|first|last|none)$/,
122
+ /** Margem `auto` é centralização - a única margem cujo valor não sai de escala nenhuma. */
123
+ /^-?m[xytblrse]?-auto$/,
124
+ ];
125
+ /** `mx-auto` e `col-span-6` nomeiam arranjo; `gap-6` nomeia uma escolha de escala. */
126
+ export function arranjoSemValor(utility) {
127
+ return ARRANJO_SEM_VALOR.some((re) => re.test(utility));
128
+ }
98
129
  /**
99
130
  * O destino de UM token de classe. Exportado para o julgamento por valor e a triagem lerem a
100
131
  * MESMA resposta - duas cópias desta decisão é como o item 11 nasceu.
@@ -119,7 +150,7 @@ export function destinationOf(cls, declared, answered,
119
150
  */
120
151
  defined) {
121
152
  const { utility } = parseClass(cls);
122
- if (STRUCTURAL_TOKENS.has(utility))
153
+ if (STRUCTURAL_TOKENS.has(utility) || arranjoSemValor(utility))
123
154
  return "structure";
124
155
  const read = readUtility(utility, declared);
125
156
  if (read) {
@@ -815,7 +815,7 @@ export const CHECKER_SINCE = "0.16.424";
815
815
  * deveriam estar lá. Quem tem censo gravado precisa de um `sync` para a fila de trabalho dele ser a
816
816
  * real; ver o livro-razão de `corpus.spec.ts`.
817
817
  */
818
- export const READER_SINCE = "0.16.439";
818
+ export const READER_SINCE = "0.16.440";
819
819
  /**
820
820
  * O QUE ESTÁ INSTALADO AQUI FICOU PARA TRÁS - e as DUAS condições que fazem isso ser verdade.
821
821
  *
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "synthesisui",
3
- "version": "0.16.439",
3
+ "version": "0.16.440",
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": {