@aurea-uds/core 0.8.13 → 0.9.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.
Files changed (2) hide show
  1. package/dist/aurea.css +38 -6
  2. package/package.json +1 -1
package/dist/aurea.css CHANGED
@@ -42,6 +42,7 @@
42
42
  --radius-control:999px;
43
43
  --radius-full:var(--radius-control);
44
44
  --border-width:1px;
45
+ --opacity-disabled:0.5;
45
46
  --shadow-md:0 16px 42px rgba(0,0,0,0.28);
46
47
  --shadow-lg:0 28px 80px rgba(0,0,0,0.42);
47
48
  --duration-fast:120ms;
@@ -469,6 +470,11 @@ img,svg { display:block; }
469
470
  de um piso: sem `min-height` ele mede ZERO num pai que não define altura, e desaparece. */
470
471
  .separator { flex:none; width:100%; height:1px; margin:0; border:0; background:var(--border); }
471
472
  .separator-vertical { align-self:stretch; width:1px; height:auto; min-height:var(--space-2); }
473
+ /* spacing (C-04): os três degraus da ADR-0051. Na vertical a folga vai para os lados. */
474
+ .separator-space-tight { margin-block:var(--space-2); } .separator-space-normal { margin-block:var(--space-4); } .separator-space-loose { margin-block:var(--space-6); }
475
+ .separator-vertical.separator-space-tight { margin-block:0; margin-inline:var(--space-2); }
476
+ .separator-vertical.separator-space-normal { margin-block:0; margin-inline:var(--space-4); }
477
+ .separator-vertical.separator-space-loose { margin-block:0; margin-inline:var(--space-6); }
472
478
  /* Grid: o terceiro primitivo de layout, com o mesmo gap do .stack. A pele nasceu na Fase 11
473
479
  (achado A13): o componente existia desde sempre e saía `display:block` — empilhava. Ninguém
474
480
  via porque o chrome do catálogo REDEFINIA .grid, então ele parecia pronto na nossa
@@ -476,6 +482,15 @@ img,svg { display:block; }
476
482
  estoura o contêiner quando o texto vai a 200% e a coluna fica maior que a caixa (lição do
477
483
  M12); --grid-min é o botão de ajuste, no idioma de --qr-module e --demo-height. */
478
484
  .grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(min(var(--grid-min,15rem),100%),1fr)); gap:var(--space-4); }
485
+ /* B-01 (24/09/2026): as props de layout. `gap` tem três degraus — ADR-0051. Os nomes de alinhamento
486
+ são os mesmos do `Cluster` nativo (R-09). Sem prop, nenhuma destas classes sai. */
487
+ .stack-gap-tight,.cluster-gap-tight,.grid-gap-tight { gap:var(--space-2); }
488
+ .stack-gap-loose,.cluster-gap-loose,.grid-gap-loose { gap:var(--space-6); }
489
+ .stack-align-start { align-items:flex-start; } .stack-align-center { align-items:center; } .stack-align-end { align-items:flex-end; }
490
+ .cluster-align-start { align-items:flex-start; } .cluster-align-end { align-items:flex-end; } .cluster-align-baseline { align-items:baseline; }
491
+ .cluster-justify-center { justify-content:center; } .cluster-justify-end { justify-content:flex-end; } .cluster-justify-between { justify-content:space-between; }
492
+ .cluster-nowrap { flex-wrap:nowrap; }
493
+ .grid-fixed { grid-template-columns:repeat(var(--grid-cols,1),minmax(0,1fr)); }
479
494
 
480
495
  /* ========================================================================== */
481
496
  /* 03. APP SHELL E DOCUMENTAÇÃO */
@@ -938,6 +953,8 @@ img,svg { display:block; }
938
953
  .btn-xl { --step-h:var(--control-h-xl); --step-px:26px; --step-gap:10px; --step-fs:var(--text-base); border-radius:var(--radius-control); }
939
954
  /* Largura total: para rodapé de formulário e tela estreita. Só a largura muda. */
940
955
  .btn-block { width:100%; }
956
+ /* grow (C-03): parte igual de uma fila. `min-width:0` deixa o rótulo encolher em vez de estourar. */
957
+ .btn-grow { flex:1 1 0%; min-width:0; }
941
958
  /* SKIP LINK — WCAG 2.2 SC 2.4.1 (Bypass Blocks), nível A.
942
959
  Medido em 21/08/2026: existia só no `apps/docs/index.html`, escrito à mão. O core não tinha,
943
960
  o `AppShell` não tinha, e as 200 páginas do catálogo não tinham — ou seja, a página de
@@ -1122,7 +1139,7 @@ img,svg { display:block; }
1122
1139
  .input,.textarea,.select { width:100%; min-width:0; block-size:var(--step-h,var(--control-h-md)); padding-block:0; padding-inline:var(--step-field-px,13px); color:var(--foreground); background:var(--field-bg); border:1px solid var(--border-strong); border-radius:var(--radius-control); transition:border-color var(--duration-fast),background-color var(--duration-fast),box-shadow var(--duration-fast); }
1123
1140
  .input:hover,.textarea:hover,.select:hover { border-color:var(--border); }
1124
1141
  .input::placeholder,.textarea::placeholder { color:var(--subtle-foreground); }
1125
- .input:disabled,.textarea:disabled,.select:disabled { opacity:.5; cursor:not-allowed; }
1142
+ .input:disabled,.textarea:disabled,.select:disabled { opacity:var(--opacity-disabled); cursor:not-allowed; }
1126
1143
  /* O `padding-inline` daqui tem de LER a variável também, e com o próprio padrão: a base do
1127
1144
  textarea vem DEPOIS da regra compartilhada e a sobrescrevia, congelando o padding em 14px nos
1128
1145
  três degraus. Medido em 22/08/2026 contra o estado anterior — era 12/14/16 e virou 14/14/14.
@@ -1158,7 +1175,7 @@ img,svg { display:block; }
1158
1175
  descrevendo um comportamento que não é o que acontece. */
