@aurea-uds/core 0.8.7 → 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/aurea.css CHANGED
@@ -6,14 +6,14 @@
6
6
  --font-ui:"IBM Plex Sans","Segoe UI",sans-serif;
7
7
  --font-editorial:"IBM Plex Serif",Georgia,serif;
8
8
  --font-code:"IBM Plex Mono",SFMono-Regular,Consolas,monospace;
9
- --text-xs:0.75rem;
10
- --text-sm:0.8125rem;
11
- --text-md:0.875rem;
9
+ --text-xs:0.8125rem;
10
+ --text-sm:1rem;
11
+ --text-md:1rem;
12
12
  --text-base:1rem;
13
- --text-lg:1.125rem;
13
+ --text-lg:1.25rem;
14
14
  --text-xl:1.25rem;
15
- --text-2xl:1.5rem;
16
- --text-3xl:1.875rem;
15
+ --text-2xl:1.5625rem;
16
+ --text-3xl:1.9375rem;
17
17
  --text-4xl:2.25rem;
18
18
  --text-5xl:3rem;
19
19
  --leading-tight:1.2;
@@ -691,7 +691,12 @@ img,svg { display:block; }
691
691
  espaço normal — degrada, não quebra. Nenhuma das nove referências usa isto: medido,
692
692
  `grep -ri safe-area-inset Referencia/` = 0. Veio de pesquisa, pelo BUILDING.md §2
693
693
  passo 4. */
694
- .bottom-nav { --bottomnav-ring:2rem; --bottomnav-surface:var(--card); position:sticky; bottom:0; z-index:var(--z-sticky); display:flex; gap:var(--space-1); margin:var(--space-4); padding:var(--space-1); padding-bottom:max(var(--space-1),env(safe-area-inset-bottom)); border:1px solid var(--border); border-radius:var(--radius-control); background:var(--card); color:var(--card-foreground); box-shadow:var(--shadow-md); }
694
+ /* A folga do sistema fica POR FORA da pilula: `margin-bottom`, nao `padding-bottom`. Conserto de
695
+ 19/09/2026, medido em Android com os tres botoes — como recheio, os ~48 pontos da faixa do
696
+ sistema faziam a pilula crescer para baixo e a barriga dela ficava atras dos botoes. A borda de
697
+ baixo agora fica `--space-4` acima da area do sistema, em qualquer aparelho.
698
+ A variante `edge` reverte isto mais abaixo, e la o recheio e' o certo. */
699
+ .bottom-nav { --bottomnav-ring:2rem; --bottomnav-surface:var(--card); position:sticky; bottom:0; z-index:var(--z-sticky); display:flex; gap:var(--space-1); margin:var(--space-4); margin-bottom:calc(var(--space-4) + env(safe-area-inset-bottom)); padding:var(--space-1); border:1px solid var(--border); border-radius:var(--radius-control); background:var(--card); color:var(--card-foreground); box-shadow:var(--shadow-md); }
695
700
  /* `--control-h-lg` e não `--control-h-md`: alvo de toque. O md dá 36px em comfortable e
696
701
  o alvo confortável de dedo é maior — com o recuo, o item renderiza acima de 44px. */
697
702
  .bottom-nav-item { flex:1; min-width:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:var(--space-1); min-height:var(--control-h-lg); padding:var(--space-1); border:0; border-radius:var(--radius-control); background:transparent; color:var(--muted-foreground); font:inherit; font-size:var(--text-xs); text-align:center; text-decoration:none; cursor:pointer; }
@@ -778,7 +783,9 @@ img,svg { display:block; }
778
783
 
779
784
  `--bottomnav-ring` é a moldura do ícone quando o indicador é redondo. Válvula no idioma do
780
785
  `--chart-h` e do `--datagrid-max-h`: quem hospeda decide, o componente não vira prop nova. */
