@aurea-uds/native 0.31.0 → 0.33.0
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/actions.d.ts +15 -1
- package/dist/actions.js +40 -17
- package/dist/busca.js +16 -14
- package/dist/display.js +17 -3
- package/dist/escolha.d.ts +121 -0
- package/dist/escolha.js +466 -0
- package/dist/exibicao.d.ts +188 -0
- package/dist/exibicao.js +457 -0
- package/dist/feedback.d.ts +48 -4
- package/dist/feedback.js +92 -28
- package/dist/icon-names.d.ts +7 -1
- package/dist/icon-names.js +2 -0
- package/dist/icon.d.ts +6 -4
- package/dist/icon.js +1 -1
- package/dist/index.d.ts +9 -2
- package/dist/index.js +10 -1
- package/dist/inputs.d.ts +12 -3
- package/dist/inputs.js +71 -25
- package/dist/layout.d.ts +1 -1
- package/dist/layout.js +3 -0
- package/dist/menu.d.ts +99 -0
- package/dist/menu.js +452 -0
- package/dist/navigation.d.ts +1 -1
- package/dist/navigation.js +35 -18
- package/dist/numero.d.ts +2 -2
- package/dist/numero.js +6 -2
- package/dist/overlays.js +35 -9
- package/dist/sistema.js +15 -10
- package/dist/strings.d.ts +4 -0
- package/dist/strings.js +4 -0
- package/dist/text.js +7 -1
- package/dist/toast.js +9 -12
- package/icons/index.d.ts +1 -0
- package/icons/index.js +2 -1
- package/icons/x-bold.d.ts +6 -0
- package/icons/x-bold.js +10 -0
- package/package.json +2 -2
package/dist/feedback.js
CHANGED
|
@@ -11,7 +11,8 @@ import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-run
|
|
|
11
11
|
// .spinner aurea.css:668 borda 2 currentColor, direita transparente, redondo, .7s linear
|
|
12
12
|
// .skeleton aurea.css:1111 raio 7, fundo surface-3, pulso de opacidade .55 em 1.35s
|
|
13
13
|
// .progress aurea.css:1105 altura 8, raio 999, trilho surface-3, preenchimento primary
|
|
14
|
-
// .alert aurea.css:1088 grade auto/1fr/auto, gap 12, padding 14 16, raio lg, borda 1
|
|
14
|
+
// .alert aurea.css:1088 grade auto/1fr/auto, ~~gap 12, padding 14 16, raio lg, borda 1~~
|
|
15
|
+
// → 0.32.0: medidas do nativo da referência, pintura da web (`Alert`)
|
|
15
16
|
// .empty-state aurea.css:1823 coluna centrada, gap space-3, padding space-10 space-6
|
|
16
17
|
// .data-state aurea.css:1110 grade com gap space-3 e NADA de superfície própria
|
|
17
18
|
//
|
|
@@ -21,7 +22,7 @@ import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-run
|
|
|
21
22
|
// de uma REGIÃO não emite título de documento.
|
|
22
23
|
import * as React from "react";
|
|
23
24
|
import { Animated, Easing, View } from "react-native";
|
|
24
|
-
import {
|
|
25
|
+
import { Button, CloseButton } from "./actions.js";
|
|
25
26
|
import { canto, criarFolha, estadoAcessivel, letraDoToken } from "./estilos.js";
|
|
26
27
|
import { Icon } from "./icon.js";
|
|
27
28
|
import { IconeEmMoldura } from "./moldura.js";
|
|
@@ -56,13 +57,17 @@ const folha = criarFolha((t) => ({
|
|
|
56
57
|
// `flex:1` — mesmo resultado, e `display:grid` não existe no RN (a mesma nota do `Grid`).
|
|
57
58
|
// `alignItems:"flex-start"` porque o ícone acompanha a PRIMEIRA linha do texto, não o centro
|
|
58
59
|
// de um parágrafo de três linhas.
|
|
60
|
+
// 0.32.0: as medidas do nativo da referência — 12 de recheio em volta e 12 entre as partes (era
|
|
61
|
+
// 14 em cima e embaixo e 16 dos lados). A pintura é a da web desta versão (`.alert`): fundo de
|
|
62
|
+
// CARTÃO, sem borda, com a sombra de superfície (`shadowSm` inteira); a cor do estado fica só no
|
|
63
|
+
// ícone e no título. Até a 0.31.0 o estado tingia o fundo e a borda.
|
|
59
64
|
alerta: {
|
|
60
65
|
flexDirection: "row", alignItems: "flex-start", gap: t.size.space3,
|
|
61
|
-
|
|
66
|
+
padding: t.size.space3,
|
|
62
67
|
// HER-02 (06/10/2026): era `radiusLg` (16). Painel é 22 na identidade da Aurea (`CLAUDE.md`
|
|
63
68
|
// §5), como o `Popover`, o `Dialog` e o `Banner`; a referência usa 24 na web e no nativo.
|
|
64
|
-
|
|
65
|
-
backgroundColor: t.color.
|
|
69
|
+
...canto(t.size.radiusCard),
|
|
70
|
+
backgroundColor: t.color.card, boxShadow: [...t.shadowLayers.shadowSm],
|
|
66
71
|
},
|
|
67
72
|
// O GRUPO de leitura: ícone + texto, lidos como uma coisa só. Ele existe porque a moldura
|
|
68
73
|
// deixou de ser `accessible` (ver o comentário no componente) — e sem um grupo o título e o
|
|
@@ -72,10 +77,6 @@ const folha = criarFolha((t) => ({
|
|
|
72
77
|
flex: 1, minWidth: 0,
|
|
73
78
|
flexDirection: "row", alignItems: "flex-start", gap: t.size.space3,
|
|
74
79
|
},
|
|
75
|
-
alerta_info: { backgroundColor: t.color.infoBg, borderColor: t.color.info400 ?? t.color.info },
|
|
76
|
-
alerta_success: { backgroundColor: t.color.successBg, borderColor: t.color.success400 ?? t.color.success },
|
|
77
|
-
alerta_warning: { backgroundColor: t.color.warningBg, borderColor: t.color.warning400 ?? t.color.warning },
|
|
78
|
-
alerta_danger: { backgroundColor: t.color.dangerBg, borderColor: t.color.danger400 ?? t.color.destructive },
|
|
79
80
|
corpoDoAlerta: { flex: 1, gap: 2 },
|
|
80
81
|
// ── EmptyState ─────────────────────────────────────────────────────────────────────────────
|
|
81
82
|
vazio: {
|
|
@@ -95,7 +96,7 @@ const folha = criarFolha((t) => ({
|
|
|
95
96
|
* cascata para fazê-lo por ele. Parado, o anel continua desenhado — quem precisa da informação
|
|
96
97
|
* "algo está acontecendo" continua vendo o rótulo.
|
|
97
98
|
*/
|
|
98
|
-
export function Spinner({ size = "
|
|
99
|
+
export function Spinner({ size = "md", label, decorative, style, testID }) {
|
|
99
100
|
const t = useAureaTokens();
|
|
100
101
|
const s = folha(t);
|
|
101
102
|
const strings = useAureaStrings();
|
|
@@ -114,7 +115,7 @@ export function Spinner({ size = "sm", label, decorative, style, testID }) {
|
|
|
114
115
|
// clássico de `Animated.loop`.
|
|
115
116
|
return () => laco.stop();
|
|
116
117
|
}, [giro, reduzir]);
|
|
117
|
-
const lado = size === "lg" ? t.size.
|
|
118
|
+
const lado = size === "lg" ? t.size.iconXl : size === "md" ? t.size.iconLg : t.size.iconSm;
|
|
118
119
|
const acessibilidade = decorative
|
|
119
120
|
? { accessibilityElementsHidden: true, importantForAccessibility: "no-hide-descendants" }
|
|
120
121
|
: { accessible: true, accessibilityRole: "progressbar",
|
|
@@ -126,6 +127,31 @@ export function Spinner({ size = "sm", label, decorative, style, testID }) {
|
|
|
126
127
|
style,
|
|
127
128
|
] }));
|
|
128
129
|
}
|
|
130
|
+
export const GrupoDeEsqueleto = React.createContext(null);
|
|
131
|
+
/**
|
|
132
|
+
* O pulso do esqueleto: liga só quando `ativo`, e só depois de o sistema dizer que pode mexer.
|
|
133
|
+
* Desligado, a opacidade volta a 1 — um laço parado no meio deixaria a caixa meio apagada.
|
|
134
|
+
* O `SkeletonGroup` usa o mesmo, uma vez para o grupo inteiro.
|
|
135
|
+
*/
|
|
136
|
+
export function usePulsoDoEsqueleto(ativo) {
|
|
137
|
+
const reduzir = useReduceMotion();
|
|
138
|
+
const opacidade = React.useRef(new Animated.Value(1)).current;
|
|
139
|
+
React.useEffect(() => {
|
|
140
|
+
if (!ativo || reduzir !== false) {
|
|
141
|
+
opacidade.setValue(1);
|
|
142
|
+
return;
|
|
143
|
+
}
|
|
144
|
+
// 1,35 s no total, com o vale em .55 na METADE — é o `@keyframes skeleton-pulse` do
|
|
145
|
+
// `aurea.css:1112` lido literalmente: 675 ms para descer e 675 para voltar.
|
|
146
|
+
const laco = Animated.loop(Animated.sequence([
|
|
147
|
+
Animated.timing(opacidade, { toValue: 0.55, duration: 675, easing: Easing.inOut(Easing.ease), useNativeDriver: driverNativo() }),
|
|
148
|
+
Animated.timing(opacidade, { toValue: 1, duration: 675, easing: Easing.inOut(Easing.ease), useNativeDriver: driverNativo() }),
|
|
149
|
+
]));
|
|
150
|
+
laco.start();
|
|
151
|
+
return () => laco.stop();
|
|
152
|
+
}, [ativo, opacidade, reduzir]);
|
|
153
|
+
return opacidade;
|
|
154
|
+
}
|
|
129
155
|
/**
|
|
130
156
|
* A caixa cinza que pulsa enquanto o dado não chega.
|
|
131
157
|
*
|
|
@@ -136,29 +162,48 @@ export function Spinner({ size = "sm", label, decorative, style, testID }) {
|
|
|
136
162
|
*
|
|
137
163
|
* Ele é **invisível para o leitor de tela** (`aria-hidden` na web, `accessibilityElementsHidden`
|
|
138
164
|
* aqui): anunciar "caixa" três vezes enquanto a tela carrega não ajuda ninguém.
|
|
165
|
+
*
|
|
166
|
+
* 0.32.0: o `isLoading` e os `children` da referência. Com `isLoading={false}` a caixa sai e o
|
|
167
|
+
* conteúdo entra, num esmaecer da duração lenta da Aurea (a referência usa o esmaecer padrão do
|
|
168
|
+
* motor dela); com "menos movimento", ou no primeiro desenho, ele entra sem esmaecer. Sem as props
|
|
169
|
+
* novas, nada muda: é a caixa de sempre.
|
|
139
170
|
*/
|
|
140
|
-
export function Skeleton({ width, height, radius, style, testID }) {
|
|
171
|
+
export function Skeleton({ width, height, radius, style, testID, isLoading, children, animation }) {
|
|
141
172
|
const t = useAureaTokens();
|
|
142
173
|
const s = folha(t);
|
|
143
174
|
const reduzir = useReduceMotion();
|
|
144
|
-
const
|
|
175
|
+
const grupo = React.useContext(GrupoDeEsqueleto);
|
|
176
|
+
const carregando = isLoading ?? grupo?.isLoading ?? true;
|
|
177
|
+
const pulsa = (animation ?? grupo?.animation ?? "pulse") === "pulse";
|
|
178
|
+
// No grupo que pulsa, o pulso é o dele. O próprio só liga fora de um grupo — ou quando este pede o
|
|
179
|
+
// pulso e o grupo não.
|
|
180
|
+
const doGrupo = pulsa && grupo?.animation === "pulse" ? grupo.pulso : null;
|
|
181
|
+
const proprio = usePulsoDoEsqueleto(carregando && pulsa && !doGrupo);
|
|
182
|
+
// O esmaecer do conteúdo que chega. Um valor NOVO a cada troca, que já nasce em 0 quando vai
|
|
183
|
+
// esmaecer: zerar depois, num efeito, deixaria passar um quadro com o conteúdo cheio antes do
|
|
184
|
+
// esmaecer começar. No primeiro desenho ele nasce em 1 — nada está chegando, já estava lá.
|
|
185
|
+
// As dependências são só a TROCA de estado (e, abaixo, o valor novo), de propósito: a resposta do
|
|
186
|
+
// "menos movimento" chegando depois não pode fazer o conteúdo esmaecer de novo.
|
|
187
|
+
const montado = React.useRef(false);
|
|
188
|
+
const entrada = React.useMemo(() => new Animated.Value(montado.current && reduzir === false ? 0 : 1), [carregando]);
|
|
189
|
+
React.useEffect(() => { montado.current = true; }, []);
|
|
145
190
|
React.useEffect(() => {
|
|
146
|
-
if (reduzir !== false)
|
|
191
|
+
if (carregando || reduzir !== false) {
|
|
192
|
+
entrada.setValue(1);
|
|
147
193
|
return;
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
}, [opacidade, reduzir]);
|
|
194
|
+
}
|
|
195
|
+
const a = Animated.timing(entrada, { toValue: 1, duration: t.size.durationSlow, useNativeDriver: driverNativo() });
|
|
196
|
+
a.start();
|
|
197
|
+
return () => a.stop();
|
|
198
|
+
}, [entrada]);
|
|
199
|
+
if (!carregando) {
|
|
200
|
+
return _jsx(Animated.View, { style: { opacity: entrada }, children: children });
|
|
201
|
+
}
|
|
157
202
|
return (_jsx(Animated.View, { testID: testID, accessibilityElementsHidden: true, importantForAccessibility: "no-hide-descendants", style: [
|
|
158
203
|
s.esqueleto,
|
|
159
204
|
{ width: width ?? "100%", height: height ?? t.size.space4 },
|
|
160
205
|
radius != null && { ...canto(radius) },
|
|
161
|
-
{ opacity:
|
|
206
|
+
{ opacity: doGrupo ?? proprio },
|
|
162
207
|
style,
|
|
163
208
|
] }));
|
|
164
209
|
}
|
|
@@ -267,9 +312,9 @@ accessibilityLabel, accessibilityHint, ...rest }) {
|
|
|
267
312
|
, {
|
|
268
313
|
// Android: a região viva é o que faz o leitor falar sem foco, e ela cobre a moldura
|
|
269
314
|
// inteira de propósito — o que muda é o conteúdo, e o "X" some junto quando o aviso fecha.
|
|
270
|
-
accessibilityLiveRegion: v === "danger" ? "assertive" : "polite", style: [s.alerta,
|
|
271
|
-
? (typeof children === "string" ? _jsx(Text, { size: "
|
|
272
|
-
: state ? _jsx(Text, { size: "
|
|
315
|
+
accessibilityLiveRegion: v === "danger" ? "assertive" : "polite", style: [s.alerta, style], ...rest, children: [_jsxs(View, { accessible: true, accessibilityLabel: accessibilityLabel, accessibilityHint: accessibilityHint, ...(v === "danger" ? { accessibilityRole: "alert" } : null), style: s.grupoDoAlerta, children: [_jsx(Icon, { name: icon ?? ICONE_DA_VARIANTE[v], size: "md", color: corDoIcone, weight: icon ? undefined : "fill" }), _jsxs(View, { style: s.corpoDoAlerta, children: [title != null && _jsx(Text, { size: "base", weight: 500, tone: v, children: title }), children != null
|
|
316
|
+
? (typeof children === "string" ? _jsx(Text, { size: "xs", tone: "muted", children: children }) : children)
|
|
317
|
+
: state ? _jsx(Text, { size: "xs", tone: "muted", children: strings.universalState[state] }) : null] })] }), onDismiss ? _jsx(CloseButton, { label: strings.close, onPress: onDismiss }) : null] }));
|
|
273
318
|
}
|
|
274
319
|
/**
|
|
275
320
|
* O nada, dito com jeito.
|
|
@@ -290,6 +335,17 @@ export function EmptyState({ icon = "file", title, description, action, state, s
|
|
|
290
335
|
? _jsx(Text, { size: "sm", tone: "muted", align: "center", children: desc })
|
|
291
336
|
: desc), action] }));
|
|
292
337
|
}
|
|
338
|
+
/**
|
|
339
|
+
* MNT-25 (0.32.0): a barreira de erro, a mesma da web — o que quebra DENTRO do `DataState` vira a cara de
|
|
340
|
+
* erro dele, e o resto da tela fica. Só um componente de CLASSE pega erro de desenho no React.
|
|
341
|
+
*/
|
|
342
|
+
class BarreiraDeErro extends React.Component {
|
|
343
|
+
state = { quebrou: false };
|
|
344
|
+
static getDerivedStateFromError() { return { quebrou: true }; }
|
|
345
|
+
componentDidCatch(erro, info) { this.props.onCatch?.(erro, info); }
|
|
346
|
+
tentar = () => this.setState({ quebrou: false });
|
|
347
|
+
render() { return this.state.quebrou ? this.props.falha(this.tentar) : this.props.children; }
|
|
348
|
+
}
|
|
293
349
|
/**
|
|
294
350
|
* A região que troca de cara. **Ela não desenha nada próprio** — empilha o que já existe.
|
|
295
351
|
*
|
|
@@ -298,7 +354,15 @@ export function EmptyState({ icon = "file", title, description, action, state, s
|
|
|
298
354
|
* dado está aí e tem ressalva — esconder o dado seria trocar informação parcial por informação
|
|
299
355
|
* nenhuma. Só `loading`, `error` e `empty` tomam o lugar.
|
|
300
356
|
*/
|
|
301
|
-
export function DataState({
|
|
357
|
+
export function DataState({ catchErrors, onCatch, ...props }) {
|
|
358
|
+
const t = useAureaTokens();
|
|
359
|
+
const s = folha(t);
|
|
360
|
+
const strings = useAureaStrings();
|
|
361
|
+
if (!catchErrors)
|
|
362
|
+
return _jsx(CorpoDoDataState, { ...props });
|
|
363
|
+
return (_jsx(BarreiraDeErro, { onCatch: onCatch, falha: (tentar) => (_jsxs(View, { style: [s.regiao, props.style], children: [_jsx(Alert, { variant: "danger", children: props.message ?? strings.dataCrashed }), _jsx(View, { style: { alignSelf: "flex-start" }, children: _jsx(Button, { size: "sm", onPress: tentar, children: strings.dataRetry }) })] })), children: _jsx(CorpoDoDataState, { ...props }) }));
|
|
364
|
+
}
|
|
365
|
+
function CorpoDoDataState({ state, message, skeleton, emptyTitle, emptyIcon, action, children, style, ...rest }) {
|
|
302
366
|
const t = useAureaTokens();
|
|
303
367
|
const s = folha(t);
|
|
304
368
|
const strings = useAureaStrings();
|
package/dist/icon-names.d.ts
CHANGED
|
@@ -15,7 +15,13 @@ export type IconName = PhosphorIconName | Extract<keyof AureaIconNames, string>;
|
|
|
15
15
|
/**
|
|
16
16
|
* O peso do ícone. `regular` é o de sempre; `fill` é o cheio, o do item escolhido (aba ativa,
|
|
17
17
|
* item atual do menu) — ADR-0053. Nome próprio do app não tem forma cheia e fica no `regular`.
|
|
18
|
+
* `bold` (0.32.0) é o traço grosso, e só existe para os nomes de `NOMES_BOLD` (hoje, o `x` do
|
|
19
|
+
* `CloseButton`); para os outros, ele desenha o `regular`.
|
|
18
20
|
*/
|
|
19
|
-
export type IconWeight = "regular" | "fill";
|
|
21
|
+
export type IconWeight = "regular" | "fill" | "bold";
|
|
20
22
|
/** Os nomes do Phosphor em tempo de execução: só eles têm a forma cheia (`<nome>-fill`). */
|
|
21
23
|
export declare const NOMES_PHOSPHOR: ReadonlySet<string>;
|
|
24
|
+
/** Os nomes que também têm o peso Bold (`<nome>-bold`), um a um, por decisão. */
|
|
25
|
+
export type BoldIconName = "x";
|
|
26
|
+
/** Os mesmos, em tempo de execução. */
|
|
27
|
+
export declare const NOMES_BOLD: ReadonlySet<string>;
|
package/dist/icon-names.js
CHANGED
|
@@ -2,3 +2,5 @@
|
|
|
2
2
|
// Achado A-04: o nome do ícone é checado pelo TypeScript. ADR-0053: os nomes são os do Phosphor.
|
|
3
3
|
/** Os nomes do Phosphor em tempo de execução: só eles têm a forma cheia (`<nome>-fill`). */
|
|
4
4
|
export const NOMES_PHOSPHOR = new Set(["acorn", "address-book", "address-book-tabs", "air-traffic-control", "airplane", "airplane-in-flight", "airplane-landing", "airplane-takeoff", "airplane-taxiing", "airplane-tilt", "airplay", "alarm", "alien", "align-bottom", "align-bottom-simple", "align-center-horizontal", "align-center-horizontal-simple", "align-center-vertical", "align-center-vertical-simple", "align-left", "align-left-simple", "align-right", "align-right-simple", "align-top", "align-top-simple", "ambulance", "anchor", "anchor-simple", "angle", "aperture", "app-window", "approximate-equals", "archive", "armchair", "arrow-arc-left", "arrow-arc-right", "arrow-bend-double-up-left", "arrow-bend-double-up-right", "arrow-bend-down-left", "arrow-bend-down-right", "arrow-bend-left-down", "arrow-bend-left-up", "arrow-bend-right-down", "arrow-bend-right-up", "arrow-bend-up-left", "arrow-bend-up-right", "arrow-circle-down", "arrow-circle-down-left", "arrow-circle-down-right", "arrow-circle-left", "arrow-circle-right", "arrow-circle-up", "arrow-circle-up-left", "arrow-circle-up-right", "arrow-clockwise", "arrow-counter-clockwise", "arrow-down", "arrow-down-left", "arrow-down-right", "arrow-elbow-down-left", "arrow-elbow-down-right", "arrow-elbow-left", "arrow-elbow-left-down", "arrow-elbow-left-up", "arrow-elbow-right", "arrow-elbow-right-down", "arrow-elbow-right-up", "arrow-elbow-up-left", "arrow-elbow-up-right", "arrow-fat-down", "arrow-fat-left", "arrow-fat-line-down", "arrow-fat-line-left", "arrow-fat-line-right", "arrow-fat-line-up", "arrow-fat-lines-down", "arrow-fat-lines-left", "arrow-fat-lines-right", "arrow-fat-lines-up", "arrow-fat-right", "arrow-fat-up", "arrow-left", "arrow-line-down", "arrow-line-down-left", "arrow-line-down-right", "arrow-line-left", "arrow-line-right", "arrow-line-up", "arrow-line-up-left", "arrow-line-up-right", "arrow-right", "arrow-square-down", "arrow-square-down-left", "arrow-square-down-right", "arrow-square-in", "arrow-square-left", "arrow-square-out", "arrow-square-right", "arrow-square-up", "arrow-square-up-left", "arrow-square-up-right", "arrow-u-down-left", "arrow-u-down-right", "arrow-u-left-down", "arrow-u-left-up", "arrow-u-right-down", "arrow-u-right-up", "arrow-u-up-left", "arrow-u-up-right", "arrow-up", "arrow-up-left", "arrow-up-right", "arrows-clockwise", "arrows-counter-clockwise", "arrows-down-up", "arrows-horizontal", "arrows-in", "arrows-in-cardinal", "arrows-in-line-horizontal", "arrows-in-line-vertical", "arrows-in-simple", "arrows-left-right", "arrows-merge", "arrows-out", "arrows-out-cardinal", "arrows-out-line-horizontal", "arrows-out-line-vertical", "arrows-out-simple", "arrows-split", "arrows-vertical", "article", "article-medium", "article-ny-times", "asclepius", "asterisk", "asterisk-simple", "at", "atom", "avocado", "axe", "baby", "baby-carriage", "backpack", "backspace", "bag", "bag-simple", "balloon", "bandaids", "bank", "barbell", "barcode", "barn", "barricade", "baseball", "baseball-cap", "baseball-helmet", "basket", "basketball", "bathtub", "battery-charging", "battery-charging-vertical", "battery-empty", "battery-full", "battery-high", "battery-low", "battery-medium", "battery-plus", "battery-plus-vertical", "battery-vertical-empty", "battery-vertical-full", "battery-vertical-high", "battery-vertical-low", "battery-vertical-medium", "battery-warning", "battery-warning-vertical", "beach-ball", "beanie", "bed", "beer-bottle", "beer-stein", "bell", "bell-ringing", "bell-simple", "bell-simple-ringing", "bell-simple-slash", "bell-simple-z", "bell-slash", "bell-z", "belt", "bezier-curve", "bicycle", "binary", "binoculars", "biohazard", "bird", "blueprint", "bluetooth", "bluetooth-connected", "bluetooth-slash", "bluetooth-x", "boat", "bomb", "bone", "book", "book-bookmark", "book-open", "book-open-text", "book-open-user", "bookmark", "bookmark-simple", "bookmarks", "bookmarks-simple", "books", "boot", "boules", "bounding-box", "bowl-food", "bowl-steam", "bowling-ball", "box-arrow-down", "box-arrow-up", "boxing-glove", "brackets-angle", "brackets-curly", "brackets-round", "brackets-square", "brain", "brandy", "bread", "bridge", "briefcase", "briefcase-metal", "broadcast", "broom", "browser", "browsers", "bug", "bug-beetle", "bug-droid", "building", "building-apartment", "building-office", "buildings", "bulldozer", "bus", "butterfly", "cable-car", "cactus", "cake", "calculator", "calendar", "calendar-blank", "calendar-check", "calendar-dot", "calendar-dots", "calendar-heart", "calendar-minus", "calendar-plus", "calendar-slash", "calendar-star", "calendar-x", "call-bell", "camera", "camera-plus", "camera-rotate", "camera-slash", "campfire", "car", "car-battery", "car-profile", "car-simple", "cardholder", "cards", "cards-three", "caret-circle-double-down", "caret-circle-double-left", "caret-circle-double-right", "caret-circle-double-up", "caret-circle-down", "caret-circle-left", "caret-circle-right", "caret-circle-up", "caret-circle-up-down", "caret-double-down", "caret-double-left", "caret-double-right", "caret-double-up", "caret-down", "caret-left", "caret-line-down", "caret-line-left", "caret-line-right", "caret-line-up", "caret-right", "caret-up", "caret-up-down", "carrot", "cash-register", "cassette-tape", "castle-turret", "cat", "cell-signal-full", "cell-signal-high", "cell-signal-low", "cell-signal-medium", "cell-signal-none", "cell-signal-slash", "cell-signal-x", "cell-tower", "certificate", "chair", "chalkboard", "chalkboard-simple", "chalkboard-teacher", "champagne", "charging-station", "chart-bar", "chart-bar-horizontal", "chart-donut", "chart-line", "chart-line-down", "chart-line-up", "chart-pie", "chart-pie-slice", "chart-polar", "chart-scatter", "chat", "chat-centered", "chat-centered-dots", "chat-centered-slash", "chat-centered-text", "chat-circle", "chat-circle-dots", "chat-circle-slash", "chat-circle-text", "chat-dots", "chat-slash", "chat-teardrop", "chat-teardrop-dots", "chat-teardrop-slash", "chat-teardrop-text", "chat-text", "chats", "chats-circle", "chats-teardrop", "check", "check-circle", "check-fat", "check-square", "check-square-offset", "checkerboard", "checks", "cheers", "cheese", "chef-hat", "cherries", "church", "cigarette", "cigarette-slash", "circle", "circle-dashed", "circle-half", "circle-half-tilt", "circle-notch", "circles-four", "circles-three", "circles-three-plus", "circuitry", "city", "clipboard", "clipboard-text", "clock", "clock-afternoon", "clock-clockwise", "clock-countdown", "clock-counter-clockwise", "clock-user", "closed-captioning", "cloud", "cloud-arrow-down", "cloud-arrow-up", "cloud-check", "cloud-fog", "cloud-lightning", "cloud-moon", "cloud-rain", "cloud-slash", "cloud-snow", "cloud-sun", "cloud-warning", "cloud-x", "clover", "club", "coat-hanger", "code", "code-block", "code-simple", "coffee", "coffee-bean", "coin", "coin-vertical", "coins", "columns", "columns-plus-left", "columns-plus-right", "command", "compass", "compass-rose", "compass-tool", "computer-tower", "confetti", "contactless-payment", "control", "cookie", "cooking-pot", "copy", "copy-simple", "copyleft", "copyright", "corners-in", "corners-out", "couch", "court-basketball", "cow", "cowboy-hat", "cpu", "crane", "crane-tower", "credit-card", "cricket", "crop", "cross", "crosshair", "crosshair-simple", "crown", "crown-cross", "crown-simple", "cube", "cube-focus", "cube-transparent", "currency-btc", "currency-circle-dollar", "currency-cny", "currency-dollar", "currency-dollar-simple", "currency-eth", "currency-eur", "currency-gbp", "currency-inr", "currency-jpy", "currency-krw", "currency-kzt", "currency-ngn", "currency-rub", "cursor", "cursor-click", "cursor-text", "cylinder", "database", "desk", "desktop", "desktop-tower", "detective", "device-mobile", "device-mobile-camera", "device-mobile-slash", "device-mobile-speaker", "device-rotate", "device-tablet", "device-tablet-camera", "device-tablet-speaker", "devices", "diamond", "diamonds-four", "dice-five", "dice-four", "dice-one", "dice-six", "dice-three", "dice-two", "disc", "disco-ball", "divide", "dna", "dog", "door", "door-open", "dot", "dot-outline", "dots-nine", "dots-six", "dots-six-vertical", "dots-three", "dots-three-circle", "dots-three-circle-vertical", "dots-three-outline", "dots-three-outline-vertical", "dots-three-vertical", "download", "download-simple", "dress", "dresser", "drone", "drop", "drop-half", "drop-half-bottom", "drop-simple", "drop-slash", "ear", "ear-slash", "egg", "egg-crack", "eject", "eject-simple", "elevator", "empty", "engine", "envelope", "envelope-open", "envelope-simple", "envelope-simple-open", "equalizer", "equals", "eraser", "escalator-down", "escalator-up", "exam", "exclamation-mark", "exclude", "exclude-square", "export", "eye", "eye-closed", "eye-slash", "eyedropper", "eyedropper-sample", "eyeglasses", "eyes", "face-mask", "factory", "faders", "faders-horizontal", "fallout-shelter", "fan", "farm", "fast-forward", "fast-forward-circle", "feather", "file", "file-archive", "file-arrow-down", "file-arrow-up", "file-audio", "file-c", "file-c-sharp", "file-cloud", "file-code", "file-cpp", "file-css", "file-csv", "file-dashed", "file-doc", "file-html", "file-image", "file-ini", "file-jpg", "file-js", "file-jsx", "file-lock", "file-magnifying-glass", "file-md", "file-minus", "file-pdf", "file-plus", "file-png", "file-ppt", "file-py", "file-rs", "file-sql", "file-svg", "file-text", "file-ts", "file-tsx", "file-txt", "file-video", "file-vue", "file-x", "file-xls", "file-zip", "files", "film-reel", "film-script", "film-slate", "film-strip", "fingerprint", "fingerprint-simple", "finn-the-human", "fire", "fire-extinguisher", "fire-simple", "fire-truck", "first-aid", "first-aid-kit", "fish", "fish-simple", "flag", "flag-banner", "flag-banner-fold", "flag-checkered", "flag-pennant", "flame", "flashlight", "flask", "flip-horizontal", "flip-vertical", "floppy-disk", "floppy-disk-back", "flow-arrow", "flower", "flower-lotus", "flower-tulip", "flying-saucer", "folder", "folder-dashed", "folder-lock", "folder-minus", "folder-open", "folder-plus", "folder-simple", "folder-simple-dashed", "folder-simple-lock", "folder-simple-minus", "folder-simple-plus", "folder-simple-star", "folder-simple-user", "folder-star", "folder-user", "folders", "football", "football-helmet", "footprints", "fork-knife", "four-k", "frame-corners", "function", "funnel", "funnel-simple", "funnel-simple-x", "funnel-x", "game-controller", "garage", "gas-can", "gas-pump", "gauge", "gavel", "gear", "gear-fine", "gear-six", "gender-female", "gender-intersex", "gender-male", "gender-neuter", "gender-nonbinary", "gender-transgender", "ghost", "gif", "gift", "git-branch", "git-commit", "git-diff", "git-fork", "git-merge", "git-pull-request", "globe", "globe-hemisphere-east", "globe-hemisphere-west", "globe-simple", "globe-simple-x", "globe-stand", "globe-x", "goggles", "golf", "gps", "gps-fix", "gps-slash", "gradient", "graduation-cap", "grains", "grains-slash", "graph", "graphics-card", "greater-than", "greater-than-or-equal", "grid-four", "grid-nine", "guitar", "hair-dryer", "hamburger", "hammer", "hand", "hand-arrow-down", "hand-arrow-up", "hand-coins", "hand-deposit", "hand-eye", "hand-fist", "hand-grabbing", "hand-heart", "hand-palm", "hand-peace", "hand-pointing", "hand-soap", "hand-swipe-left", "hand-swipe-right", "hand-tap", "hand-waving", "hand-withdraw", "handbag", "handbag-simple", "hands-clapping", "hands-praying", "handshake", "hard-drive", "hard-drives", "hard-hat", "hash", "hash-straight", "head-circuit", "headlights", "headphones", "headset", "heart", "heart-break", "heart-half", "heart-straight", "heart-straight-break", "heartbeat", "hexagon", "high-definition", "high-heel", "highlighter", "highlighter-circle", "hockey", "hoodie", "horse", "hospital", "hourglass", "hourglass-high", "hourglass-low", "hourglass-medium", "hourglass-simple", "hourglass-simple-high", "hourglass-simple-low", "hourglass-simple-medium", "house", "house-line", "house-simple", "hurricane", "ice-cream", "identification-badge", "identification-card", "image", "image-broken", "image-square", "images", "images-square", "infinity", "info", "intersect", "intersect-square", "intersect-three", "intersection", "invoice", "island", "jar", "jar-label", "jeep", "joystick", "kanban", "key", "key-return", "keyboard", "keyhole", "knife", "ladder", "ladder-simple", "lamp", "lamp-pendant", "laptop", "lasso", "layout", "leaf", "lectern", "lego", "lego-smiley", "less-than", "less-than-or-equal", "letter-circle-h", "letter-circle-p", "letter-circle-v", "lifebuoy", "lightbulb", "lightbulb-filament", "lighthouse", "lightning", "lightning-a", "lightning-slash", "line-segment", "line-segments", "line-vertical", "link", "link-break", "link-simple", "link-simple-break", "link-simple-horizontal", "link-simple-horizontal-break", "list", "list-bullets", "list-checks", "list-dashes", "list-heart", "list-magnifying-glass", "list-numbers", "list-plus", "list-star", "lock", "lock-key", "lock-key-open", "lock-laminated", "lock-laminated-open", "lock-open", "lock-simple", "lock-simple-open", "lockers", "log", "magic-wand", "magnet", "magnet-straight", "magnifying-glass", "magnifying-glass-minus", "magnifying-glass-plus", "mailbox", "map-pin", "map-pin-area", "map-pin-line", "map-pin-plus", "map-pin-simple", "map-pin-simple-area", "map-pin-simple-line", "map-trifold", "marker-circle", "martini", "mask-happy", "mask-sad", "math-operations", "medal", "medal-military", "megaphone", "megaphone-simple", "member-of", "memory", "meteor", "metronome", "microphone", "microphone-slash", "microphone-stage", "microscope", "minus", "minus-circle", "minus-square", "money", "money-wavy", "monitor", "monitor-arrow-up", "monitor-play", "moon", "moon-stars", "moped", "moped-front", "mosque", "motorcycle", "mountains", "mouse", "mouse-left-click", "mouse-middle-click", "mouse-right-click", "mouse-scroll", "mouse-simple", "music-note", "music-note-simple", "music-notes", "music-notes-minus", "music-notes-plus", "music-notes-simple", "navigation-arrow", "needle", "network", "network-slash", "network-x", "newspaper", "newspaper-clipping", "not-equals", "not-member-of", "not-subset-of", "not-superset-of", "notches", "note", "note-blank", "note-pencil", "notebook", "notepad", "notification", "nuclear-plant", "number-circle-eight", "number-circle-five", "number-circle-four", "number-circle-nine", "number-circle-one", "number-circle-seven", "number-circle-six", "number-circle-three", "number-circle-two", "number-circle-zero", "number-eight", "number-five", "number-four", "number-nine", "number-one", "number-seven", "number-six", "number-square-eight", "number-square-five", "number-square-four", "number-square-nine", "number-square-one", "number-square-seven", "number-square-six", "number-square-three", "number-square-two", "number-square-zero", "number-three", "number-two", "number-zero", "numpad", "nut", "octagon", "office-chair", "onigiri", "option", "orange", "orange-slice", "oven", "package", "paint-brush", "paint-brush-broad", "paint-brush-household", "paint-bucket", "paint-roller", "palette", "panorama", "pants", "paper-plane", "paper-plane-right", "paper-plane-tilt", "paperclip", "paperclip-horizontal", "parachute", "paragraph", "parallelogram", "park", "password", "path", "pause", "pause-circle", "paw-print", "peace", "pen", "pen-nib", "pen-nib-straight", "pencil", "pencil-circle", "pencil-line", "pencil-ruler", "pencil-simple", "pencil-simple-line", "pencil-simple-slash", "pencil-slash", "pentagon", "pentagram", "pepper", "percent", "person", "person-arms-spread", "person-simple", "person-simple-bike", "person-simple-circle", "person-simple-hike", "person-simple-run", "person-simple-ski", "person-simple-snowboard", "person-simple-swim", "person-simple-tai-chi", "person-simple-throw", "person-simple-walk", "perspective", "phone", "phone-call", "phone-disconnect", "phone-incoming", "phone-list", "phone-outgoing", "phone-pause", "phone-plus", "phone-slash", "phone-transfer", "phone-x", "pi", "piano-keys", "picnic-table", "picture-in-picture", "piggy-bank", "pill", "ping-pong", "pint-glass", "pinwheel", "pipe", "pipe-wrench", "pizza", "placeholder", "planet", "plant", "play", "play-circle", "play-pause", "playlist", "plug", "plug-charging", "plugs", "plugs-connected", "plus", "plus-circle", "plus-minus", "plus-square", "poker-chip", "police-car", "polygon", "popcorn", "popsicle", "potted-plant", "power", "prescription", "presentation", "presentation-chart", "printer", "prohibit", "prohibit-inset", "projector-screen", "projector-screen-chart", "pulse", "push-pin", "push-pin-simple", "push-pin-simple-slash", "push-pin-slash", "puzzle-piece", "qr-code", "question", "question-mark", "queue", "quotes", "rabbit", "racquet", "radical", "radio", "radio-button", "radioactive", "rainbow", "rainbow-cloud", "ranking", "receipt", "receipt-x", "record", "rectangle", "rectangle-dashed", "recycle", "repeat", "repeat-once", "resize", "rewind", "rewind-circle", "road-horizon", "robot", "rocket", "rocket-launch", "rows", "rows-plus-bottom", "rows-plus-top", "rss", "rss-simple", "rug", "ruler", "sailboat", "scales", "scan", "scan-smiley", "scissors", "scooter", "screencast", "screwdriver", "scribble", "scribble-loop", "scroll", "seal", "seal-check", "seal-percent", "seal-question", "seal-warning", "seat", "seatbelt", "security-camera", "selection", "selection-all", "selection-background", "selection-foreground", "selection-inverse", "selection-plus", "selection-slash", "shapes", "share", "share-fat", "share-network", "shield", "shield-check", "shield-checkered", "shield-chevron", "shield-plus", "shield-slash", "shield-star", "shield-warning", "shipping-container", "shirt-folded", "shooting-star", "shopping-bag", "shopping-bag-open", "shopping-cart", "shopping-cart-simple", "shovel", "shower", "shrimp", "shuffle", "shuffle-angular", "shuffle-simple", "sidebar", "sidebar-simple", "sigma", "sign-in", "sign-out", "signature", "signpost", "sim-card", "siren", "skip-back", "skip-back-circle", "skip-forward", "skip-forward-circle", "skull", "sliders", "sliders-horizontal", "slideshow", "smiley", "smiley-angry", "smiley-blank", "smiley-meh", "smiley-melting", "smiley-nervous", "smiley-sad", "smiley-sticker", "smiley-wink", "smiley-x-eyes", "sneaker", "sneaker-move", "snowflake", "soccer-ball", "sock", "solar-panel", "solar-roof", "sort-ascending", "sort-descending", "spade", "sparkle", "speaker-hifi", "speaker-high", "speaker-low", "speaker-none", "speaker-simple-high", "speaker-simple-low", "speaker-simple-none", "speaker-simple-slash", "speaker-simple-x", "speaker-slash", "speaker-x", "speedometer", "sphere", "spinner", "spinner-ball", "spinner-gap", "spiral", "split-horizontal", "split-vertical", "spray-bottle", "square", "square-half", "square-half-bottom", "square-split-horizontal", "square-split-vertical", "squares-four", "stack", "stack-minus", "stack-plus", "stack-simple", "stairs", "stamp", "standard-definition", "star", "star-and-crescent", "star-four", "star-half", "star-of-david", "steering-wheel", "steps", "stethoscope", "sticker", "stool", "stop", "stop-circle", "storefront", "strategy", "student", "subset-of", "subset-proper-of", "subtitles", "subtitles-slash", "subtract", "subtract-square", "subway", "suitcase", "suitcase-rolling", "suitcase-simple", "sun", "sun-dim", "sun-horizon", "sunglasses", "superset-of", "superset-proper-of", "swap", "swatches", "swimming-pool", "sword", "synagogue", "syringe", "t-shirt", "table", "tabs", "tag", "tag-chevron", "tag-simple", "target", "taxi", "tea-bag", "television", "television-simple", "tennis-ball", "tent", "terminal", "terminal-window", "test-tube", "text-a-underline", "text-aa", "text-align-center", "text-align-justify", "text-align-left", "text-align-right", "text-b", "text-columns", "text-h", "text-h-five", "text-h-four", "text-h-one", "text-h-six", "text-h-three", "text-h-two", "text-indent", "text-italic", "text-outdent", "text-strikethrough", "text-subscript", "text-superscript", "text-t", "text-t-slash", "text-underline", "textbox", "thermometer", "thermometer-cold", "thermometer-hot", "thermometer-simple", "three-d", "thumbs-down", "thumbs-up", "ticket", "tilde", "timer", "tip-jar", "tipi", "tire", "toggle-left", "toggle-right", "toilet", "toilet-paper", "toolbox", "tooth", "tornado", "tote", "tote-simple", "towel", "tractor", "trademark", "trademark-registered", "traffic-cone", "traffic-sign", "traffic-signal", "train", "train-regional", "train-simple", "tram", "translate", "trash", "trash-simple", "tray", "tray-arrow-down", "tray-arrow-up", "treasure-chest", "tree", "tree-evergreen", "tree-palm", "tree-structure", "tree-view", "trend-down", "trend-up", "triangle", "triangle-dashed", "trolley", "trolley-suitcase", "trophy", "truck", "truck-trailer", "umbrella", "umbrella-simple", "union", "unite", "unite-square", "upload", "upload-simple", "usb", "user", "user-check", "user-circle", "user-circle-check", "user-circle-dashed", "user-circle-gear", "user-circle-minus", "user-circle-plus", "user-focus", "user-gear", "user-list", "user-minus", "user-plus", "user-rectangle", "user-sound", "user-square", "user-switch", "users", "users-four", "users-three", "van", "vault", "vector-three", "vector-two", "vibrate", "video", "video-camera", "video-camera-slash", "video-conference", "vignette", "vinyl-record", "virtual-reality", "virus", "visor", "voicemail", "volleyball", "wall", "wallet", "warehouse", "warning", "warning-circle", "warning-diamond", "warning-octagon", "washing-machine", "watch", "wave-sawtooth", "wave-sine", "wave-square", "wave-triangle", "waveform", "waveform-slash", "waves", "webcam", "webcam-slash", "wheelchair", "wheelchair-motion", "wifi-high", "wifi-low", "wifi-medium", "wifi-none", "wifi-slash", "wifi-x", "wind", "windmill", "wine", "wrench", "x", "x-circle", "x-square", "yarn", "yin-yang"]);
|
|
5
|
+
/** Os mesmos, em tempo de execução. */
|
|
6
|
+
export const NOMES_BOLD = new Set(["x"]);
|
package/dist/icon.d.ts
CHANGED
|
@@ -16,13 +16,14 @@ export type AureaIconComponent = (props: {
|
|
|
16
16
|
*/
|
|
17
17
|
export type AureaIcon = IconName | AureaIconComponent;
|
|
18
18
|
export type { IconName, PhosphorIconName, AureaIconNames, IconWeight } from "./icon-names.js";
|
|
19
|
-
import type { IconName, IconWeight, PhosphorIconName } from "./icon-names.js";
|
|
19
|
+
import type { BoldIconName, IconName, IconWeight, PhosphorIconName } from "./icon-names.js";
|
|
20
20
|
/**
|
|
21
21
|
* Parcial: o app registra só os que usa, e uma chave com erro de digitação reprova. A forma cheia
|
|
22
22
|
* (o item escolhido, ADR-0053) entra com o sufixo `-fill`, como o arquivo:
|
|
23
|
-
* `{"house": House, "house-fill": HouseFill}`.
|
|
23
|
+
* `{"house": House, "house-fill": HouseFill}`. O traço grosso (0.32.0), com `-bold`, só para os
|
|
24
|
+
* nomes que o têm — hoje o `x` do `CloseButton`: `{"x-bold": XBold}`.
|
|
24
25
|
*/
|
|
25
|
-
export type AureaIconRegistry = Readonly<Partial<Record<IconName | `${PhosphorIconName}-fill`, AureaIconComponent>>>;
|
|
26
|
+
export type AureaIconRegistry = Readonly<Partial<Record<IconName | `${PhosphorIconName}-fill` | `${BoldIconName}-bold`, AureaIconComponent>>>;
|
|
26
27
|
/**
|
|
27
28
|
* Declara o registro. É uma função de identidade tipada, e ela existe por um motivo prático:
|
|
28
29
|
* escrita como constante no módulo do app, a referência é estável — e um registro recriado a cada
|
|
@@ -123,7 +124,8 @@ export interface IconProps {
|
|
|
123
124
|
icons?: AureaIconRegistry;
|
|
124
125
|
/**
|
|
125
126
|
* `fill` desenha a forma cheia — a do item escolhido (ADR-0053). Ela é a chave `<nome>-fill`
|
|
126
|
-
* do registro; se o app não a registrou, sai o glifo regular, em vez de nada.
|
|
127
|
+
* do registro; se o app não a registrou, sai o glifo regular, em vez de nada. `bold` (0.32.0) é
|
|
128
|
+
* a chave `<nome>-bold`, pela mesma regra.
|
|
127
129
|
*/
|
|
128
130
|
weight?: IconWeight;
|
|
129
131
|
/**
|
package/dist/icon.js
CHANGED
|
@@ -106,7 +106,7 @@ export function Icon({ name, size = "md", color, icons, label, weight }) {
|
|
|
106
106
|
// O desenho passado direto (R-11) não consulta o registro.
|
|
107
107
|
const Glifo = typeof name === "function"
|
|
108
108
|
? name
|
|
109
|
-
: (weight === "fill" ? registro?.[`${name}
|
|
109
|
+
: (weight === "fill" || weight === "bold" ? registro?.[`${name}-${weight}`] : undefined) ?? registro?.[name];
|
|
110
110
|
if (!Glifo) {
|
|
111
111
|
if (__DEV__) {
|
|
112
112
|
console.warn(`Aurea Icon: "${name}" não está no registro. Importe-o pelo caminho profundo e ` +
|
package/dist/index.d.ts
CHANGED
|
@@ -12,8 +12,8 @@ export { Screen } from "./screen.js";
|
|
|
12
12
|
export type { ScreenProps, AureaScreenBackground, AureaScreenEdge } from "./screen.js";
|
|
13
13
|
export { Stack, Cluster, Grid, Card, Separator } from "./layout.js";
|
|
14
14
|
export type { StackProps, ClusterProps, AureaStackAlign, AureaClusterAlign, AureaClusterJustify, GridProps, CardProps, SeparatorProps, AureaCardVariant, AureaCardAccent, AureaGridMin, } from "./layout.js";
|
|
15
|
-
export { Button, IconButton, LinkButton, ThemeToggle } from "./actions.js";
|
|
16
|
-
export type { ButtonProps, IconButtonProps, LinkButtonProps, ThemeToggleProps, AureaButtonAppearance, AureaButtonSize, AureaButtonTone, AureaShareData, } from "./actions.js";
|
|
15
|
+
export { Button, IconButton, LinkButton, ThemeToggle, CloseButton } from "./actions.js";
|
|
16
|
+
export type { ButtonProps, IconButtonProps, LinkButtonProps, ThemeToggleProps, CloseButtonProps, AureaButtonAppearance, AureaButtonSize, AureaButtonTone, AureaShareData, } from "./actions.js";
|
|
17
17
|
export { Spinner, Skeleton, Progress, Alert, EmptyState, DataState, ICONE_DA_VARIANTE } from "./feedback.js";
|
|
18
18
|
export type { SpinnerProps, SkeletonProps, ProgressProps, AlertProps, EmptyStateProps, DataStateProps, AureaSpinnerSize, AureaAlertVariant, AureaDataStateValue, AureaProgressTone, } from "./feedback.js";
|
|
19
19
|
export { Badge, Status, Avatar, KPI, formatarContagem } from "./display.js";
|
|
@@ -43,3 +43,10 @@ export type { NumberFieldProps, AureaSeparadores, AureaNumberFieldSize } from ".
|
|
|
43
43
|
export { Image, Gallery } from "./midia.js";
|
|
44
44
|
export type { ImageProps, GalleryProps, AureaGalleryItem, AureaImageSource, } from "./midia.js";
|
|
45
45
|
export type { AureaFilaJustify } from "./rolagem.js";
|
|
46
|
+
export { Accordion, ScrollShadow, SkeletonGroup, PressableFeedback } from "./exibicao.js";
|
|
47
|
+
export type { AccordionProps, AureaAccordionItem, AureaAccordionVariant, ScrollShadowProps, AureaScrollShadowOrientation, AureaScrollShadowVisibility, AureaScrollShadowVariant, SkeletonGroupProps, PressableFeedbackProps, PressableFeedbackScaleProps, PressableFeedbackHighlightProps, PressableFeedbackRippleProps, } from "./exibicao.js";
|
|
48
|
+
export type { AureaSkeletonAnimation } from "./feedback.js";
|
|
49
|
+
export { Slider, OTPField, TagGroup } from "./escolha.js";
|
|
50
|
+
export type { SliderProps, AureaSliderOrientation, OTPFieldProps, TagGroupProps, AureaTagItem, AureaTagSize, AureaTagVariant, AureaTagGroupSelectionMode, } from "./escolha.js";
|
|
51
|
+
export { Popover, DropdownMenu } from "./menu.js";
|
|
52
|
+
export type { PopoverProps, DropdownMenuProps, AureaOverlaySide, MenuEntry, MenuActionDef, MenuLinkDef, MenuCheckboxDef, MenuRadioGroupDef, MenuSubmenuDef, MenuGroupDef, } from "./menu.js";
|
package/dist/index.js
CHANGED
|
@@ -37,7 +37,7 @@ export { Icon, IconRegistryProvider, criarRegistroDeIcones, criarGlifo } from ".
|
|
|
37
37
|
// autorizada pelo Victor em 03/09/2026 depois de o lote parar por ela (`BUILDING.md` §3).
|
|
38
38
|
export { Screen } from "./screen.js";
|
|
39
39
|
export { Stack, Cluster, Grid, Card, Separator } from "./layout.js";
|
|
40
|
-
export { Button, IconButton, LinkButton, ThemeToggle } from "./actions.js";
|
|
40
|
+
export { Button, IconButton, LinkButton, ThemeToggle, CloseButton } from "./actions.js";
|
|
41
41
|
// ── Lote 2 — o painel, que é só leitura ────────────────────────────────────────────────────
|
|
42
42
|
export { Spinner, Skeleton, Progress, Alert, EmptyState, DataState, ICONE_DA_VARIANTE } from "./feedback.js";
|
|
43
43
|
export { Badge, Status, Avatar, KPI, formatarContagem } from "./display.js";
|
|
@@ -118,3 +118,12 @@ export { NumberField, formatarNumero, lerNumero, separadoresDoLocale } from "./n
|
|
|
118
118
|
// promete e que o primitivo cru não faz. Foi por não fazê-las que o `Avatar` precisou de
|
|
119
119
|
// conserto em 31/07/2026.
|
|
120
120
|
export { Image, Gallery } from "./midia.js";
|
|
121
|
+
// ── 0.32.0, passo 9b — as peças que faltavam no nativo, com a API da web ────────────────────
|
|
122
|
+
// As nove são as do pacote nativo da referência (anatomia, medidas, comportamento), com o que é da
|
|
123
|
+
// Aurea por cima. O que ficou de fora de cada uma está no cabeçalho do arquivo dela.
|
|
124
|
+
// ⚠ O `ScrollShadow` é um FIO na ponta com mais conteúdo, e não o degradê dela (decisão do Victor:
|
|
125
|
+
// a Aurea não tem degradê). O `DropdownMenu` usa o MESMO `MenuEntry` da web; o `destructive` do
|
|
126
|
+
// item de ação é só do nativo, por enquanto.
|
|
127
|
+
export { Accordion, ScrollShadow, SkeletonGroup, PressableFeedback } from "./exibicao.js";
|
|
128
|
+
export { Slider, OTPField, TagGroup } from "./escolha.js";
|
|
129
|
+
export { Popover, DropdownMenu } from "./menu.js";
|
package/dist/inputs.d.ts
CHANGED
|
@@ -6,6 +6,7 @@ import type { AureaTokens } from "./tokens.js";
|
|
|
6
6
|
export type AureaFieldSize = "sm" | "md" | "lg";
|
|
7
7
|
export declare const alturaDoTamanho: (t: AureaTokens, s: AureaFieldSize) => number;
|
|
8
8
|
export declare const respiroDoTamanho: (t: AureaTokens, s: AureaFieldSize) => number;
|
|
9
|
+
export declare const respiroDoGatilho: (t: AureaTokens, s: AureaFieldSize) => number;
|
|
9
10
|
type ContextoDeCampo = {
|
|
10
11
|
label?: string;
|
|
11
12
|
hint?: string;
|
|
@@ -143,7 +144,7 @@ export interface TextareaProps extends InputProps {
|
|
|
143
144
|
/** Linhas visíveis. Vira altura mínima, porque no RN não há `rows`. */
|
|
144
145
|
rows?: number;
|
|
145
146
|
}
|
|
146
|
-
/** A caixa alta. Mesmo campo, `multiline`, raio LG e altura mínima de
|
|
147
|
+
/** A caixa alta. Mesmo campo, `multiline`, raio LG e altura mínima de 128 (a da referência, 0.32.0). */
|
|
147
148
|
export declare function Textarea({ rows, size, style, ...rest }: TextareaProps): React.JSX.Element;
|
|
148
149
|
interface ControleProps {
|
|
149
150
|
label?: React.ReactNode;
|
|
@@ -348,8 +349,8 @@ export interface SwitchProps extends ControleProps {
|
|
|
348
349
|
*
|
|
349
350
|
* ⚠ **NÃO é o `Switch` do React Native**, pela mesma razão que o `Spinner` não é o
|
|
350
351
|
* `ActivityIndicator`: aquele desenha o interruptor do sistema no Android e o do iOS no iOS —
|
|
351
|
-
* duas aparências que o `CLAUDE.md` proíbe em voz alta. As medidas
|
|
352
|
-
*
|
|
352
|
+
* duas aparências que o `CLAUDE.md` proíbe em voz alta. As medidas são as do interruptor da
|
|
353
|
+
* referência (0.32.0): trilho de 48 × 24 e bolinha em cápsula de 28 × 20, a 2 da borda.
|
|
353
354
|
*
|
|
354
355
|
* ⚠ **E ele respeita "menos movimento"**: com a preferência ligada, o polegar salta em vez de
|
|
355
356
|
* deslizar. O estado continua o mesmo — o que some é a animação, não a informação.
|
|
@@ -383,6 +384,14 @@ export interface SegmentedControlProps extends ViewProps {
|
|
|
383
384
|
* `radio` por segmento, e o estado `selected` em quem está escolhido.
|
|
384
385
|
*/
|
|
385
386
|
export declare function SegmentedControl({ items, value, onChange, label, disabled, justify, fullWidth, style, ...rest }: SegmentedControlProps): React.JSX.Element;
|
|
387
|
+
/**
|
|
388
|
+
* O indicador da opção escolhida, nas listas do `Select` e do `Combobox` (0.32.0): o da referência
|
|
389
|
+
* — a caixa de 20 com o `check` de 16 — e o mesmo glifo da coluna `.combobox-check` da web. A cor
|
|
390
|
+
* é a do destaque que se lê como ícone nos dois temas (`primaryEmphasis`, ADR-0054). Sai do
|
|
391
|
+
* arquivo, não do pacote — e é função, não componente, para não contar como peça nova. ⚠ Pede o
|
|
392
|
+
* `check` no registro de ícones do app; sem ele, o aviso de desenvolvimento do `Icon` diz o import.
|
|
393
|
+
*/
|
|
394
|
+
export declare const indicadorDaEscolhida: (t: AureaTokens) => React.JSX.Element;
|
|
386
395
|
export interface SelectProps {
|
|
387
396
|
items: Array<{
|
|
388
397
|
value: string;
|