1159
1176
  .number-field-scrub-vertical { cursor:ns-resize; }
1160
1177
  .number-field-scrub:hover { background:var(--surface-hover); color:var(--foreground); }
1161
- .number-field-scrub[data-disabled] { opacity:.5; cursor:not-allowed; }
1178
+ .number-field-scrub[data-disabled] { opacity:var(--opacity-disabled); cursor:not-allowed; }
1162
1179
  /* O cursor virtual é PORTALADO para o <body> — o ponteiro do sistema fica escondido pelo Pointer
1163
1180
  Lock durante o arraste, e este elemento é o que a pessoa vê no lugar dele. Portalado, ele sai
1164
1181
  de qualquer contexto de empilhamento local, então precisa do degrau de overlay para não ficar
@@ -1419,6 +1436,10 @@ img,svg { display:block; }
1419
1436
  badge com ícone fica mais alto que o badge de texto na mesma fila. 16px + 3+3 de padding
1420
1437
  + 1+1 de borda = 24px exatos: com ícone ou sem, mede o mesmo. */
1421
1438
  .badge .icon { width:var(--icon-sm); height:var(--icon-sm); }
1439
+ /* fit="content" (R-01): o tamanho do texto mesmo numa coluna. `fit-content` e não `align-self`:
1440
+ numa fila, `align-self:flex-start` tiraria o selo do meio; o tamanho definido só desliga o
1441
+ esticar, que é o que a coluna faz com um item sem tamanho. */
1442
+ .badge-fit { inline-size:fit-content; }
1422
1443
  .badge-primary { --badge-accent:var(--primary-emphasis); color:var(--primary-emphasis); border-color:var(--primary-outline); background:color-mix(in srgb,var(--primary) 10%,transparent); }
1423
1444
  /* TAMANHOS. O md é a base (24px), que não muda — é o que as 103 fichas já usam. */
1424
1445
  .badge-xs { min-height:var(--space-4); padding:0 var(--space-1); border-width:0; }
@@ -1512,6 +1533,8 @@ img,svg { display:block; }
1512
1533
  .status-offline .status-dot { background:transparent; box-shadow:inset 0 0 0 2px currentColor,0 0 0 3px color-mix(in srgb,currentColor 14%,transparent); }
1513
1534
 
1514
1535
  .card { min-width:0; padding:var(--card-pad); border:1px solid var(--border); border-radius:var(--radius-card); background:var(--card); color:var(--card-foreground); box-shadow:none; }
1536
+ /* padding="none" (C-05): sem respiro, e a mídia recortada no raio 22 do próprio cartão. */
1537
+ .card-flush { padding:0; overflow:hidden; }
1515
1538
  .card-raised { box-shadow:none; } .card-inset { background:var(--secondary); }