781
- .bottom-nav-edge { --bottomnav-surface:var(--background); margin:0; padding-inline:0; border-width:1px 0 0; border-radius:0; background:var(--background); box-shadow:none; }
786
+ /* `edge` encosta na borda, entao a folga do sistema volta a ser RECHEIO — por fora ela deixaria
787
+ uma faixa de fundo entre a barra e o pe' da tela. `max` e nao soma, como sempre foi. */
788
+ .bottom-nav-edge { --bottomnav-surface:var(--background); margin:0; padding-inline:0; padding-bottom:max(var(--space-1),env(safe-area-inset-bottom)); border-width:1px 0 0; border-radius:0; background:var(--background); box-shadow:none; }
782
789
  /* `--primary-emphasis` e não `--primary`: sem fundo, a marca vira TEXTO, e o amarelo puro
783
790
  sobre o claro não se lê. É o mesmo token que o `.badge-primary` já usa por essa razão. */
784
791
  .bottom-nav-ind-none .bottom-nav-item[aria-current] { color:var(--primary-emphasis); }
@@ -2035,8 +2042,15 @@ img,svg { display:block; }
2035
2042
  /* `--menu-px` existe porque o RÓTULO DE GRUPO tem de alinhar com o texto dos itens, e o número
2036
2043
  estava escrito duas vezes. Uma relação entre duas regras não se mantém repetindo a constante:
2037
2044
  quem mudar o recuo do item mudaria o alinhamento do rótulo sem perceber. */
2038
- .menu { --menu-px:10px; z-index:var(--z-modal); min-width:200px; max-width:min(320px,calc(100vw - 32px)); padding:6px; border:1px solid var(--border); border-radius:var(--radius-lg); background:var(--popover); color:var(--popover-foreground); box-shadow:var(--shadow-lg); }
2039
- .menu-item { display:flex; align-items:center; gap:10px; width:100%; min-height:var(--control-h-md); padding:0 var(--menu-px,10px); border:0; border-radius:var(--radius-sm); background:transparent; color:var(--foreground); font:inherit; text-align:start; cursor:pointer; }
2045
+ /* O RAIO DA LINHA DO MENU SAI DA CONTA DA CASA (C-09, 23/09/2026 — decidido pelo Victor: 18px).
2046
+ O item tinha `--radius-sm` cravado (8px) dentro de um painel de 16px com 6px de respiro: nem a
2047
+ conta (16 − 6 = 10) ele seguia. Ele comparou 8, 10 e 18 no popup real e escolheu 18 — que é
2048
+ exatamente o que a conta já dá na `.sidebar-item` e na `.nav-list-row` (22 − 4). Para o 18
2049
+ continuar sendo CONTA e não número, o painel passa a ter as medidas da lateral: raio de cartão
2050
+ e `--space-1` de respiro. Vale para toda lista que usa `.menu`: Combobox, MultiCombobox,
2051
+ DropdownMenu, ContextMenu, Menubar e a lista da CommandPalette. */
2052
+ .menu { --menu-px:10px; z-index:var(--z-modal); min-width:200px; max-width:min(320px,calc(100vw - 32px)); padding:var(--space-1); border:1px solid var(--border); border-radius:var(--radius-card); background:var(--popover); color:var(--popover-foreground); box-shadow:var(--shadow-lg); }
2053
+ .menu-item { display:flex; align-items:center; gap:10px; width:100%; min-height:var(--control-h-md); padding:0 var(--menu-px,10px); border:0; border-radius:calc(var(--radius-card) - var(--space-1)); background:transparent; color:var(--foreground); font:inherit; text-align:start; cursor:pointer; }
2040
2054
  .menu-item[data-highlighted],.menu-item:hover:not([data-disabled]) { background:var(--surface-3); outline:none; }
2041
2055
  .menu-item[data-disabled] { opacity:.5; cursor:not-allowed; }
