@aurea-uds/native 0.8.6 → 0.8.8

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.
package/dist/theme.js CHANGED
@@ -109,33 +109,64 @@ export function useAureaTokens() {
109
109
  export function useAureaStrings() {
110
110
  return usar("useAureaStrings").strings;
111
111
  }
112
- // ─────────────────────────────────────────────────────────────────────────────────────────────
113
- // Sobre a marca — a cor de texto FORÇADA dentro de uma superfície amarela
114
- // ─────────────────────────────────────────────────────────────────────────────────────────────
115
- //
116
- // 🔴 **Isto existe porque o contraste não deixou escolha**, e os números estão no `layout.tsx`:
117
- // sobre o `primary`, o texto comum mede **1,83 no tema escuro** e o esmaecido **1,35**. Os dois
118
- // são ilegíveis. O único par que serve nos DOIS temas é `primary-foreground`, com 4,54.
119
- //
120
- // ⚠ **E no React Native não há cascata de cor** — `color` num `View` não desce para o `Text` de
121
- // dentro, como desceria no CSS. Então a cor tem de viajar por CONTEXTO, que é exatamente a
122
- // decisão que o `Field` do Lote 4 tomou para empurrar nome, dica e estado de inválido.
123
- //
124
- // ⚠ **Ele mora AQUI e não no `layout.tsx` por uma razão de estrutura:** o `layout.tsx` importa o
125
- // `Text`, então se ele também exportasse o contexto o `text.tsx` teria de importar de volta — um
126
- // ciclo. Este módulo é o que os dois já importam.
127
- //
128
- // ⚠ **Não sai pela porta da frente do pacote.** É acordo interno entre o `Card` e o `Text`.
129
112
  const SobreAMarcaCtx = React.createContext(null);
130
113
  /** O provedor. Quem usa é o `Card variant="brand"`. */
131
114
  export const SobreAMarca = SobreAMarcaCtx;
132
115
  /**
133
- * A cor que o texto tem de usar quando está sobre a marca, ou `null` quando não está.
116
+ * O par de cores obrigatório quando se está sobre a marca, ou `null` quando não se está.
134
117
  *
135
- * ⚠ **Ela vence TODOS os tons, inclusive os explícitos.** Um `tone="danger"` sobre o amarelo
118
+ * ⚠ **Ele vence TODOS os tons, inclusive os explícitos.** Um `tone="danger"` sobre o amarelo
136
119
  * mediria menos que os 4,5 da norma, então respeitá-lo entregaria texto ilegível em nome da
137
- * obediência. **Sobre o amarelo existe UMA cor de texto** — a hierarquia sai de peso e tamanho.
120
+ * obediência. **Sobre o amarelo existe UMA tinta** — a hierarquia sai de peso e tamanho.
121
+ *
122
+ * ⚠ **E o alcance dele é DECLARADO, não completo.** Leem o contexto: `Text`, a família de campo,
123
+ * o `Button` e o `IconButton`. **Componente fora dessa lista continua quebrado dentro do cartão
124
+ * amarelo**, e gate estático nenhum vê isso — o que o consumidor encaixa não está no nosso
125
+ * código, exatamente o ponto cego que o `check 43` já declara.
138
126
  */
139
127
  export function useSobreAMarca() {
140
128
  return React.useContext(SobreAMarcaCtx);
141
129
  }
130
+ /**
131
+ * Corta a marca para dentro.
132
+ *
133
+ * 🔴 **Existe por uma armadilha do React Native que é invisível na tela e óbvia no código:** o
134
+ * `Modal` desenha numa camada POR CIMA de tudo, mas em React ele continua sendo FILHO de quem o
135
+ * escreveu. Um `Select` dentro de um `Card variant="brand"` abre a folha dele **fora** do cartão
136
+ * amarelo — e a folha herdaria a tinta do amarelo mesmo assim, pintando texto marrom sobre fundo
137
+ * normal.
138
+ *
139
+ * ⚠ **Camada visual e árvore de contexto são coisas diferentes**, e é só o segundo que manda na
140
+ * cor. Toda superfície que sai do fluxo — as duas folhas de escolha e os quatro sobrepostos —
141
+ * passa por aqui.
142
+ */
143
+ export function ForaDaMarca({ children }) {
144
+ return _jsx(SobreAMarcaCtx.Provider, { value: null, children: children });
145
+ }
146
+ /**
147
+ * A pele que um CAMPO tem de vestir quando está dentro de um `Card variant="brand"`, ou `null`
148
+ * quando não está.
149
+ *
150
+ * O campo perde o fundo e passa a ser um contorno da tinta: **4,54 contra o amarelo nos dois
151
+ * temas**, contra os 2,43/2,24 do `borderStrong` e os 1,61 do `fieldBg` no tema claro. A norma
152
+ * 1.4.11 pede 3:1 para o contorno que identifica um campo, e só a tinta chega lá.
153
+ *
154
+ * ⚠ **O fundo some porque NÃO HÁ fundo possível** — medidas as três superfícies neutras do
155
+ * sistema contra o amarelo no tema claro: `card` 1,91 · `background` 1,73 · `secondary` 1,61.
156
+ * Nenhuma separa. Um contorno forte separa.
157
+ *
158
+ * 🔴 **E a tinta vence o estado de INVÁLIDO, que é o contrário do que a intuição manda.** Medido:
159
+ * a borda de inválido (`danger-400`, `#9f2330`) mede **1,86** contra o amarelo — ela é MENOS
160
+ * visível que a tinta. Pintar de vermelho ali deixaria o campo errado mais difícil de achar que o
161
+ * campo certo. Dentro deste cartão o erro é dito pela MENSAGEM do `Field` e pelo estado que o
162
+ * leitor de tela anuncia, não pela cor — que é o que a norma 1.4.1 já exige de qualquer forma.
163
+ *
164
+ * ⚠ **O texto digitado e o marcador de dica ficam da MESMA cor**, porque só existe uma tinta. É
165
+ * perda real de hierarquia, declarada e não escondida: sobre o amarelo não há segunda cor.
166
+ */
167
+ export function usePeleSobreAMarca() {
168
+ const marca = useSobreAMarca();
169
+ return marca == null
170
+ ? null
171
+ : { borderColor: marca.tinta, backgroundColor: "transparent", color: marca.tinta };
172
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aurea-uds/native",
3
- "version": "0.8.6",
3
+ "version": "0.8.8",
4
4
  "description": "React Native target for Aurea UDS: the theme x density provider, the first components and the Carbon icons, drawn on react-native-svg.",
5
5
  "keywords": [
6
6
  "aurea",
@@ -47,7 +47,7 @@
47
47
  "NOTICE"
48
48
  ],
49
49
  "dependencies": {
50
- "@aurea-uds/tokens": "^0.8.6"
50
+ "@aurea-uds/tokens": "^0.8.8"
51
51
  },
52
52
  "peerDependencies": {
53
53
  "@react-native-community/datetimepicker": ">=8",