@anpdgovbr/shared-ui
Version:
Biblioteca de componentes React com MUI v7 e padrão GovBR-ds para ANPD
236 lines (165 loc) • 10.5 kB
Markdown
# 📊 CHANGELOG
Todas as mudanças notáveis neste projeto serão documentadas neste arquivo.
O formato é baseado em [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
e este projeto adere ao [Versionamento Semântico](https://semver.org/spec/v2.0.0.html).
## [0.3.12-beta.0] - 2025-11-02
### 🚀 Adicionado
- Publicação oficial do componente `Homepage` na linha beta.
### 🔧 Ajustado
- `Homepage`: ajustes de tipagem (`mergeSx`, `resolveBorderRadius`) garantindo compatibilidade com temas dinâmicos.
- README atualizado com versão mínima recomendada (`>=0.3.12-beta.0`).
## [0.3.11-beta.1] - 2025-11-02
### 🚀 Adicionado
- **Homepage**: layout completo de landing page com hero, métricas, destaque e rodapé componíveis.
- Subcomponentes exportados para uso isolado (`HomepageHero`, `HomepageMetricsGrid`, etc).
- Cobertura de testes garantindo renderização e ações básicas.
### 🔧 Modificado
- Documentação atualizada apontando uso do componente e ações com `GovBRButton`.
---
## [0.3.11-beta.0] - 2025-11-01
### 🐛 Corrigido
- **Problema Crítico de Exports**: Corrigido problema que impedia importação de componentes em projetos TypeScript (#109)
- Criado arquivo `types/index.d.ts` que re-exporta todos os tipos de `types/src/index.d.ts`
- Componentes agora são corretamente importáveis: `import { GovBRLoading, GovBRCheckbox } from '@anpdgovbr/shared-ui'`
- Resolvida incompatibilidade entre campo `types` e `exports['.'].types` do package.json
### 🔧 Modificado
- **Build de tipos**: Script `build:types` agora executa `create-types-index.cjs` automaticamente
- **Package.json**: Atualizada configuração de build para incluir geração automática de arquivo de re-export de tipos
### 🚀 Adicionado
- **Script de validação**: `validate:exports` para verificar integridade dos exports
- Valida 18 componentes principais
- Valida 18 interfaces de tipos correspondentes
- Valida helpers e temas exportados
- Verifica configuração do package.json
- **Testes**: Adicionados testes unitários para componentes que faltavam:
- `GovBRDateTimePicker`: Testes de renderização, disabled, required, formatos
- `GovBRDivider`: Testes de orientação, tamanhos, modo estrito
- `GovBRItem`: Testes de estados, divider, modo estrito
- `GovBRTabs`: Testes de variants, ícones, contadores, modo estrito
- **Documentação**:
- `CORRECAO_EXPORTS.md`: Documentação completa da correção do problema de exports
- `ISSUE-SHARED-UI-EXPORTS.md`: Análise técnica detalhada do problema e solução aplicada
- Scripts de automação documentados
### 📦 Scripts Novos
- `scripts/create-types-index.cjs`: Gera automaticamente arquivo `types/index.d.ts`
- `scripts/validate-exports.cjs`: Valida integridade de todos os exports da biblioteca
---
## [0.3.7-beta.1] - 2025-10-13
### 🐛 Corrigido
- **Script preinstall**: Removido script que causava erro MODULE_NOT_FOUND em projetos consumidores
- **Arquivos de publicação**: Criado `.npmignore` para garantir que apenas arquivos necessários sejam publicados
---
## [0.3.7-beta.0] - 2025-10-13
### 🚀 Adicionado
- **Novos Componentes UI**:
- `GovBRDateTimePicker`: Componente para seleção de data e hora integrado com MUI X Date Pickers
- `GovBRDivider`: Componente de divisor visual seguindo padrões Gov.br DS
- `GovBRTabs`: Componente de abas/tabs com suporte aos dois modos (padrão e estrito)
- `GovBRItem`: Componente genérico para itens de lista e cards
- `GovBRLoading`: Componente de loading/carregamento com animações Gov.br DS
- **Dependências Atualizadas**:
- `@mui/x-date-pickers@^8.14.0`: Suporte para componentes de data/hora
- `dayjs@^1.11.18`: Biblioteca de manipulação de datas leve e moderna
- `@mui/utils@^7.3.3`: Utilitários MUI atualizados
### 🔧 Modificado
- **Exports**: Adicionados novos componentes ao sistema de exports centralizado
- **Stories**: Criadas documentações interativas completas para os novos componentes no Storybook
- **Tipos**: Interfaces TypeScript completas para todos os novos componentes
### � Documentação
- **Storybook**: Stories detalhadas para GovBRDateTimePicker, GovBRDivider, GovBRTabs, GovBRItem e GovBRLoading
- **Types**: Documentação inline dos tipos e props dos novos componentes
---
## [Não Lançado] - Em Desenvolvimento
### 🚀 Adicionado
- **Path Aliases Configurados**: Implementados aliases `@components`, `@theme`, `@helpers`, `@govbr-types` para imports limpos
- **Sistema de Tipos Unificado**: Todos os componentes GovBR agora herdam `SharedUIComponentProps` automaticamente
- **Tree Shaking Otimizado**: Configuração ESLint personalizada para forçar imports específicos do MUI
- **Estrutura Kebab-case**: Componentes seguem padrão `src/components/ui/nome-componente/` inspirado no shadcn/ui
- **Documentação Completa**: Adicionados guias de desenvolvimento, migração e contribuição
- **GitHub Copilot Instructions**: Instruções personalizadas para desenvolvimento assistido por IA
- **Templates de Issues**: Adaptados para contexto de biblioteca UI com áreas específicas (Componentes UI, Tema/Estilos, Types/TypeScript)
- **Pasta Examples**: Organização centralizada de exemplos de uso com estrutura padronizada
- **ESLint Rule 'use client'**: Regra customizada que força todos os componentes UI a terem diretiva `'use client'` para compatibilidade Next.js
- **Suite de Testes Completa**: Implementados testes básicos para todos os 11 componentes usando Vitest + Testing Library
- **Husky v10+ Ready**: Configuração de git hooks atualizada para versões futuras do Husky
### 🔧 Corrigido
- **Husky Compatibility**: Removidas linhas depreciadas dos hooks pre-commit e pre-push
- **ESLint Custom Plugin**: Implementado plugin inline com análise AST para validação de diretivas
- **Test Environment**: Configurado jsdom com suporte completo a MUI e React Testing Library
### 🧪 Testes
- **40 testes implementados** cobrindo:
- GovBRButton (1 teste)
- GovBRInput (3 testes)
- GovBRCheckbox (3 testes)
- GovBRRadio (4 testes)
- GovBRAvatar (4 testes)
- GovBRBreadcrumb (4 testes)
- AutoSyncButton (4 testes)
- GovBRFormInput (4 testes)
- GovBRFormCheckbox (3 testes)
- GovBRSignIn (5 testes)
- GovBRSwitch (5 testes)
- **Template PR Atualizado**: Refletindo novos padrões kebab-case e checklist de qualidade
- **Testes Básicos**: Criados testes unitários básicos para todos os componentes com Vitest + Testing Library
### 🔧 Modificado
- **SharedUIComponentProps**: Adicionado utility type `GovBRComponentProps<T>` para melhor inferência de tipos
- **GovBRTypes.ts**: Corrigida inconsistência em `GovBRSemanticColor` (unificado uso de "error" vs "danger")
- **TSConfig**: Configuração atualizada para incluir stories no processo de compilação
- **Estrutura de Exports**: Reorganizada para melhor performance de bundle
- **README**: Reestruturado com seções organizadas e links entre documentos
- **CONTRIBUTING**: Atualizado com checklist detalhado e novos padrões
- **Templates GitHub**: Issues e PR adaptados para contexto de biblioteca UI
- **Organização de Arquivos**: Exemplos movidos para `/examples` com estrutura padronizada
- **ESLint Rule 'use client'**: Aprimorada regra customizada para verificar diretiva 'use client' em componentes UI
- **Husky Configuration**: Removidas linhas deprecadas para compatibilidade com Husky v10+
### 🐛 Corrigido
- **Path Aliases em Stories**: Corrigido problema onde aliases não funcionavam no Storybook
- **Lint Errors**: Resolvidas todas as 20 violações de tree shaking do ESLint
- **MUI Imports**: Convertidos todos os imports genéricos para imports específicos (ex: `@mui/material/Button`)
- **Icon References**: Padronizados sufixos de ícones (ex: `<Add/>` → `<AddIcon/>`)
### 📚 Documentação
- **[ADICIONAR_COMPONENTE.md](./docs/ADICIONAR_COMPONENTE.md)**: Guia completo para criação de componentes
- **[GUIA_MIGRACAO.md](./docs/GUIA_MIGRACAO.md)**: Documentação para migração de componentes
- **[GitHub Copilot Instructions](./.github/copilot/instructions.md)**: Padrões para IA
- **[Examples](./examples/)**: Pasta centralizada com exemplos práticos de uso
- **Templates GitHub**: Issues e PR templates adaptados para contexto de biblioteca
- **CHANGELOG**: Criado para documentar mudanças do projeto
- **Preparação TypeDocs**: Estrutura preparada para futura documentação automática
### ⚡ Performance
- **Bundle Size**: Reduzido através de tree shaking otimizado
- **Build Speed**: Melhorado com configuração de paths e exports otimizada
- **Development**: Path aliases aceleram desenvolvimento com imports mais limpos
---
## [0.2.0-alpha.1] - 2025-08-06
### 🚀 Adicionado
- Atualização das definições de tipos para melhor consistência
- Melhorias na consistência do código entre componentes
### 🔧 Modificado
- Refatoração dos tipos e definições para melhor manutenibilidade
---
## [0.1.x] - 2025-07-04 a 2025-08-06
### 🚀 Adicionado
- **Componentes Base**: GovBRButton, GovBRInput, GovBRAvatar, GovBRRadio, AutoSync
- **Storybook**: Configuração inicial com documentação interativa dos componentes
- **Estrutura do Projeto**: Configuração base com React 19+, MUI v7, TypeScript
- **Temas GovBR**: Implementação de temas baseados no Design System do Governo Federal
- **CI/CD**: GitHub Actions para build e validação automática
- **Testes**: Configuração inicial com Vitest
- **Linting**: ESLint e Prettier para qualidade de código
- **Git Hooks**: Husky para validação pre-commit e pre-push
### 🔧 Modificado
- **Package Name**: Atualizado para `@anpdgovbr/shared-ui`
- **Configuração Storybook**: Melhorias na estrutura e consistência das stories
- **Formatação**: Aplicação consistente do Prettier em todo o código
### 📚 Documentação
- **README**: Documentação inicial do projeto
- **Storybook Stories**: Documentação interativa dos componentes
- **Assets SVG**: Adicionados assets visuais para buttons, headers e páginas
---
## 📝 Legenda
- 🚀 **Adicionado** para novas funcionalidades
- 🔧 **Modificado** para mudanças em funcionalidades existentes
- 🐛 **Corrigido** para correção de bugs
- 📚 **Documentação** para mudanças na documentação
- ⚡ **Performance** para melhorias de performance
- 🔒 **Segurança** para correções relacionadas à segurança