2042
2056
  /* CommandPalette (M6): a lista dentro da paleta. Reusa `.menu` e `.menu-item` — a paleta nao
@@ -2100,6 +2114,9 @@ img,svg { display:block; }
2100
2114
  .combobox-empty:empty { display:none; }
2101
2115
  .combobox-item { display:grid; grid-template-columns:16px minmax(0,1fr); gap:8px; align-items:center; }
2102
2116
  .combobox-check { display:inline-flex; color:var(--primary); }
2117
+ /* A-01: o texto vai SEMPRE para a segunda coluna, mesmo em HTML escrito à mão sem o invólucro do
2118
+ check — é quem monta a lista sem o React que ficaria de novo com o rótulo na coluna de 16px. */
2119
+ .combobox-item > :last-child { grid-column:2; }
2103
2120
  /* MultiCombobox (Fase 4) — chips de multi-seleção + grupos. Espaçamento novo tokenizado. */
2104
2121
  .combobox-multi { display:flex; align-items:center; gap:var(--space-2); width:100%; min-width:0; min-height:var(--control-h-md); padding:var(--space-1) var(--space-2); background:var(--field-bg); border:1px solid var(--border-strong); border-radius:var(--radius-control); transition:border-color var(--duration-fast); }
2105
2122
  .combobox-multi:hover { border-color:var(--border); }
package/dist/aurea.js CHANGED
@@ -174,6 +174,36 @@
174
174
  }
175
175
  document.addEventListener("toggle", focoDaGaveta, true);
176
176
 
177
+ // ── Gaveta de navegação: o FECHAMENTO (A-06 e A-07, 23/09/2026) ─────────────────────────
178
+ // A gaveta abria por popover e nada a fechava por código — só Escape e clique fora. Faltavam os
179
+ // dois gatilhos que o uso real dispara primeiro, e os dois têm gêmeo no `@aurea-uds/react`
180
+ // (`Sidebar` e `AppShell`): este runtime serve a página sem React, aquele serve quem instala só
181
+ // o pacote de componentes. Rodar os dois é inofensivo — o segundo encontra a gaveta já fechada.
182
+ //
183
+ // 1. Escolher um item fecha. A página mudou por baixo; a gaveta na frente dela esconde a mudança.
184
+ function estaAberta(gaveta) {
185
+ try { return gaveta.matches(":popover-open"); } catch (_) { return false; } // motor sem popover
186
+ }
187
+ document.addEventListener("click", function (event) {
188
+ if (event.defaultPrevented || !event.target || !event.target.closest) return;
189
+ var alvo = event.target.closest("a[href], .sidebar-item");
190
+ var gaveta = alvo && alvo.closest(".sidebar[popover]");
191
+ if (gaveta && estaAberta(gaveta)) gaveta.hidePopover();
192
+ });
193
+ // 2. Subir para o desktop fecha. O top layer é estado do DOM, e nenhuma media query tira um
194
+ // elemento de lá: sem isto a gaveta ficava flutuando, sem véu, e o botão que a fecharia sumia.
195
+ // 1024 é o `--breakpoint-lg`, o mesmo corte do `@media (max-width:1023px)` acima; o
196
+ // `consumidores-lote1.test` reprova se os dois divergirem.
197
+ if (typeof window.matchMedia === "function") {
198
+ var desktop = window.matchMedia("(min-width: 1024px)");
199
+ var aoSubir = function (e) {
200
+ if (!e.matches) return;
201
+ var abertas = document.querySelectorAll(".sidebar[popover]");
202
+ for (var g = 0; g < abertas.length; g++) if (estaAberta(abertas[g])) abertas[g].hidePopover();
203
+ };
204
+ if (desktop.addEventListener) desktop.addEventListener("change", aoSubir);
205
+ }
206
+
177
207
  function toastStack() {
178
208
  var stack = document.querySelector(".toast-stack");
179
209
  if (!stack) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aurea-uds/core",
3
- "version": "0.8.7",
3
+ "version": "0.8.8",
4
4
  "description": "The Aurea UDS stylesheet and its vanilla behaviour. Import @aurea-uds/fonts/css before this.",
5
5
  "keywords": [
6
6
  "aurea",