Biblioteca
Changelog
Biblioteca interna em evolução. O pacote @voxmente/ui não é publicado em nenhum registry: quem consome está dentro deste monorepo, e o identificador de uma mudança é o commit.
Convenção de versão
Biblioteca interna em evolução. `@voxmente/ui` é consumido por workspace (`"@voxmente/ui": "*"`) e não é publicado em nenhum registry.
- O identificador de uma mudança é o commit, não um número de versão: dentro do monorepo, site e pacote sobem juntos.
- Enquanto o pacote não for publicado, a versão declarada em package.json não é promessa de compatibilidade e não deve ser usada como tal.
- Toda mudança com impacto `api` ou `migracao` entra neste changelog com a instrução de migração junto. Sem instrução, a mudança não está pronta.
- Uma decisão de arquitetura que sustenta a mudança mora no ADR; o changelog aponta para ele em vez de repetir o raciocínio.
Decisão humana pendente. Adotar SemVer formal e publicar o pacote é uma escolha de produto, não de implementação: muda quem pode consumir, com que garantia e sob qual custo de manutenção de faixa. Fica registrado como decisão humana pendente.
Classificação de impacto
- visualMuda o que se vê sem mudar o que se chama.
- APIMuda assinatura, nome de prop ou subpath de import.
- acessibilidadeMuda papel, nome acessível ou ordem de foco.
- migraçãoExige trabalho de quem já consome a biblioteca.
Mudanças
- 2026-09-01cee3b90
- API
- migração
- visual
Escala de tamanho vira md, e as fontes passam a ser do pacote
Auditoria contra o registry base-nova fechou três lacunas. A escala de tamanho deixa de ter `default` como degrau: agora é `xs | sm | md | lg`, e `icon-xs | icon-sm | icon-md | icon-lg` nas quadradas — `default` era posição na lista, não medida, e mentia assim que alguém trocasse o padrão. As famílias tipográficas (Geist, Inter, Geist Mono) passam a ser definidas por `theme.css` com fallback completo, em vez de dependerem do layout do app. E a navegação do storybook, que continua sem importar a biblioteca de propósito, passa a obedecer aos tokens `--sidebar-*` em vez de inventar a própria aparência.
Migração: Troque `size="default"` por `size="md"` e `size="icon"` por `size="icon-md"`. Atinge Button, Toggle, ToggleGroup, Item, Logo, Avatar, Card, Select, NativeSelect, Switch, AlertDialogContent, SidebarMenuButton, UserCell e PaginationLink. Quem apenas omite `size` não precisa fazer nada. Apps que carregam fonte por `next/font` devem renomear as variáveis para `--font-sans-loaded`, `--font-heading-loaded` e `--font-mono-loaded`.
decisão: docs/adr/0011-divergencias-deliberadas-do-registry-shadcn.md
- 2026-08-3078d951c
- visual
Biblioteca como fonte da verdade operacional
Status deixa de ser adjetivo digitado e passa a ser derivado de evidência: página escrita, playground, API extraída, contrato editorial e varredura de acessibilidade. O overview ganha taxonomia explícita, rotas por intenção e painel de saúde. As páginas ganham um contrato editorial central.
- 2026-08-300bd486b
- visual
Seis componentes de IA e painel, variante sensitive
AI Suggestion, Chat Panel, Copilot Dock, Draft Status, Filter Panel e Indicator Rating entram na biblioteca. Entram como beta: são superfícies novas, e a validação ainda não cobre o comportamento delas.
- 2026-08-3097d9164
- visual
Cabeçalho único do site
A home e a biblioteca tinham navegações diferentes no mesmo produto. Passa a existir um cabeçalho só, com busca e alternância de tema.
- 2026-08-30a88b2b0
- visual
Anatomia derivada das próprias demonstrações
A árvore de partes de cada componente composto passa a ser extraída das demonstrações da página, então descreve um exemplo que de fato renderiza — e revela as partes exportadas que nenhuma demonstração usa.
- 2026-08-30702a97a
- visual
Sidebar documentado por inteiro
A página cobria só o item de menu. Passa a cobrir provider, grupos, estado recolhido e comportamento em celular — que é o que a casca de tela realmente usa.
- 2026-08-30a747c4b
- acessibilidade
Sensor de acessibilidade com interação
A varredura passa a interagir com a página antes de medir. Foi a interação que revelou os defeitos que tsc, lint e build não pegam — contexto de menu ausente e prop não controlada mudando depois da montagem.
- 2026-08-302a61d72
- API
TypeScript como fonte de verdade da API
A tabela de props deixa de ser escrita e passa a ser extraída do TypeScript do pacote a cada build. Se a documentação divergir do código, é porque o código mudou.
decisão: docs/adr/0008-typescript-como-fonte-de-verdade-da-api-documentada.md
- 2026-08-3004b0987
- visual
PageHeader quebra linha em telas estreitas
Título e ações se empilhavam mal abaixo de 400 px, e o cabeçalho estourava a largura da tela.
- 2026-08-28625bb4f
- visual
Camada de tela e expansão para 53 componentes
Entra a camada que o shadcn não cobre: casca de tela, cabeçalho de página, estados de tela, sem permissão, cartão de métrica, célula de pessoa.
decisão: docs/adr/0007-expansao-do-design-system-para-53-componentes.md
- 2026-08-2755423b0
- API
- migração
Design system extraído para @voxmente/ui
Os componentes saem do site e viram pacote do monorepo, importado por subpath exato. Não existe barrel file: cada componente é um módulo.
Migração: Importe por subpath — `@voxmente/ui/components/ui/<slug>` — em vez de caminho relativo dentro do site.
decisão: docs/adr/0006-pacote-de-design-system-compartilhado-voxmente-ui.md
Decisões de arquitetura registradas
Lidas de docs/adr a cada geração. O ADR é a fonte da verdade de uma decisão; esta lista é só um índice.
- 0001 ADR-0001: Local canônico de ADRs e inicialização de controle de versão
- 0002 ADR-0002: Fixar Compozy CLI legado em v0.2.15
- 0003 ADR-0003: Stack do site institucional — Next.js + shadcn/ui, mesmo repositório
- 0004 ADR-0004: Fronteira entre os repositórios VoxMente e Product
- 0005 ADR-0005: Adoção de monorepo — reversão do ADR-0004
- 0006 ADR-0006: Pacote de design system compartilhado (`@voxmente/ui`)
- 0007 ADR-0007: Expansão do design system para 53 componentes shadcn/ui
- 0008 ADR-0008: TypeScript como fonte de verdade da API documentada
- 0009 ADR-0009: Fonte de verdade do escopo contratado
- 0010 ADR-0010: Backoffice como rotas dentro do site, não app separado
- 0011 ADR-0011: Divergências deliberadas do registry shadcn
- 0012 ADR-0012: A moldura do storybook não importa a biblioteca
- 0013 ADR-0013: Instalação dos 68 exemplos de gráfico do registry shadcn
- 0014 ADR-0014: Identidade global da pessoa, autorização por vínculo concreto
- 0015 ADR-0015: Abandono do `.pen` como ferramenta de design do produto
- 0016 ADR-0016: O canvas de sitemap é derivado dos `.md` de escopo
- 0017 ADR-0017 — Sensores de execução e geração de tela a partir do escopo
- 0018 ADR-0018 — Compozy como orquestrador de sensores (proposta, não adotado)
- 0019 ADR-0019 — A régua de largura é da área, não da tela
Geração: commit indisponível · @voxmente/ui 0.0.0 (não publicado)