react-lgpd-consent 0.3.3 → 0.3.5
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/CHANGELOG.md +66 -3
- package/LICENSE +21 -21
- package/QUICKSTART.en.md +245 -0
- package/QUICKSTART.md +617 -0
- package/README.en.md +86 -0
- package/README.md +46 -81
- package/dist/{PreferencesModal-HTTMUZND.js → PreferencesModal-KAZMVPBD.js} +1 -1
- package/dist/{chunk-GPLNN3FD.js → chunk-MHCQFGRJ.js} +131 -218
- package/dist/index.cjs +226 -253
- package/dist/index.d.cts +36 -6
- package/dist/index.d.ts +36 -6
- package/dist/index.js +73 -2
- package/package.json +33 -17
package/README.md
CHANGED
|
@@ -4,42 +4,35 @@
|
|
|
4
4
|
|
|
5
5
|
<div>
|
|
6
6
|
<a href="https://www.npmjs.com/package/react-lgpd-consent"><img src="https://img.shields.io/npm/v/react-lgpd-consent?style=for-the-badge&logo=npm&color=cb3837&logoColor=white" alt="NPM Version"></a>
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
<a href="https://www.npmjs.com/package/react-lgpd-consent"><img src="https://img.shields.io/npm/dm/react-lgpd-consent?style=for-the-badge&logo=npm&color=ff6b35&logoColor=white" alt="Downloads"></a>
|
|
8
|
+
<a href="https://github.com/lucianoedipo/react-lgpd-consent/blob/main/LICENSE"><img src="https://img.shields.io/npm/l/react-lgpd-consent?style=for-the-badge&color=green&logoColor=white" alt="License"></a>
|
|
9
|
+
<a href="https://lucianoedipo.github.io/react-lgpd-consent/storybook/"><img src="https://img.shields.io/badge/Storybook-Playground-ff4785?style=for-the-badge&logo=storybook&logoColor=white" alt="Storybook"></a>
|
|
9
10
|
</div>
|
|
10
|
-
|
|
11
|
+
|
|
11
12
|
<div>
|
|
12
13
|
<a href="https://www.typescriptlang.org/"><img src="https://img.shields.io/badge/TypeScript-Ready-3178c6?style=for-the-badge&logo=typescript&logoColor=white" alt="TypeScript Ready"></a>
|
|
13
14
|
<a href="https://reactjs.org/"><img src="https://img.shields.io/badge/React-18+-61dafb?style=for-the-badge&logo=react&logoColor=white" alt="React 18+"></a>
|
|
14
15
|
<a href="https://nextjs.org/"><img src="https://img.shields.io/badge/Next.js-Compatible-000000?style=for-the-badge&logo=next.js&logoColor=white" alt="Next.js Compatible"></a>
|
|
15
16
|
</div>
|
|
16
17
|
|
|
17
|
-
<br
|
|
18
|
+
<br />
|
|
18
19
|
|
|
19
20
|
<p>
|
|
20
21
|
<a href="#-instalação"><strong>Instalação</strong></a> •
|
|
21
22
|
<a href="#-uso-básico"><strong>Uso Básico</strong></a> •
|
|
22
|
-
|
|
23
|
+
<a href="./QUICKSTART.md"><strong>📚 Guia de Início Rápido</strong></a> •
|
|
24
|
+
<a href="#-documentação-completa"><strong>Documentação</strong></a> •
|
|
25
|
+
<a href="./README.en.md">🇺🇸 🇬🇧 English</a> •
|
|
23
26
|
<a href="#-como-contribuir"><strong>Contribuir</strong></a>
|
|
24
27
|
</p>
|
|
25
|
-
</div>
|
|
26
|
-
|
|
27
|
-
---
|
|
28
|
-
|
|
29
|
-
## 🎯 Por que usar `react-lgpd-consent`?
|
|
30
28
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
29
|
+
<!-- Quickstart callout (mantido) -->
|
|
30
|
+
<p align="center">
|
|
31
|
+
<a href="./QUICKSTART.md"><img src="https://img.shields.io/badge/Quickstart-Iniciar%20R%C3%A1pido-blue?style=for-the-badge&logo=book" alt="Quickstart"></a>
|
|
32
|
+
</p>
|
|
34
33
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
| 🇧🇷 **Foco na LGPD** | Implementação baseada nas diretrizes da ANPD, com textos e categorias alinhados à lei brasileira. |
|
|
38
|
-
| 🎨 **UI Automática e Customizável** | Componentes de UI (Banner e Modal) prontos para uso, baseados em Material-UI, e totalmente substituíveis. |
|
|
39
|
-
| ⚙️ **Configuração Consciente** | A prop `categories` força a declaração explícita dos cookies utilizados, seguindo o princípio da minimização. |
|
|
40
|
-
| 🧠 **Guia para Desenvolvedores** | Sistema que exibe avisos e sugestões no console (em ambiente de dev) para garantir a correta implementação. |
|
|
41
|
-
| 🚀 **Integrações Nativas** | Carregamento automático de scripts como Google Analytics e GTM, condicionado ao consentimento do usuário. |
|
|
42
|
-
| 🔒 **Auditoria e Transparência** | O cookie de consentimento armazena metadados como data, origem e versão para fins de auditoria. |
|
|
34
|
+
<p align="center"><strong>Comece por aqui:</strong> siga o <a href="./QUICKSTART.md">Guia de Início Rápido (QUICKSTART.md)</a> para um tutorial passo-a-passo, exemplos TypeScript, tabela de props e integração com MUI — recomendado para usuários novos.</p>
|
|
35
|
+
</div>
|
|
43
36
|
|
|
44
37
|
---
|
|
45
38
|
|
|
@@ -49,98 +42,70 @@ Esta biblioteca oferece uma solução robusta e flexível para gerenciar o conse
|
|
|
49
42
|
npm install react-lgpd-consent @mui/material @emotion/react @emotion/styled js-cookie
|
|
50
43
|
```
|
|
51
44
|
|
|
52
|
-
**Dependências
|
|
53
|
-
|
|
54
|
-
A biblioteca requer `react`, `react-dom`, `@mui/material` e `js-cookie` como dependências peer.
|
|
45
|
+
**Dependências peer:** `react`, `react-dom`, `@mui/material` e `js-cookie`.
|
|
55
46
|
|
|
56
47
|
---
|
|
57
48
|
|
|
58
49
|
## 📖 Uso Básico
|
|
59
50
|
|
|
60
|
-
Envolva sua aplicação com o `ConsentProvider`
|
|
51
|
+
Envolva sua aplicação com o `ConsentProvider` (exemplo mínimo):
|
|
61
52
|
|
|
62
53
|
```tsx
|
|
63
|
-
|
|
64
|
-
import { ConsentProvider } from 'react-lgpd-consent';
|
|
54
|
+
import { ConsentProvider } from 'react-lgpd-consent'
|
|
65
55
|
|
|
66
|
-
function App() {
|
|
56
|
+
export default function App() {
|
|
67
57
|
return (
|
|
68
|
-
<ConsentProvider
|
|
69
|
-
|
|
70
|
-
// É obrigatório especificar as categorias que seu site usa.
|
|
71
|
-
// A categoria 'necessary' é sempre incluída.
|
|
72
|
-
enabledCategories: ['analytics', 'marketing'],
|
|
73
|
-
}}
|
|
74
|
-
>
|
|
75
|
-
{/* O banner e o botão de preferências aparecerão automaticamente */}
|
|
76
|
-
<SuaAplicacao />
|
|
58
|
+
<ConsentProvider categories={{ enabledCategories: ['analytics'] }}>
|
|
59
|
+
<YourApp />
|
|
77
60
|
</ConsentProvider>
|
|
78
|
-
)
|
|
61
|
+
)
|
|
79
62
|
}
|
|
80
63
|
```
|
|
81
64
|
|
|
82
|
-
|
|
65
|
+
## Nota sobre ThemeProvider e tema padrão
|
|
66
|
+
|
|
67
|
+
A biblioteca não cria um `ThemeProvider` global automaticamente. Ela tenta herdar o tema do seu app quando você já possui um `ThemeProvider` do MUI. Se você quiser aplicar explicitamente um tema de fallback para os componentes de consentimento, use a fábrica exportada `createDefaultConsentTheme()` e passe via prop `theme`:
|
|
83
68
|
|
|
84
69
|
```tsx
|
|
85
|
-
import {
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
measurementId: 'G-XXXXXXXXXX', // Substitua pelo seu ID
|
|
95
|
-
}),
|
|
96
|
-
];
|
|
97
|
-
|
|
98
|
-
function App() {
|
|
99
|
-
return (
|
|
100
|
-
<ConsentProvider
|
|
101
|
-
categories={{ enabledCategories: ['analytics'] }}
|
|
102
|
-
texts={{
|
|
103
|
-
bannerMessage: 'Nós usamos cookies para analisar o tráfego e melhorar a sua experiência.',
|
|
104
|
-
acceptAll: 'Aceitar',
|
|
105
|
-
declineAll: 'Recusar',
|
|
106
|
-
// Para conformidade com a ANPD, preencha os campos abaixo
|
|
107
|
-
controllerInfo: 'Controlado por: Sua Empresa LTDA (CNPJ: XX.XXX.XXX/XXXX-XX)',
|
|
108
|
-
contactInfo: 'Contato do DPO: dpo@suaempresa.com',
|
|
109
|
-
}}
|
|
110
|
-
onConsentGiven={(state) => {
|
|
111
|
-
console.log('O usuário deu o primeiro consentimento!', state.preferences);
|
|
112
|
-
}}
|
|
113
|
-
>
|
|
114
|
-
{/* 2. Adicione o loader de scripts para carregá-los após o consentimento */}
|
|
115
|
-
<ConsentScriptLoader integrations={integrations} />
|
|
116
|
-
|
|
117
|
-
<SuaAplicacao />
|
|
118
|
-
</ConsentProvider>
|
|
119
|
-
);
|
|
120
|
-
}
|
|
70
|
+
import { ConsentProvider, createDefaultConsentTheme } from 'react-lgpd-consent'
|
|
71
|
+
|
|
72
|
+
// Aplica um tema de fallback somente para os componentes da lib
|
|
73
|
+
;<ConsentProvider
|
|
74
|
+
theme={createDefaultConsentTheme()}
|
|
75
|
+
categories={{ enabledCategories: ['analytics'] }}
|
|
76
|
+
>
|
|
77
|
+
<App />
|
|
78
|
+
</ConsentProvider>
|
|
121
79
|
```
|
|
122
80
|
|
|
123
|
-
|
|
81
|
+
Evite depender de criação de tema no import (isso evita side-effects e problemas em SSR). Se você precisar de compatibilidade retroativa com quem importava `defaultConsentTheme`, entre em contato para adicionarmos um export compatível com deprecação documentada.
|
|
124
82
|
|
|
125
83
|
## 📚 Documentação Completa
|
|
126
84
|
|
|
127
85
|
Para mais detalhes sobre customização, hooks e funcionalidades, consulte os seguintes guias:
|
|
128
86
|
|
|
87
|
+
### 📋 Documentação Principal
|
|
88
|
+
|
|
89
|
+
- **[📚 Guia de Início Rápido (`QUICKSTART.md`)](./QUICKSTART.md)**: Tutorial passo a passo com exemplos práticos, tabela completa de props, debugging e integrações.
|
|
129
90
|
- **[Guia da API (`API.md`)](./API.md)**: Referência completa de todos os componentes, hooks e tipos.
|
|
130
91
|
- **[Guia de Conformidade (`CONFORMIDADE.md`)](./CONFORMIDADE.md)**: Detalhes sobre as funcionalidades de conformidade com a LGPD.
|
|
131
92
|
- **[Guia de Integrações (`INTEGRACOES.md`)](./INTEGRACOES.md)**: Como usar as integrações nativas e criar as suas.
|
|
132
93
|
|
|
94
|
+
### 🎨 Documentação Interativa (GitHub Pages)
|
|
95
|
+
|
|
96
|
+
- **[📖 Storybook - Playground Interativo](https://lucianoedipo.github.io/react-lgpd-consent/storybook/)**: Explore e teste todos os componentes em tempo real com controles interativos.
|
|
97
|
+
- **[⚙️ TypeDoc - Referência de API](https://lucianoedipo.github.io/react-lgpd-consent/docs/)**: Documentação completa da API gerada automaticamente.
|
|
98
|
+
- **[🏠 Portal de Documentação](https://lucianoedipo.github.io/react-lgpd-consent/)**: Página inicial com navegação entre todas as documentações.
|
|
99
|
+
|
|
133
100
|
---
|
|
134
101
|
|
|
135
102
|
## 🤝 Como Contribuir
|
|
136
103
|
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
1. **Reporte Bugs ou Sugira Melhorias**: Abra uma [Issue no GitHub](https://github.com/lucianoedipo/react-lgpd-consent/issues).
|
|
140
|
-
2. **Envie um Pull Request**: Siga as instruções no nosso [Guia de Desenvolvimento (`DEVELOPMENT.md`)](./DEVELOPMENT.md).
|
|
104
|
+
1. Abra uma [Issue](https://github.com/lucianoedipo/react-lgpd-consent/issues) para bugs ou melhorias.
|
|
105
|
+
2. Siga o Guia de Desenvolvimento em `DEVELOPMENT.md` para enviar um PR.
|
|
141
106
|
|
|
142
107
|
---
|
|
143
108
|
|
|
144
109
|
## 📄 Licença
|
|
145
110
|
|
|
146
|
-
|
|
111
|
+
MIT — veja o arquivo `LICENSE`.
|