@aurea-uds/core 0.17.0 → 0.18.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/aurea.css +66 -1
- package/package.json +1 -1
package/dist/aurea.css
CHANGED
|
@@ -494,6 +494,14 @@ img,svg { display:block; }
|
|
|
494
494
|
.cluster-justify-center { justify-content:center; } .cluster-justify-end { justify-content:flex-end; } .cluster-justify-between { justify-content:space-between; }
|
|
495
495
|
.cluster-nowrap { flex-wrap:nowrap; }
|
|
496
496
|
.grid-fixed { grid-template-columns:repeat(var(--grid-cols,1),minmax(0,1fr)); }
|
|
497
|
+
/* AN-08 (03/10/2026): a largura mínima da coluna, por nome — a trava de um consumidor reprova medida
|
|
498
|
+
escrita, e `min="sm"` virava UMA coluna sem aviso (o `--grid-min` inválido derruba a regra inteira).
|
|
499
|
+
O HeroUI não tem `Grid`; nenhum número é novo, cada um já mede uma grade ou uma caixa daqui:
|
|
500
|
+
xs 8rem — a miniatura da `.gallery` (`--gallery-min`)
|
|
501
|
+
sm 12rem — a célula da `.health-matrix`
|
|
502
|
+
md 15rem — o padrão do `.grid`, logo acima (sem classe)
|
|
503
|
+
lg 20rem — o `.dialog-xs`, o `max-w-xs` do HeroUI */
|
|
504
|
+
.grid-min-xs { --grid-min:8rem; } .grid-min-sm { --grid-min:12rem; } .grid-min-lg { --grid-min:20rem; }
|
|
497
505
|
|
|
498
506
|
/* ========================================================================== */
|
|
499
507
|
/* 03. APP SHELL E DOCUMENTAÇÃO */
|
|
@@ -587,7 +595,10 @@ img,svg { display:block; }
|
|
|
587
595
|
encostado, não sobre a lateral — a rente já encosta sozinha. */
|
|
588
596
|
.app-shell-flush .sidebar:not(.sidebar-flush) { --shell-top:calc(var(--topbar-height) + var(--space-05)); margin-block-start:var(--space-05); }
|
|
589
597
|
.app-shell-flush .content { margin-block-start:var(--space-05); }
|
|
590
|
-
|
|
598
|
+
/* A margem é LÓGICA desde 03/10/2026 (AN-01): era `margin:space-4 space-4 space-4 0`, física, e na
|
|
599
|
+
escrita da direita para a esquerda o conteúdo encostava na borda da página e deixava 32 de vão na
|
|
600
|
+
junção com a lateral. Medido no banco da moldura; na esquerda para a direita nada muda. */
|
|
601
|
+
.content { min-width:0; margin-block:var(--space-4); margin-inline:0 var(--space-4); padding:var(--space-6); border:1px solid var(--border); border-radius:var(--radius-card); background:var(--card); color:var(--card-foreground); }
|
|
591
602
|
/* contentVariant="plain" (B-10): a área de conteúdo sem caixa. Os `Card` da tela passam a ser as
|
|
592
603
|
únicas superfícies. A margem continua: é ela que afasta o conteúdo da lateral e da barra. */
|
|
593
604
|
.content-plain { padding:0; border:0; border-radius:0; background:none; color:inherit; }
|
|
@@ -717,6 +728,33 @@ img,svg { display:block; }
|
|
|
717
728
|
nada. Gate nenhum via, porque `sidebar.html` não tem baseline de pixel. */
|
|
718
729
|
.app-shell:has(> .sidebar-collapsed) { --sidebar-track:calc(var(--sidebar-rail) + var(--space-4)*2); }
|
|
719
730
|
.app-shell:has(> .sidebar-collapsed.sidebar-flush) { --sidebar-track:var(--sidebar-rail); }
|
|
731
|
+
/* AN-01 (03/10/2026): O BOTÃO DE RECOLHER, no alto da junção do menu com o conteúdo — o lugar que o
|
|
732
|
+
Victor marcou. Só com `sidebarCollapsible`, e por isso mora sob `.app-shell-collapsible`: o
|
|
733
|
+
`.app-shell` cru (o catálogo escrito à mão o usa como raiz) não muda.
|
|
734
|
+
O botão é um item da grade na MESMA célula da lateral, e por isso a lateral e o conteúdo ganham
|
|
735
|
+
lugar escrito: sem ele, o posicionamento automático da grade empurraria a lateral para a coluna
|
|
736
|
+
do conteúdo. A caixa do botão é de tamanho zero na borda da coluna e copia da lateral a margem de
|
|
737
|
+
cima e o `--shell-top`, então gruda junto quando a página rola; o botão se centra nela.
|
|
738
|
+
No alto: o centro do botão na altura do centro do primeiro item da lateral (borda + `space-1` +
|
|
739
|
+
metade do `control-h-md`). Na junção: no meio do vão de `space-4` entre as duas caixas, ou em cima
|
|
740
|
+
do fio, na lateral rente. */
|
|
741
|
+
.app-shell-collapsible > .sidebar { grid-column:1; grid-row:2; }
|
|
742
|
+
.app-shell-collapsible > .content { grid-column:2; grid-row:2; }
|
|
743
|
+
.sidebar-toggle-slot { --toggle-top:calc(var(--topbar-height) + var(--space-4)*2); --toggle-x:calc(var(--space-4) / -2); --toggle-edge:var(--border-width);
|
|
744
|
+
grid-column:1; grid-row:2; justify-self:end; align-self:start; position:sticky; top:var(--toggle-top); z-index:var(--z-sticky); width:0; height:0; margin-block-start:var(--space-4); }
|
|
745
|
+
.app-shell-flush > .sidebar-toggle-slot { --toggle-top:calc(var(--topbar-height) + var(--space-05)); margin-block-start:var(--space-05); }
|
|
746
|
+
.app-shell-collapsible:has(> .sidebar-flush) > .sidebar-toggle-slot { --toggle-top:var(--topbar-height); --toggle-x:0px; --toggle-edge:0px; margin-block-start:0; }
|
|
747
|
+
/* O botão se centra por conta, com o lado dele escrito, e não por `translate` — que é físico e pede
|
|
748
|
+
`:dir(rtl)` para virar, e o empacotador do app reescreve `:dir()` (medido no Vite, 03/10/2026).
|
|
749
|
+
Com as margens lógicas ele vira sozinho. O lado é o `control-h-xs` do `IconButton size="xs"`, e o
|
|
750
|
+
alvo de toque com o dedo (`target-min`, a mesma troca do `.btn-icon` lá embaixo). A seta, quem
|
|
751
|
+
vira é o React, pela direção do provedor. */
|
|
752
|
+
.sidebar-toggle-slot > .btn.sidebar-toggle { --toggle-size:var(--control-h-xs); --btn-bg:var(--card); --btn-border:var(--border-strong); position:absolute; inline-size:var(--toggle-size); block-size:var(--toggle-size); min-inline-size:0; min-block-size:0;
|
|
753
|
+
inset-block-start:calc(var(--toggle-edge) + var(--space-1) + var(--control-h-md) / 2 - var(--toggle-size) / 2); inset-inline-start:calc(var(--toggle-x) - var(--toggle-size) / 2); }
|
|
754
|
+
@media (pointer:coarse) { .sidebar-toggle-slot > .btn.sidebar-toggle { --toggle-size:var(--target-min); } }
|
|
755
|
+
@media (max-width:1023px) {
|
|
756
|
+
.sidebar-toggle-slot { display:none; }
|
|
757
|
+
.app-shell-collapsible > .sidebar, .app-shell-collapsible > .content { grid-column:auto; grid-row:auto; } }
|
|
720
758
|
|
|
721
759
|
/* ── Navegação inferior — o vocabulário de APLICATIVO ───────────────────────────────
|
|
722
760
|
Lacuna estrutural medida no `CONSUMIDOR-1.md` §4.1: `.topbar` e `.sidebar` são
|
|
@@ -979,6 +1017,11 @@ img,svg { display:block; }
|
|
|
979
1017
|
/* O VALOR E A SETA NÃO ENCOLHEM: valor cortado MENTE (um "R$ 1.2" no lugar de "R$ 1.234"), e seta
|
|
980
1018
|
cortada deixa de dizer que a linha abre. Quem cede espaço é o texto, que reticencia dizendo. */
|
|
981
1019
|
.nav-list-value { flex:none; color:var(--muted-foreground); font-size:var(--text-sm); }
|
|
1020
|
+
/* AN-04 (03/10/2026): os sinais ao lado do valor — fixada, silenciada. Pequenos (`sm`), apagados como o
|
|
1021
|
+
valor, e o vão é o mesmo de dentro do texto (`space-1`). A foto é o `.avatar` de sempre. */
|
|
1022
|
+
.nav-list-indicators { flex:none; display:inline-flex; align-items:center; gap:var(--space-1); color:var(--muted-foreground); }
|
|
1023
|
+
.nav-list-indicators>span { display:inline-flex; }
|
|
1024
|
+
.nav-list-row>.avatar { flex:none; }
|
|
982
1025
|
.nav-list-row .nav-list-chevron { flex:none; opacity:.6; }
|
|
983
1026
|
@media (hover:hover) and (pointer:fine) { .nav-list-row:hover { background:var(--secondary); } }
|
|
984
1027
|
/* `aria-disabled` e NÃO `:disabled` — a razão está escrita ao lado de `.btn:disabled`, medida em
|
|
@@ -1691,6 +1734,28 @@ img,svg { display:block; }
|
|
|
1691
1734
|
@media (max-width:640px) { .banner { grid-template-columns:auto minmax(0,1fr); } .banner>:last-child { grid-column:2; justify-self:start; } }
|
|
1692
1735
|
.progress { height:8px; overflow:hidden; border-radius:999px; background:var(--surface-3); }
|
|
1693
1736
|
.progress>span { display:block; height:100%; border-radius:inherit; background:var(--primary); }
|
|
1737
|
+
/* AN-07 (03/10/2026): a caixa de fora, o texto de apoio e o tom. A anatomia é a do `ProgressBar` do
|
|
1738
|
+
HeroUI 3.2.6 (`@heroui/styles`, progress-bar.css): a saída no alto à direita, `text-sm` médio com
|
|
1739
|
+
algarismos de largura igual, e `gap-1` até o trilho. O tom é a lista fechada do `ButtonTone`:
|
|
1740
|
+
pausado é `neutral`, falha é `danger`. */
|
|
1741
|
+
.progress-field { display:grid; gap:var(--space-1); }
|
|
1742
|
+
.progress-detail { justify-self:end; color:var(--muted-foreground); font-size:var(--text-sm); font-weight:var(--weight-medium); font-variant-numeric:tabular-nums; }
|
|
1743
|
+
.progress-tone-neutral>span { background:var(--muted-foreground); }
|
|
1744
|
+
.progress-tone-success>span { background:var(--success); }
|
|
1745
|
+
.progress-tone-warning>span { background:var(--warning); }
|
|
1746
|
+
.progress-tone-danger>span { background:var(--destructive); }
|
|
1747
|
+
.progress-tone-info>span { background:var(--info); }
|
|
1748
|
+
/* Sem total, um pedaço de 2/5 corre pelo trilho: os números do HeroUI (`w-2/5`, de -100% a 350% da
|
|
1749
|
+
própria largura, 1,5 s, a curva dele). O HeroUI anda com `translateX`; aqui anda a MARGEM LÓGICA
|
|
1750
|
+
(de -40% a 140% do trilho, o mesmo percurso), para correr ao contrário na escrita da direita para
|
|
1751
|
+
a esquerda sem `:dir(rtl)` — o empacotador do app reescreve `:dir()` como lista de idiomas e a
|
|
1752
|
+
regra deixa de pegar (medido no Vite, 03/10/2026). O pedaço tem 8 de altura: a conta por quadro é
|
|
1753
|
+
desprezível.
|
|
1754
|
+
Com menos movimento ele não corre: a barra inteira, apagada — nunca um pedaço parado, que leria
|
|
1755
|
+
como 40% feito. */
|
|
1756
|
+
.progress-indeterminate>span { width:40%; animation:progress-indeterminate 1.5s cubic-bezier(0.65,0,0.35,1) infinite; }
|
|
1757
|
+
@keyframes progress-indeterminate { from { margin-inline-start:-40%; } to { margin-inline-start:140%; } }
|
|
1758
|
+
@media (prefers-reduced-motion:reduce) { .progress-indeterminate>span { width:100%; animation:none; opacity:var(--opacity-disabled); } }
|
|
1694
1759
|
/* DataState (M3): a região que troca de cara. Ela NÃO desenha nada próprio — só empilha o que
|
|
1695
1760
|
já existe (esqueleto, alerta, estado vazio, conteúdo) com respiro entre eles. Se ganhar borda
|
|
1696
1761
|
ou fundo, viram duas superfícies para a mesma coisa — o defeito que a `.table-region` cobrou. */
|