@aurea-uds/core 0.18.0 → 0.19.1

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 +59 -6
  2. package/package.json +1 -1
package/dist/aurea.css CHANGED
@@ -2027,6 +2027,40 @@ img,svg { display:block; }
2027
2027
  /* Chat React (Fase 5.4): estrutura fixa em classe, não inline (auditoria 18/07, M14). */
2028
2028
  .message-status { display:flex; align-items:center; flex-wrap:wrap; gap:var(--space-3); margin-block-start:var(--space-2); }
2029
2029
  .message-composer { display:flex; align-items:center; gap:var(--space-3); flex-wrap:nowrap; } .message-composer .input-group { flex:1; min-width:0; }
2030
+ /* AN-03 (Lote H, 04/10/2026). A FAIXA ACIMA DO CAMPO é o adorno em bloco da casa, empilhado: a
2031
+ citação (responder ou editar) em cima, os anexos embaixo. Com ela o grupo vira superfície (raio
2032
+ de cartão, a regra do adorno em bloco) e o botão de enviar desce para a linha do campo, onde
2033
+ está o texto — sem faixa, nada muda.
2034
+ A CITAÇÃO é a da prosa: o fio no começo da linha, apagado, com o recuo de dentro. O fio tem a
2035
+ espessura do `blockquote` da `.prose` (2), escrita a partir do `--border-width`. O título leva o
2036
+ peso médio, e o corpo fica numa linha só, com reticências. Ela serve também ao cabeçalho de
2037
+ resposta do `MessageList` (AN-02). */
2038
+ .message-composer:has(.message-composer-context) { align-items:flex-end; }
2039
+ .message-composer-context { flex-direction:column; align-items:stretch; gap:var(--space-2); color:var(--foreground); }
2040
+ .message-composer-context > .file-list { margin:0; }
2041
+ .message-quote { display:flex; align-items:center; gap:var(--space-2); padding-inline-start:var(--space-3); border-inline-start:calc(var(--border-width) * 2) solid var(--border-strong); color:var(--muted-foreground); font-size:var(--text-sm); }
2042
+ .message-quote > .icon { flex:none; }
2043
+ .message-quote-text { display:grid; flex:1; min-inline-size:0; }
2044
+ .message-quote-title { color:var(--foreground); font-weight:var(--weight-medium); }
2045
+ .message-quote-body { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
2046
+ /* AN-02 (Lote H, 04/10/2026). O LADO DA MENSAGEM. Quem declara `direction` ganha a bolha do
2047
+ tamanho do texto e uma folga do lado oposto igual ao avatar mais o vão (`--control-h-md` +
2048
+ `--space-3`): a conversa fica em duas margens, como em todo app de mensagem. Quem não declara
2049
+ continua como antes, com a bolha na largura toda.
2050
+ A MINHA vai para o fim, sem avatar, com o canto pequeno (`--radius-xs`, os mesmos 6 da bolha de
2051
+ sempre) do lado dela, e o fundo tingido da marca — o mesmo tom do nó escolhido do `TreeView`, que
2052
+ já é a forma desta folha de dizer "é seu" sem o amarelo cheio. Os cantos são lógicos: viram
2053
+ sozinhos na escrita da direita para a esquerda.
2054
+ O ÁLBUM é a `Gallery`, e a medida dela: no máximo duas miniaturas por linha (`--gallery-min` ×2
2055
+ mais o vão), e `auto-fit` para uma foto só ocupar a largura. */
2056
+ .message-in { padding-inline-end:calc(var(--control-h-md) + var(--space-3)); }
2057
+ .message-out { grid-template-columns:minmax(0,1fr); padding-inline-start:calc(var(--control-h-md) + var(--space-3)); }
2058
+ .message-in > .message-bubble { justify-self:start; border-radius:var(--radius-lg); border-start-start-radius:var(--radius-xs); }
2059
+ .message-out > .message-bubble { justify-self:end; border-radius:var(--radius-lg); border-start-end-radius:var(--radius-xs); background:color-mix(in srgb,var(--primary) 14%,transparent); }
2060
+ .message-day { display:flex; justify-content:center; }
2061
+ .message-forwarded { display:flex; align-items:center; gap:var(--space-1); color:var(--muted-foreground); font-size:var(--text-sm); }
2062
+ .message-bubble > .message-forwarded, .message-bubble > .message-quote, .message-bubble > .message-album, .message-bubble > .file-list { margin-block:0 var(--space-2); }
2063
+ .message-album { inline-size:min(100%, calc(var(--gallery-min,8rem) * 2 + var(--space-3))); grid-template-columns:repeat(auto-fit,minmax(var(--gallery-min,8rem),1fr)); }
2030
2064
 
2031
2065
  /* ========================================================================== */
2032
2066
  /* 07. MÍDIA */
@@ -2133,6 +2167,17 @@ img,svg { display:block; }
2133
2167
  qualquer forma — ele é `buttonface`, não transparente. */
2134
2168
  .gallery-tile:not(.is-selected) { background:transparent; color:var(--muted-foreground); }
2135
2169
  .gallery-caption { font-size:var(--text-sm); }
2170
+ /* AN-05 (Lote H, 04/10/2026). O VÍDEO não inventa peça: é o `Badge` da casa, pousado no canto do
2171
+ fim da foto, com as cores do reprodutor: o véu (`--media-scrim`, preto a 82%) e a letra dele
2172
+ (`--media-foreground`). O `--media-track` que o `.media-player` dá ao `Badge` é branco a 18% e só
2173
+ funciona sobre o véu: sobre foto clara, o tempo sumia (visto no banco em 04/10/2026). O canto é lógico (`inset-inline-end`), então vira sozinho na escrita da
2174
+ direita para a esquerda; o recuo do canto é `--space-2`.
2175
+ A LINHA DE "CARREGANDO MAIS" tem a medida do `Table.LoadMore` do HeroUI (`py-3`, centrada): é
2176
+ ela que o observador vigia, então existe também parada, sem a rodinha. A do `MessageList` (AN-02),
2177
+ nas duas pontas da conversa, é a mesma linha. */
2178
+ .gallery-media { position:relative; display:block; }
2179
+ .gallery-media > .gallery-duration { position:absolute; inset-block-end:var(--space-2); inset-inline-end:var(--space-2); border-color:var(--media-scrim); background:var(--media-scrim); color:var(--media-foreground); }
2180
+ .gallery-more,.message-more { display:flex; align-items:center; justify-content:center; min-block-size:var(--icon-sm); padding-block:var(--space-3); color:var(--muted-foreground); }
2136
2181
 
2137
2182
  /* TIPOGRAFIA (B-02, 25/09/2026) — `Text`, `Heading`, `Paragraph` e `Code`, no molde do HeroUI
2138
2183
  3.2.6 (`typography.css`), por ordem do Victor: HeroUI sempre primeiro. O que vem dele é a FORMA:
@@ -2520,22 +2565,30 @@ img,svg { display:block; }
2520
2565
  /* TreeView (Fase 4) — árvore headless própria (Base UI 1.6 não tem tree).
2521
2566
  role=tree/treeitem/group + roving tabindex vêm do React; aqui só a pele.
2522
2567
  A indentação por nível é padding-inline-start inline (style). Espaço novo
2523
- tokenizado; a linha não é pill (radius-sm, como o .menu-item). */
2568
+ tokenizado. A linha é CÁPSULA (`--radius-control`): o escolhido e o realce de passar o mouse
2569
+ são cápsula, como os campos, as abas e os botões de texto — regra do Victor, dita olhando a
2570
+ bancada do Lote H em 04/10/2026. Antes era `--radius-sm` (8). O texto do nó é uma linha só
2571
+ (`.tree-label` não quebra), então a cápsula não deforma. */
2524
2572
  .tree, .tree-group { margin:0; padding:0; list-style:none; }
2525
2573
  .tree-item { outline:none; }
2526
- .tree-node { display:flex; align-items:center; gap:var(--space-2); min-height:var(--control-h-md); padding-block:var(--space-1); padding-inline-end:var(--space-3); border-radius:var(--radius-sm); color:var(--foreground); cursor:pointer; user-select:none; }
2574
+ .tree-node { display:flex; align-items:center; gap:var(--space-2); min-height:var(--control-h-md); padding-block:var(--space-1); padding-inline-end:var(--space-3); border-radius:var(--radius-control); color:var(--foreground); cursor:pointer; user-select:none; }
2527
2575
  .tree-node:hover { background:var(--surface-3); }
2528
2576
  .tree-item:focus-visible > .tree-node { outline:var(--focus-width) solid var(--focus-strong); outline-offset:calc(-1 * var(--focus-width)); }
2529
2577
  .tree-node[data-selected] { background:color-mix(in srgb,var(--primary) 14%,transparent); }
2530
- .tree-twist { flex:none; color:var(--muted-foreground); transition:transform var(--duration-fast); }
2531
- .tree-item[aria-expanded="true"] > .tree-node > .tree-twist { transform:rotate(90deg); }
2532
- .tree-item[aria-expanded="false"]:dir(rtl) > .tree-node > .tree-twist { transform:rotate(180deg); }
2578
+ /* A seta gira pela propriedade `rotate`, e não por `transform`: assim a rodinha que ocupa o lugar
2579
+ dela enquanto o nó carrega (AN-06) continua girando pela animação dela, que é `transform`.
2580
+ Na escrita da direita para a esquerda a seta fechada aponta para a esquerda. Quem diz a direção é
2581
+ o React, pela direção do provedor (`.tree-twist-rtl`), e não `:dir(rtl)` — o empacotador do app
2582
+ reescreve `:dir()` como lista de idiomas e a regra deixa de pegar (medido no Vite, 03/10/2026). */
2583
+ .tree-twist { flex:none; color:var(--muted-foreground); transition:rotate var(--duration-fast); }
2584
+ .tree-twist-rtl { rotate:180deg; }
2585
+ .tree-item[aria-expanded="true"] > .tree-node > .tree-twist { rotate:90deg; }
2533
2586
  .tree-indent { flex:none; width:1rem; }
2534
2587
  .tree-label { flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
2535
2588
 
2536
2589
  /* NotificationCenter (Fase 4) — compõe o .popover; aqui só o gatilho com count,
2537
2590
  o cabeçalho e as linhas do feed. Espaço novo tokenizado; a linha usa radius-sm
2538
- (não é pill, como o .menu-item/.tree-node). O painel NÃO é live region — a
2591
+ (não é pill, como o .menu-item; o .tree-node virou cápsula em 04/10/2026). O painel NÃO é live region — a
2539
2592
  chegada é anunciada por um role=status à parte no React. */
2540
2593
  .notification-trigger { position:relative; display:inline-flex; }
2541
2594
  .notification-count { position:absolute; inset-block-start:-4px; inset-inline-end:-4px; display:inline-flex; align-items:center; justify-content:center; min-width:18px; height:18px; padding:0 var(--space-1); border-radius:var(--radius-control); background:var(--primary); color:var(--primary-foreground); font-size:var(--text-xs); font-weight:var(--weight-semibold); line-height:var(--leading-none); pointer-events:none; }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aurea-uds/core",
3
- "version": "0.18.0",
3
+ "version": "0.19.1",
4
4
  "description": "O CSS da Aurea UDS e o comportamento em JavaScript puro. Importe @aurea-uds/fonts/css antes deste.",
5
5
  "keywords": [
6
6
  "aurea",