react-lgpd-consent 0.5.2 → 0.5.3

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 CHANGED
@@ -2,7 +2,147 @@
2
2
 
3
3
  Todas as mudanças notáveis neste projeto serão documentadas neste arquivo.
4
4
 
5
- O formato é baseado em [Keep a Changelog](https://keepachangelog.com/pt-BR/1.0.0/), e este projeto segue [Semantic Versioning](https://semver.org/lang/pt-BR/).
5
+ # Changelog
6
+
7
+ Todas as mudanças notáveis neste projeto serão documentadas neste arquivo.
8
+
9
+ O formato é baseado em [Keep a Changelog](https://keepachangelog.com/pt-BR/1.0.0/),
10
+ e este projeto adere ao [Semantic Versioning](https://semver.org/lang/pt-BR/).
11
+
12
+ ## [0.5.0] - 2025-10-25
13
+
14
+ ### 🏗️ Arquitetura Modular - MAJOR REFACTOR
15
+
16
+ Esta versão introduz uma **arquitetura modular** que separa a lógica de consentimento (core) dos componentes UI (mui).
17
+
18
+ ### ✨ Added
19
+
20
+ - **Três pacotes independentes**:
21
+ - `@react-lgpd-consent/core` (86 KB ESM) - Lógica headless sem dependências de UI
22
+ - `@react-lgpd-consent/mui` (18 KB ESM) - Componentes UI completos usando Material-UI
23
+ - `react-lgpd-consent` (104 KB ESM) - Pacote agregador mantido para compatibilidade
24
+
25
+ - **Tree-shaking eficiente**: Instale apenas o que você precisa
26
+ - Core isolado permite uso com qualquer biblioteca de UI
27
+ - MUI opcional como peer dependency
28
+
29
+ - **Workspace PNPM**: Monorepo organizado com builds independentes
30
+ - **Guia de migração completo**: [MIGRATION.md](./MIGRATION.md) documentando todos os cenários
31
+ - **Scripts de publicação**: Suporte para publicar pacotes independentemente
32
+
33
+ ### ⚠️ Breaking Changes
34
+
35
+ - **Removida prop `theme` do `ConsentProvider`**
36
+ - **Antes**: `<ConsentProvider theme={createTheme({...})} />`
37
+ - **Depois**: Use `<ThemeProvider>` do Material-UI diretamente
38
+ - **Razão**: Separação de responsabilidades - tema do MUI gerenciado pelo MUI
39
+ - **Migração**: Ver [MIGRATION.md](./MIGRATION.md) seção "Breaking Changes"
40
+
41
+ ### 🔄 Changed
42
+
43
+ - Estrutura de pacotes reorganizada em monorepo
44
+ - Imports atualizados para usar workspace dependencies
45
+ - TypeScript paths configurados para resolução de módulos
46
+ - Jest configurado para resolver tsconfig corretamente
47
+ - Stories refatoradas para usar `ThemeProvider` explicitamente
48
+
49
+ ### 📦 Package Structure
50
+
51
+ ```
52
+ packages/
53
+ ├── core/ # @react-lgpd-consent/core
54
+ │ ├── src/
55
+ │ │ ├── context/ # ConsentProvider, CategoriesContext
56
+ │ │ ├── hooks/ # useConsent, useCategories
57
+ │ │ ├── utils/ # scriptIntegrations, logger
58
+ │ │ └── types/ # TypeScript definitions
59
+ │ └── package.json
60
+
61
+ ├── mui/ # @react-lgpd-consent/mui
62
+ │ ├── src/
63
+ │ │ ├── components/ # CookieBanner, PreferencesModal, etc.
64
+ │ │ └── index.ts # Re-exports core + UI components
65
+ │ └── package.json
66
+
67
+ └── react-lgpd-consent/ # Aggregator (compatibilidade)
68
+ └── package.json # Re-exports @react-lgpd-consent/mui
69
+ ```
70
+
71
+ ### 📊 Bundle Sizes
72
+
73
+ | Pacote | ESM | CJS | DTS | Dependências |
74
+ |--------|-----|-----|-----|--------------|
75
+ | `@react-lgpd-consent/core` | 86.04 KB | 89.12 KB | 125.82 KB | React, js-cookie, zod |
76
+ | `@react-lgpd-consent/mui` | 17.69 KB | 20.95 KB | 11.78 KB | core + @mui/material (peer) |
77
+ | `react-lgpd-consent` | 104 KB* | 110 KB* | 138 KB* | mui (workspace) |
78
+
79
+ \* Bundle final = core + mui (~104 KB total)
80
+
81
+ ### 🎯 Migration Paths
82
+
83
+ 1. **Uso de componentes UI** (maioria dos usuários):
84
+ ```bash
85
+ # Opção A: Pacote agregador (zero mudanças)
86
+ npm install react-lgpd-consent@0.5.0
87
+
88
+ # Opção B: Pacote MUI direto (recomendado)
89
+ npm install @react-lgpd-consent/mui
90
+ ```
91
+
92
+ 2. **Headless/UI customizada**:
93
+ ```bash
94
+ npm uninstall react-lgpd-consent @mui/material
95
+ npm install @react-lgpd-consent/core
96
+ ```
97
+
98
+ 3. **NextJS App Router**:
99
+ ```tsx
100
+ // Separação clara client/server
101
+ 'use client'
102
+ import { ConsentProvider } from '@react-lgpd-consent/mui'
103
+ ```
104
+
105
+ ### ✅ Maintained (Sem Breaking Changes)
106
+
107
+ - Todas as APIs públicas do `useConsent`
108
+ - Props de `ConsentProvider` (exceto `theme`)
109
+ - Componentes `CookieBanner`, `PreferencesModal`, `FloatingPreferencesButton`
110
+ - Sistema de textos e templates (`TEXT_TEMPLATES`, `resolveTexts`)
111
+ - Sistema de design tokens (`designTokens`)
112
+ - Integrações (Google Analytics, GTM, UserWay, etc.)
113
+ - SSR/NextJS support
114
+ - TypeScript types completos
115
+
116
+ ### 🔧 Fixed
117
+
118
+ - Jest configuração: tsconfig path resolution
119
+ - Stories: uso correto de ThemeProvider
120
+ - Type-check: todos os pacotes passam sem erros
121
+ - Tests: 207 testes passando em todos os pacotes
122
+
123
+ ### 📚 Documentation
124
+
125
+ - Novo [MIGRATION.md](./MIGRATION.md) com:
126
+ - 3 cenários de migração detalhados
127
+ - Comparativo de bundles
128
+ - Troubleshooting completo
129
+ - Exemplos antes/depois
130
+ - README atualizado com:
131
+ - 3 opções de instalação
132
+ - Comparativo de pacotes
133
+ - Guia de escolha
134
+ - READMEs específicos para core e mui packages
135
+
136
+ ### 🚀 Development
137
+
138
+ - PNPM workspaces configurados
139
+ - Scripts: `build:core`, `build:mui`, `build:main`
140
+ - Scripts: `publish:core`, `publish:mui`, `publish:main`, `publish:all`
141
+ - Type-check executado em todos os pacotes
142
+ - Tests executados em todos os pacotes
143
+ - Node >= 20.0.0 requerido
144
+
145
+ ---
6
146
 
7
147
  ## [0.4.5] - 2025-10-25 — DataLayer Events e CI/CD
8
148
 
@@ -875,3 +1015,17 @@ A v0.2.1 introduz um **sistema inteligente de orientações** que guia desenvolv
875
1015
  ### 🧩 Sem breaking changes
876
1016
 
877
1017
  - Alterações são compatíveis; padrões seguros preservados.
1018
+ ## [0.5.0] - 25/10/2025 — Modularização inicial do workspace
1019
+
1020
+ ### 🧱 Estrutura modular
1021
+ - Repositório convertido em workspace PNPM com três pacotes: `@react-lgpd-consent/core`, `@react-lgpd-consent/mui` e `react-lgpd-consent`.
1022
+ - Pacote agregador passa a construir entradas adicionais (`core` e `mui`) expondo subpath exports oficiais.
1023
+
1024
+ ### 🎨 Camada MUI dedicada
1025
+ - Publicação inicial de `@react-lgpd-consent/mui` como _proxy_ dos componentes padrão.
1026
+ - Metadados de peer dependencies ajustados para reforçar que Material-UI é opcional (requerido apenas para a camada visual).
1027
+
1028
+ ### 🧰 Ferramentas & DX
1029
+ - Scripts de lint/test/build convertidos para `pnpm --filter react-lgpd-consent <comando>`.
1030
+ - Jest e TypeDoc atualizados para apontar para `packages/core` e `packages/react-lgpd-consent`.
1031
+ - Documentação (README, QUICKSTART, DEVELOPMENT) revisada para explicar a nova arquitetura e o processo de migração gradual.
package/INTEGRACOES.md ADDED
@@ -0,0 +1,393 @@
1
+ # Guia de Integrações
2
+
3
+ ## 🚀 Visão Geral
4
+
5
+ A biblioteca oferece integrações nativas para as ferramentas mais comuns, eliminando a necessidade de código manual para o carregamento condicional de scripts de terceiros. As categorias usadas pelas integrações são sempre lidas da prop `categories` do `ConsentProvider` (fonte única de verdade).
6
+
7
+ O componente `ConsentScriptLoader` gerencia o carregamento desses scripts automaticamente, disparando-os apenas quando o usuário concede consentimento para a categoria correspondente.
8
+
9
+ ## 🎯 Integrações Nativas Disponíveis
10
+
11
+ A biblioteca oferece integrações nativas para as ferramentas mais comuns, eliminando a necessidade de código manual para o carregamento condicional de scripts de terceiros.
12
+
13
+ O componente `ConsentScriptLoader` gerencia o carregamento desses scripts automaticamente, disparando-os apenas quando o usuário concede consentimento para a categoria correspondente.
14
+
15
+ ### 1. Google Analytics 4 (GA4)
16
+
17
+ - **Categoria**: `analytics`
18
+ - **Função**: `createGoogleAnalyticsIntegration(config)`
19
+ - **Descrição**: Integração completa com o Google Analytics 4. Suporta `measurementId` e configurações adicionais para o `gtag`.
20
+
21
+ ```tsx
22
+ import { createGoogleAnalyticsIntegration, ConsentScriptLoader } from 'react-lgpd-consent'
23
+
24
+ const integrations = [
25
+ createGoogleAnalyticsIntegration({
26
+ measurementId: 'G-XXXXXXXXXX',
27
+ config: { anonymize_ip: true },
28
+ })
29
+ ]
30
+
31
+ <ConsentScriptLoader integrations={integrations} />
32
+ ```
33
+
34
+ ### 2. Google Tag Manager (GTM)
35
+
36
+ - **Categoria**: `analytics`
37
+ - **Função**: `createGoogleTagManagerIntegration(config)`
38
+ - **Descrição**: Carrega o container do Google Tag Manager. Suporta `gtmId` e `dataLayerName`.
39
+
40
+ ```tsx
41
+ import { createGoogleTagManagerIntegration } from 'react-lgpd-consent'
42
+
43
+ const integrations = [
44
+ createGoogleTagManagerIntegration({ gtmId: 'GTM-XXXXXXX' })
45
+ ]
46
+ ```
47
+
48
+ ### 3. Facebook Pixel
49
+
50
+ - **Categoria**: `marketing`
51
+ - **Função**: `createFacebookPixelIntegration(config)`
52
+ - **Descrição**: Integração com o Facebook Pixel. Suporta `pixelId` e `autoTrack` para `PageView`.
53
+
54
+ ```tsx
55
+ import { createFacebookPixelIntegration } from 'react-lgpd-consent'
56
+
57
+ const integrations = [
58
+ createFacebookPixelIntegration({ pixelId: 'YOUR_PIXEL_ID', autoTrack: true })
59
+ ]
60
+ ```
61
+
62
+ ### 4. Hotjar
63
+
64
+ - **Categoria**: `analytics`
65
+ - **Função**: `createHotjarIntegration(config)`
66
+ - **Descrição**: Carrega o script do Hotjar para análise de comportamento. Suporta `siteId`, `version` e modo `debug`.
67
+
68
+ ```tsx
69
+ import { createHotjarIntegration } from 'react-lgpd-consent'
70
+
71
+ const integrations = [createHotjarIntegration({ siteId: '123456', version: 6 })]
72
+ ```
73
+
74
+ ### 5. Mixpanel
75
+
76
+ - **Categoria**: `analytics`
77
+ - **Função**: `createMixpanelIntegration(config)`
78
+ - **Descrição**: Integração com o Mixpanel para análise de produtos. Suporta `token` e configurações customizadas.
79
+
80
+ ```tsx
81
+ import { createMixpanelIntegration } from 'react-lgpd-consent'
82
+
83
+ const integrations = [createMixpanelIntegration({ token: 'YOUR_TOKEN' })]
84
+ ```
85
+
86
+ ### 6. Microsoft Clarity
87
+
88
+ - **Categoria**: `analytics`
89
+ - **Função**: `createClarityIntegration(config)`
90
+ - **Descrição**: Integração com o Microsoft Clarity. Suporta `projectId`.
91
+
92
+ ```tsx
93
+ import { createClarityIntegration } from 'react-lgpd-consent'
94
+
95
+ const integrations = [createClarityIntegration({ projectId: 'abcdef' })]
96
+ ```
97
+
98
+ ### 7. Intercom
99
+
100
+ - **Categoria**: `functional`
101
+ - **Função**: `createIntercomIntegration(config)`
102
+ - **Descrição**: Adiciona o widget de chat do Intercom. Suporta `app_id`.
103
+
104
+ ```tsx
105
+ import { createIntercomIntegration } from 'react-lgpd-consent'
106
+
107
+ const integrations = [createIntercomIntegration({ app_id: 'your_app_id' })]
108
+ ```
109
+
110
+ ### 8. Zendesk Chat
111
+
112
+ - **Categoria**: `functional`
113
+ - **Função**: `createZendeskChatIntegration(config)`
114
+ - **Descrição**: Adiciona o widget do Zendesk Chat. Suporta `key`.
115
+
116
+ ```tsx
117
+ import { createZendeskChatIntegration } from 'react-lgpd-consent'
118
+
119
+ const integrations = [createZendeskChatIntegration({ key: 'your_zendesk_key' })]
120
+ ```
121
+
122
+ ### 9. UserWay (Acessibilidade)
123
+
124
+ - **Categoria**: `functional`
125
+ - **Função**: `createUserWayIntegration(config)`
126
+ - **Descrição**: Adiciona o widget de acessibilidade do UserWay. Suporta `accountId`.
127
+
128
+ ```tsx
129
+ import { createUserWayIntegration } from 'react-lgpd-consent'
130
+
131
+ const integrations = [createUserWayIntegration({ accountId: 'USERWAY_ACCOUNT_ID' })]
132
+ ```
133
+
134
+ ---
135
+
136
+ ## 🧠 Helpers e Templates (v0.4.1)
137
+
138
+ Para simplificar a configuração de múltiplas integrações, a biblioteca oferece templates e funções de ajuda.
139
+
140
+ - `suggestCategoryForScript(name: string)`: Sugere a categoria LGPD apropriada para um nome de script conhecido.
141
+ - `createECommerceIntegrations`, `createSaaSIntegrations`, `createCorporateIntegrations`: Templates de negócio que agrupam as integrações mais comuns para cada setor.
142
+ - `INTEGRATION_TEMPLATES`: Constante com presets de IDs e categorias para cada template.
143
+
144
+ ### Exemplo de Template (E-commerce)
145
+
146
+ ```tsx
147
+ import { ConsentProvider, ConsentScriptLoader, createECommerceIntegrations } from 'react-lgpd-consent'
148
+
149
+ function App() {
150
+ const integrations = createECommerceIntegrations({
151
+ googleAnalytics: { measurementId: 'G-XXXX' },
152
+ facebookPixel: { pixelId: '1234567890' },
153
+ hotjar: { siteId: '999999' },
154
+ })
155
+
156
+ return (
157
+ <ConsentProvider categories={{ enabledCategories: ['analytics', 'marketing', 'functional'] }}>
158
+ <ConsentScriptLoader integrations={integrations} />
159
+ {/* Seu app */}
160
+ </ConsentProvider>
161
+ )
162
+ }
163
+ ```
164
+
165
+ ---
166
+
167
+ ## 🔎 Descoberta Automática de Cookies (Experimental v0.4.1)
168
+
169
+ A biblioteca inclui funcionalidades experimentais para facilitar a auditoria e o mapeamento de cookies.
170
+
171
+ - **Detecção em Runtime**: Em modo de desenvolvimento, a biblioteca escaneia e loga os cookies encontrados no console.
172
+ - **Categorização Automática**: A função `categorizeDiscoveredCookies` usa heurísticas para sugerir a categoria de um cookie.
173
+ - **Uso Programático**:
174
+
175
+ ```ts
176
+ import { discoverRuntimeCookies, categorizeDiscoveredCookies } from 'react-lgpd-consent'
177
+
178
+ // 1. Descobre cookies em tempo de execução
179
+ const discovered = discoverRuntimeCookies()
180
+
181
+ // 2. Categoriza e registra no catálogo de cookies do modal
182
+ categorizeDiscoveredCookies(discovered, true)
183
+ ```
184
+
185
+ ---
186
+
187
+ ## 🧱 Nota SSR/Next.js (App Router)
188
+
189
+ Para evitar hydration mismatch e vazamento de scripts:
190
+ - Coloque o `ConsentProvider` dentro de um Client Component e carregue-o com `dynamic(..., { ssr: false })` a partir do `RootLayout` (Server Component).
191
+ - Use o `ConsentScriptLoader` para carregar GTM/GA4 somente após consentimento e inicialize o Consent Mode v2 com `gtag('consent','default', denied)` antes de qualquer script.
192
+ - Consulte a seção “SSR/Next.js (App Router) — Padrões seguros” em `QUICKSTART.md` para ordem dos provedores/estilos (MUI/Emotion) e checklist SSR.
193
+
194
+ ---
195
+
196
+ ## 🎨 Criando Integrações Customizadas
197
+
198
+ Se precisar de uma integração que não é oferecida nativamente, você pode criar a sua implementando a interface `ScriptIntegration`.
199
+
200
+ ```typescript
201
+ interface ScriptIntegration {
202
+ id: string // ID único para o script
203
+ category: string // Categoria de consentimento que habilita o script
204
+ src: string // URL do script
205
+ init?: () => void // Função opcional para executar após o carregamento
206
+ attrs?: Record<string, string> // Atributos HTML para a tag <script>
207
+ }
208
+ ```
209
+
210
+ ---
211
+
212
+ ## 📊 Eventos DataLayer (Google Tag Manager)
213
+
214
+ A partir da versão **0.4.5**, a biblioteca dispara automaticamente eventos padronizados no `dataLayer` para facilitar rastreamento, auditoria LGPD e integrações com o Google Tag Manager.
215
+
216
+ ### Eventos Disponíveis
217
+
218
+ #### 1. `consent_initialized`
219
+
220
+ Disparado quando o sistema de consentimento é inicializado (após hidratação).
221
+
222
+ **Payload:**
223
+ ```typescript
224
+ {
225
+ event: 'consent_initialized',
226
+ consent_version: '0.4.5',
227
+ timestamp: '2025-10-25T13:52:33.729Z',
228
+ categories: {
229
+ necessary: true,
230
+ analytics: false,
231
+ marketing: false
232
+ }
233
+ }
234
+ ```
235
+
236
+ **Exemplo de uso no GTM:**
237
+ - **Tipo de acionador**: Evento personalizado
238
+ - **Nome do evento**: `consent_initialized`
239
+ - **Variáveis**: `{{categories.analytics}}`, `{{categories.marketing}}`, etc.
240
+
241
+ #### 2. `consent_updated`
242
+
243
+ Disparado sempre que o usuário atualiza suas preferências de consentimento.
244
+
245
+ **Payload:**
246
+ ```typescript
247
+ {
248
+ event: 'consent_updated',
249
+ consent_version: '0.4.5',
250
+ timestamp: '2025-10-25T13:52:33.729Z',
251
+ origin: 'modal', // 'banner' | 'modal' | 'reset' | 'programmatic'
252
+ categories: {
253
+ necessary: true,
254
+ analytics: true,
255
+ marketing: false
256
+ },
257
+ changed_categories: ['analytics']
258
+ }
259
+ ```
260
+
261
+ **Exemplo de uso no GTM:**
262
+ - **Tipo de acionador**: Evento personalizado
263
+ - **Nome do evento**: `consent_updated`
264
+ - **Condição**: `{{changed_categories}}` contém `analytics`
265
+ - **Ação**: Disparar Google Analytics 4
266
+
267
+ ### Configuração no Google Tag Manager
268
+
269
+ #### Passo 1: Criar Variáveis de DataLayer
270
+
271
+ No GTM, crie as seguintes variáveis de camada de dados:
272
+
273
+ 1. **DLV - Consent Categories**
274
+ - Tipo: Variável da camada de dados
275
+ - Nome: `categories`
276
+
277
+ 2. **DLV - Consent Origin**
278
+ - Tipo: Variável da camada de dados
279
+ - Nome: `origin`
280
+
281
+ 3. **DLV - Changed Categories**
282
+ - Tipo: Variável da camada de dados
283
+ - Nome: `changed_categories`
284
+
285
+ #### Passo 2: Criar Acionadores
286
+
287
+ 1. **Acionador: Consent Initialized**
288
+ - Tipo: Evento personalizado
289
+ - Nome do evento: `consent_initialized`
290
+
291
+ 2. **Acionador: Consent Updated - Analytics Accepted**
292
+ - Tipo: Evento personalizado
293
+ - Nome do evento: `consent_updated`
294
+ - Este acionador é acionado em: Alguns eventos personalizados
295
+ - Condição: `{{DLV - Consent Categories}}.analytics` igual a `true`
296
+
297
+ #### Passo 3: Criar Tags
298
+
299
+ 1. **Tag: Google Analytics 4 (condicionada ao consentimento)**
300
+ - Tipo: Google Analytics: Configuração do GA4
301
+ - ID de medição: `G-XXXXXXXXXX`
302
+ - Acionador: `Consent Updated - Analytics Accepted`
303
+
304
+ ### Exemplo: Auditoria LGPD
305
+
306
+ Crie uma tag para registrar mudanças de consentimento em um sistema de auditoria:
307
+
308
+ ```javascript
309
+ // Tag HTML customizada no GTM
310
+ <script>
311
+ (function() {
312
+ var auditData = {
313
+ timestamp: {{DLV - timestamp}},
314
+ origin: {{DLV - Consent Origin}},
315
+ categories: {{DLV - Consent Categories}},
316
+ changed: {{DLV - Changed Categories}}
317
+ };
318
+
319
+ // Enviar para seu sistema de auditoria
320
+ fetch('/api/consent-audit', {
321
+ method: 'POST',
322
+ headers: { 'Content-Type': 'application/json' },
323
+ body: JSON.stringify(auditData)
324
+ });
325
+ })();
326
+ </script>
327
+ ```
328
+
329
+ ### API Programática
330
+
331
+ Para casos avançados, você pode disparar eventos manualmente:
332
+
333
+ ```typescript
334
+ import { pushConsentUpdatedEvent } from 'react-lgpd-consent'
335
+
336
+ // Disparar evento após mudança programática
337
+ const handleCustomUpdate = () => {
338
+ const newPreferences = {
339
+ necessary: true,
340
+ analytics: true,
341
+ marketing: false
342
+ }
343
+
344
+ pushConsentUpdatedEvent(newPreferences, 'programmatic')
345
+ }
346
+ ```
347
+
348
+ ### Tipos TypeScript
349
+
350
+ ```typescript
351
+ import type {
352
+ ConsentEvent,
353
+ ConsentEventOrigin,
354
+ ConsentInitializedEvent,
355
+ ConsentUpdatedEvent
356
+ } from 'react-lgpd-consent'
357
+
358
+ // Origem da ação
359
+ type ConsentEventOrigin = 'banner' | 'modal' | 'reset' | 'programmatic'
360
+
361
+ // Evento de inicialização
362
+ interface ConsentInitializedEvent {
363
+ event: 'consent_initialized'
364
+ consent_version: string
365
+ timestamp: string
366
+ categories: Record<string, boolean>
367
+ }
368
+
369
+ // Evento de atualização
370
+ interface ConsentUpdatedEvent {
371
+ event: 'consent_updated'
372
+ consent_version: string
373
+ timestamp: string
374
+ origin: ConsentEventOrigin
375
+ categories: Record<string, boolean>
376
+ changed_categories: string[]
377
+ }
378
+ ```
379
+
380
+ ---
381
+
382
+ ## 📊 Categorias Recomendadas
383
+
384
+ | Ferramenta | Categoria Recomendada | Justificativa |
385
+ | ------------------ | --------------------- | -------------------------------- |
386
+ | Google Analytics | `analytics` | Coleta estatísticas de uso |
387
+ | Google Tag Manager | `analytics` | Container de tags analíticas |
388
+ | Facebook Pixel | `marketing` | Publicidade direcionada |
389
+ | Hotjar/FullStory | `analytics` | Análise comportamental |
390
+ | UserWay/AccessiBe | `functional` | Funcionalidade de acessibilidade |
391
+ | Live Chat | `functional` | Funcionalidade de suporte |
392
+ | YouTube/Vimeo | `social` | Conteúdo de redes sociais |
393
+
package/QUICKSTART.en.md CHANGED
@@ -16,6 +16,13 @@ yarn add react-lgpd-consent
16
16
  npm install @mui/material @mui/icons-material @emotion/react @emotion/styled
17
17
  ```
18
18
 
19
+ > ℹ️ **Modularization (v0.5.0+)**
20
+ >
21
+ > - `react-lgpd-consent` remains the main npm package.
22
+ > - `@react-lgpd-consent/core` exposes contexts, hooks and utilities only.
23
+ > - `@react-lgpd-consent/mui` ships the Material-UI layer (currently a proxy).
24
+ > - Subpath imports (`react-lgpd-consent/core`, `react-lgpd-consent/mui`) are available for advanced setups.
25
+
19
26
  ## 🎯 Basic Usage (30 seconds)
20
27
 
21
28
  ```tsx
package/QUICKSTART.md CHANGED
@@ -16,6 +16,13 @@ yarn add react-lgpd-consent
16
16
  npm install @mui/material @mui/icons-material @emotion/react @emotion/styled
17
17
  ```
18
18
 
19
+ > ℹ️ **Modularização (v0.5.0+)**
20
+ >
21
+ > - `react-lgpd-consent` continua sendo o pacote principal publicado.
22
+ > - `@react-lgpd-consent/core` expõe apenas contextos, hooks e utilitários (sem UI).
23
+ > - `@react-lgpd-consent/mui` publica os componentes baseados em Material-UI (atualmente um proxy).
24
+ > - Use os novos subpaths (`react-lgpd-consent/core`, `react-lgpd-consent/mui`) conforme a necessidade.
25
+
19
26
  ## 🎯 Uso Básico (30 segundos)
20
27
 
21
28
  ````tsx