1516
1539
  /* A variante interativa é o ALVO, e desde o G-A11Y-11 ela exige `render` — o elemento vem de
1517
1540
  quem consome, e é `<button>` ou `<a href>` conforme a promessa seja ação ou navegação.
@@ -2033,11 +2056,20 @@ img,svg { display:block; }
2033
2056
  .icon-tile { min-height:86px; display:flex; flex-direction:column; align-items:flex-start; justify-content:space-between; gap:12px; padding:13px; border:1px solid var(--border); border-radius:var(--radius-lg); background:var(--secondary); color:var(--muted-foreground); cursor:pointer; text-align:start; transition:transform var(--duration-fast) var(--ease-standard),border-color var(--duration-fast),color var(--duration-fast); }
2034
2057
  @media (hover:hover) and (pointer:fine) { .icon-tile:hover { color:var(--foreground); border-color:var(--primary); transform:translateY(-1px); } } .icon-tile:focus-visible { color:var(--foreground); border-color:var(--primary); } .icon-tile span { overflow:hidden; max-width:100%; text-overflow:ellipsis; white-space:nowrap; font:11px var(--font-code); }
2035
2058
  .dialog-backdrop { position:fixed; inset:0; z-index:var(--z-modal); background:var(--overlay); backdrop-filter:blur(5px); }
2036
- .dialog { position:fixed; top:50%; left:50%; transform:translate(-50%,-50%); z-index:var(--z-modal); width:min(560px,calc(100vw - 40px)); max-height:calc(100vh - 40px); overflow:auto; padding:24px; border:1px solid var(--border); border-radius:var(--radius-card); background:var(--popover); color:var(--popover-foreground); box-shadow:var(--shadow-lg); }
2059
+ .dialog { position:fixed; top:50%; left:50%; transform:translate(-50%,-50%); z-index:var(--z-modal); width:min(28rem,calc(100vw - 40px)); max-height:calc(100vh - 40px); overflow:auto; padding:24px; border:1px solid var(--border); border-radius:var(--radius-card); background:var(--popover); color:var(--popover-foreground); box-shadow:var(--shadow-lg); }
2060
+ /* size (B-03), decisão do Victor em 24/09/2026: as quatro larguras do HeroUI — `max-w-xs` a
2061
+ `max-w-lg` do @heroui/styles 3.2.6, 20/24/28/32rem = 320/384/448/512 — mais 1024 (o token
2062
+ --breakpoint-lg) e a tela cheia. O padrão passou a ser o `md` do HeroUI, 448; até a 0.8.14
2063
+ era 560. */
2064
+ .dialog-xs { width:min(20rem,calc(100vw - 40px)); }
2065
+ .dialog-sm { width:min(24rem,calc(100vw - 40px)); }
2066
+ .dialog-lg { width:min(32rem,calc(100vw - 40px)); }
2067
+ .dialog-xl { width:min(var(--breakpoint-lg),calc(100vw - 40px)); }
2068
+ .dialog-full { width:calc(100vw - 40px); height:calc(100vh - 40px); }
2037
2069
  .dialog>header,.drawer>header { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; margin-bottom:16px; } .dialog-body { display:grid; gap:14px; }
2038
2070
  /* O ConfirmDialog é o MESMO `.dialog` — não nasce uma segunda superfície flutuante, que seria a
2039
2071
  pele divergindo como divergiu entre `.table-wrap` e `.table-region`. O que muda é a caixa mais
2040
- estreita (uma frase e dois botões não precisam de 560px) e o rodapé alinhado ao fim, com o
2072
+ estreita (uma frase e dois botões não precisam da largura do Dialog) e o rodapé alinhado ao fim, com o
2041
2073
  destrutivo por último: a ordem visual é cancelar → agir, e é onde as quatro referências batem. */
2042
2074
  .dialog-confirm { width:min(420px,calc(100vw - 40px)); }
2043
2075
  .dialog-confirm>footer { display:flex; justify-content:flex-end; gap:var(--space-2); margin-block-start:var(--space-5); }
@@ -2082,7 +2114,7 @@ img,svg { display:block; }
2082
2114
  .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); }
2083
2115
  .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; }
2084
2116
  .menu-item[data-highlighted],.menu-item:hover:not([data-disabled]) { background:var(--surface-3); outline:none; }
2085
- .menu-item[data-disabled] { opacity:.5; cursor:not-allowed; }
2117
+ .menu-item[data-disabled] { opacity:var(--opacity-disabled); cursor:not-allowed; }
2086
2118
  /* CommandPalette (M6): a lista dentro da paleta. Reusa `.menu` e `.menu-item` — a paleta nao
2087
2119
  inventa uma segunda pele de lista, que e o defeito que a `.table-region` cobrou caro. O que se
2088
2120
  acrescenta e o teto de altura (a lista rola, a caixa nao cresce sem fim) e a linha do item,
@@ -2161,7 +2193,7 @@ img,svg { display:block; }
2161
2193
  .combobox-multi>.combobox-actions { position:static; inset-inline-end:auto; }
2162
2194
  /* o campo de chips não é `.input`, então a regra de :disabled dos campos não o alcança. Quem
2163
2195
  marca aqui é o `data-disabled` que o Base UI põe no InputGroup a partir do estado da Root. */
2164
- .combobox-multi[data-disabled] { opacity:.5; cursor:not-allowed; }
2196
+ .combobox-multi[data-disabled] { opacity:var(--opacity-disabled); cursor:not-allowed; }
2165
2197
  .combobox-multi[data-disabled] .combobox-chip-input { cursor:not-allowed; }
2166
2198
  .combobox-chips { display:flex; flex:1; flex-wrap:wrap; align-items:center; gap:var(--space-2); min-width:0; }
2167
2199
  .combobox-chip { display:inline-flex; align-items:center; gap:var(--space-1); padding-block:var(--space-1); padding-inline:var(--space-3) var(--space-1); background:var(--secondary); color:var(--foreground); border-radius:var(--radius-control); font-size:var(--text-sm); }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aurea-uds/core",
3
- "version": "0.8.13",
3
+ "version": "0.9.0",
4
4
  "description": "The Aurea UDS stylesheet and its vanilla behaviour. Import @aurea-uds/fonts/css before this.",
5
5
  "keywords": [
6
6
  "aurea",