react-lgpd-consent 0.1.11 → 0.1.12
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.
|
@@ -55,12 +55,10 @@ var defaultConsentTheme = createTheme({
|
|
|
55
55
|
palette: {
|
|
56
56
|
primary: {
|
|
57
57
|
main: "#1976d2",
|
|
58
|
-
// Azul institucional
|
|
59
58
|
contrastText: "#ffffff"
|
|
60
59
|
},
|
|
61
60
|
secondary: {
|
|
62
61
|
main: "#dc004e",
|
|
63
|
-
// Rosa/vermelho para ações importantes
|
|
64
62
|
contrastText: "#ffffff"
|
|
65
63
|
},
|
|
66
64
|
background: {
|
|
@@ -84,7 +82,6 @@ var defaultConsentTheme = createTheme({
|
|
|
84
82
|
button: {
|
|
85
83
|
fontWeight: 500,
|
|
86
84
|
textTransform: "none"
|
|
87
|
-
// Manter capitalização original
|
|
88
85
|
}
|
|
89
86
|
},
|
|
90
87
|
components: {
|
|
@@ -123,7 +120,7 @@ var defaultConsentTheme = createTheme({
|
|
|
123
120
|
// src/context/ConsentContext.tsx
|
|
124
121
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
125
122
|
var PreferencesModal = React.lazy(
|
|
126
|
-
() => import("./PreferencesModal-
|
|
123
|
+
() => import("./PreferencesModal-IFKCHTF2.js").then((m) => ({
|
|
127
124
|
default: m.PreferencesModal
|
|
128
125
|
}))
|
|
129
126
|
);
|
|
@@ -371,7 +368,7 @@ function Branding({ variant, hidden = false }) {
|
|
|
371
368
|
/* @__PURE__ */ jsx2(
|
|
372
369
|
Link,
|
|
373
370
|
{
|
|
374
|
-
href: "https://ledipo.eti.br",
|
|
371
|
+
href: "https://www.ledipo.eti.br",
|
|
375
372
|
target: "_blank",
|
|
376
373
|
rel: "noopener noreferrer",
|
|
377
374
|
sx: (theme) => ({
|
package/dist/index.cjs
CHANGED
|
@@ -81,12 +81,10 @@ var init_theme = __esm({
|
|
|
81
81
|
palette: {
|
|
82
82
|
primary: {
|
|
83
83
|
main: "#1976d2",
|
|
84
|
-
// Azul institucional
|
|
85
84
|
contrastText: "#ffffff"
|
|
86
85
|
},
|
|
87
86
|
secondary: {
|
|
88
87
|
main: "#dc004e",
|
|
89
|
-
// Rosa/vermelho para ações importantes
|
|
90
88
|
contrastText: "#ffffff"
|
|
91
89
|
},
|
|
92
90
|
background: {
|
|
@@ -110,7 +108,6 @@ var init_theme = __esm({
|
|
|
110
108
|
button: {
|
|
111
109
|
fontWeight: 500,
|
|
112
110
|
textTransform: "none"
|
|
113
|
-
// Manter capitalização original
|
|
114
111
|
}
|
|
115
112
|
},
|
|
116
113
|
components: {
|
|
@@ -165,7 +162,7 @@ function Branding({ variant, hidden = false }) {
|
|
|
165
162
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
166
163
|
import_Link.default,
|
|
167
164
|
{
|
|
168
|
-
href: "https://ledipo.eti.br",
|
|
165
|
+
href: "https://www.ledipo.eti.br",
|
|
169
166
|
target: "_blank",
|
|
170
167
|
rel: "noopener noreferrer",
|
|
171
168
|
sx: (theme) => ({
|
|
@@ -671,16 +668,16 @@ function CookieBanner({
|
|
|
671
668
|
init_PreferencesModal();
|
|
672
669
|
|
|
673
670
|
// src/components/FloatingPreferencesButton.tsx
|
|
671
|
+
var import_CookieOutlined = __toESM(require("@mui/icons-material/CookieOutlined"), 1);
|
|
674
672
|
var import_Fab = __toESM(require("@mui/material/Fab"), 1);
|
|
675
673
|
var import_Tooltip = __toESM(require("@mui/material/Tooltip"), 1);
|
|
676
|
-
var import_Settings = __toESM(require("@mui/icons-material/Settings"), 1);
|
|
677
674
|
var import_styles3 = require("@mui/material/styles");
|
|
678
675
|
init_useConsent();
|
|
679
676
|
var import_jsx_runtime5 = require("react/jsx-runtime");
|
|
680
677
|
function FloatingPreferencesButton({
|
|
681
678
|
position = "bottom-right",
|
|
682
679
|
offset = 24,
|
|
683
|
-
icon = /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
680
|
+
icon = /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_CookieOutlined.default, {}),
|
|
684
681
|
tooltip,
|
|
685
682
|
FabProps,
|
|
686
683
|
hideWhenConsented = false
|
|
@@ -695,7 +692,6 @@ function FloatingPreferencesButton({
|
|
|
695
692
|
const styles = {
|
|
696
693
|
position: "fixed",
|
|
697
694
|
zIndex: 1200
|
|
698
|
-
// Abaixo do modal mas acima do conteúdo
|
|
699
695
|
};
|
|
700
696
|
switch (position) {
|
|
701
697
|
case "bottom-left":
|
package/dist/index.d.cts
CHANGED
|
@@ -6,6 +6,16 @@ import { FabProps } from '@mui/material/Fab';
|
|
|
6
6
|
import * as React$1 from 'react';
|
|
7
7
|
import * as _mui_material_styles from '@mui/material/styles';
|
|
8
8
|
|
|
9
|
+
/**
|
|
10
|
+
* Props para o componente CookieBanner.
|
|
11
|
+
*
|
|
12
|
+
* @property policyLinkUrl URL da política de privacidade (opcional).
|
|
13
|
+
* @property debug Força exibição do banner para QA/debug (opcional).
|
|
14
|
+
* @property blocking Se true, bloqueia interação até decisão do usuário (default: true).
|
|
15
|
+
* @property hideBranding Se true, oculta o branding "fornecido por LÉdipO.eti.br" (opcional).
|
|
16
|
+
* @property SnackbarProps Props adicionais para o componente MUI Snackbar (opcional).
|
|
17
|
+
* @property PaperProps Props adicionais para o componente MUI Paper (opcional).
|
|
18
|
+
*/
|
|
9
19
|
interface CookieBannerProps {
|
|
10
20
|
policyLinkUrl?: string;
|
|
11
21
|
debug?: boolean;
|
|
@@ -14,29 +24,79 @@ interface CookieBannerProps {
|
|
|
14
24
|
SnackbarProps?: Partial<SnackbarProps>;
|
|
15
25
|
PaperProps?: Partial<PaperProps>;
|
|
16
26
|
}
|
|
27
|
+
/**
|
|
28
|
+
* Banner de consentimento de cookies conforme LGPD.
|
|
29
|
+
*
|
|
30
|
+
* Exibe mensagem informativa, botões de ação e link para política de privacidade.
|
|
31
|
+
* Compatível com modo bloqueante (overlay) e não bloqueante (Snackbar).
|
|
32
|
+
*
|
|
33
|
+
* - Textos em pt-BR, customizáveis via contexto.
|
|
34
|
+
* - Acessível e responsivo.
|
|
35
|
+
* - Branding opcional.
|
|
36
|
+
*
|
|
37
|
+
* @param props Propriedades do banner de consentimento.
|
|
38
|
+
*/
|
|
17
39
|
declare function CookieBanner({ policyLinkUrl, debug, blocking, // Por padrão, bloqueia até decisão
|
|
18
40
|
hideBranding, SnackbarProps, PaperProps, }: Readonly<CookieBannerProps>): react_jsx_runtime.JSX.Element | null;
|
|
19
41
|
|
|
42
|
+
/**
|
|
43
|
+
* Props para o componente PreferencesModal.
|
|
44
|
+
*
|
|
45
|
+
* @property DialogProps Props opcionais para customizar o Dialog do Material-UI.
|
|
46
|
+
* @property hideBranding Se true, oculta o branding "fornecido por LÉdipO.eti.br".
|
|
47
|
+
*/
|
|
20
48
|
interface PreferencesModalProps {
|
|
21
49
|
DialogProps?: Partial<DialogProps>;
|
|
22
50
|
hideBranding?: boolean;
|
|
23
51
|
}
|
|
52
|
+
/**
|
|
53
|
+
* Modal de preferências de cookies.
|
|
54
|
+
*
|
|
55
|
+
* Permite ao usuário ajustar suas preferências de consentimento para cookies analíticos e de marketing.
|
|
56
|
+
* Utiliza Material-UI Dialog, switches para cada categoria e textos customizáveis via contexto.
|
|
57
|
+
* Acessível, responsivo e compatível com SSR.
|
|
58
|
+
*
|
|
59
|
+
* @param props Props do modal, incluindo customização do Dialog e opção de ocultar branding.
|
|
60
|
+
*/
|
|
24
61
|
declare function PreferencesModal({ DialogProps, hideBranding, }: Readonly<PreferencesModalProps>): react_jsx_runtime.JSX.Element;
|
|
25
62
|
|
|
63
|
+
/**
|
|
64
|
+
* Props para o componente FloatingPreferencesButton.
|
|
65
|
+
*
|
|
66
|
+
* Permite configurar posição, ícone, tooltip, e comportamento de exibição do botão flutuante
|
|
67
|
+
* para abrir o modal de preferências de cookies LGPD.
|
|
68
|
+
*
|
|
69
|
+
* Todos os campos são opcionais e possuem valores padrão.
|
|
70
|
+
*/
|
|
26
71
|
interface FloatingPreferencesButtonProps {
|
|
27
72
|
/** Posição do botão flutuante. Padrão: 'bottom-right' */
|
|
28
73
|
position?: 'bottom-left' | 'bottom-right' | 'top-left' | 'top-right';
|
|
29
74
|
/** Offset da borda em pixels. Padrão: 24 */
|
|
30
75
|
offset?: number;
|
|
31
|
-
/** Ícone customizado. Padrão:
|
|
76
|
+
/** Ícone customizado. Padrão: CookieOutlined */
|
|
32
77
|
icon?: React.ReactNode;
|
|
33
|
-
/** Tooltip customizado */
|
|
78
|
+
/** Tooltip customizado exibido ao passar o mouse */
|
|
34
79
|
tooltip?: string;
|
|
35
|
-
/** Props
|
|
80
|
+
/** Props adicionais para o Fab do MUI */
|
|
36
81
|
FabProps?: Partial<FabProps>;
|
|
37
82
|
/** Se deve esconder quando consentimento já foi dado. Padrão: false */
|
|
38
83
|
hideWhenConsented?: boolean;
|
|
39
84
|
}
|
|
85
|
+
/**
|
|
86
|
+
* Botão flutuante para abrir o modal de preferências de cookies.
|
|
87
|
+
*
|
|
88
|
+
* Permite ao usuário acessar rapidamente as configurações de consentimento LGPD.
|
|
89
|
+
* Pode ser posicionado em qualquer canto da tela e customizado via props.
|
|
90
|
+
*
|
|
91
|
+
* @param position Posição do botão na tela. Padrão: 'bottom-right'.
|
|
92
|
+
* @param offset Distância da borda em pixels. Padrão: 24.
|
|
93
|
+
* @param icon Ícone customizado para o botão. Padrão: CookieOutlined.
|
|
94
|
+
* @param tooltip Texto do tooltip exibido ao passar o mouse. Padrão: 'Gerenciar Preferências de Cookies'.
|
|
95
|
+
* @param FabProps Props adicionais para o componente Fab do MUI.
|
|
96
|
+
* @param hideWhenConsented Se verdadeiro, esconde o botão após consentimento. Padrão: false.
|
|
97
|
+
*
|
|
98
|
+
* @returns JSX.Element | null
|
|
99
|
+
*/
|
|
40
100
|
declare function FloatingPreferencesButton({ position, offset, icon, tooltip, FabProps, hideWhenConsented, }: Readonly<FloatingPreferencesButtonProps>): react_jsx_runtime.JSX.Element | null;
|
|
41
101
|
|
|
42
102
|
/**
|
|
@@ -62,6 +122,25 @@ interface ConsentState {
|
|
|
62
122
|
}
|
|
63
123
|
/**
|
|
64
124
|
* Textos utilizados na interface de consentimento.
|
|
125
|
+
*
|
|
126
|
+
* @remarks
|
|
127
|
+
* Esta interface define todos os textos exibidos na UI do banner e modal de consentimento.
|
|
128
|
+
* Os campos opcionais permitem adequação à ANPD e customização conforme necessidade do projeto.
|
|
129
|
+
*
|
|
130
|
+
* @property bannerMessage - Mensagem principal exibida no banner de consentimento.
|
|
131
|
+
* @property acceptAll - Texto do botão para aceitar todos os cookies.
|
|
132
|
+
* @property declineAll - Texto do botão para recusar todos os cookies.
|
|
133
|
+
* @property preferences - Texto do botão para abrir preferências.
|
|
134
|
+
* @property policyLink - (Opcional) Link para política de privacidade.
|
|
135
|
+
* @property modalTitle - Título do modal de preferências.
|
|
136
|
+
* @property modalIntro - Texto introdutório do modal.
|
|
137
|
+
* @property save - Texto do botão para salvar preferências.
|
|
138
|
+
* @property necessaryAlwaysOn - Texto explicativo para cookies necessários.
|
|
139
|
+
* @property controllerInfo - (Opcional) Informação sobre o controlador dos dados.
|
|
140
|
+
* @property dataTypes - (Opcional) Tipos de dados coletados.
|
|
141
|
+
* @property thirdPartySharing - (Opcional) Compartilhamento com terceiros.
|
|
142
|
+
* @property userRights - (Opcional) Direitos do titular dos dados.
|
|
143
|
+
* @property contactInfo - (Opcional) Informações de contato do DPO.
|
|
65
144
|
*/
|
|
66
145
|
interface ConsentTexts {
|
|
67
146
|
bannerMessage: string;
|
|
@@ -142,8 +221,44 @@ interface ConsentContextValue {
|
|
|
142
221
|
resetConsent: () => void;
|
|
143
222
|
}
|
|
144
223
|
|
|
224
|
+
/**
|
|
225
|
+
* Provider principal do contexto de consentimento LGPD.
|
|
226
|
+
*
|
|
227
|
+
* Gerencia o estado global de consentimento de cookies, preferências do usuário,
|
|
228
|
+
* textos customizáveis e integração com SSR. Permite customização do modal de preferências,
|
|
229
|
+
* callbacks externos e opções de cookie.
|
|
230
|
+
*
|
|
231
|
+
* @param props Propriedades do ConsentProvider (ver ConsentProviderProps)
|
|
232
|
+
* @returns JSX.Element
|
|
233
|
+
*
|
|
234
|
+
* @example
|
|
235
|
+
* <ConsentProvider>
|
|
236
|
+
* <App />
|
|
237
|
+
* </ConsentProvider>
|
|
238
|
+
*/
|
|
145
239
|
declare function ConsentProvider({ initialState, texts: textsProp, theme, PreferencesModalComponent, preferencesModalProps, disableAutomaticModal, hideBranding, onConsentGiven, onPreferencesSaved, cookie: cookieOpts, children, }: Readonly<ConsentProviderProps>): react_jsx_runtime.JSX.Element;
|
|
146
240
|
|
|
241
|
+
/**
|
|
242
|
+
* Hook principal para acessar e manipular o estado de consentimento de cookies.
|
|
243
|
+
*
|
|
244
|
+
* Retorna o estado atual do consentimento, preferências do usuário e métodos para
|
|
245
|
+
* aceitar, recusar, modificar ou resetar consentimentos. Ideal para integração
|
|
246
|
+
* com componentes customizados ou lógica de negócio.
|
|
247
|
+
*
|
|
248
|
+
* @returns {ConsentContextValue} Estado e ações do consentimento.
|
|
249
|
+
*
|
|
250
|
+
* @example
|
|
251
|
+
* const {
|
|
252
|
+
* consented,
|
|
253
|
+
* preferences,
|
|
254
|
+
* acceptAll,
|
|
255
|
+
* rejectAll,
|
|
256
|
+
* setPreference,
|
|
257
|
+
* openPreferences,
|
|
258
|
+
* closePreferences,
|
|
259
|
+
* resetConsent,
|
|
260
|
+
* } = useConsent();
|
|
261
|
+
*/
|
|
147
262
|
declare function useConsent(): ConsentContextValue;
|
|
148
263
|
/**
|
|
149
264
|
* Hook para acessar textos customizados do ConsentProvider.
|
|
@@ -162,14 +277,27 @@ declare function ConsentGate(props: Readonly<{
|
|
|
162
277
|
}>): react_jsx_runtime.JSX.Element | null;
|
|
163
278
|
|
|
164
279
|
/**
|
|
165
|
-
* Carrega um script
|
|
166
|
-
*
|
|
280
|
+
* Carrega dinamicamente um script externo após o consentimento do usuário ser finalizado.
|
|
281
|
+
*
|
|
282
|
+
* Aguarda até que o usuário tome uma decisão definitiva (banner fechado ou preferências salvas)
|
|
283
|
+
* antes de inserir o script na página. Permite restringir o carregamento por categoria de consentimento.
|
|
284
|
+
*
|
|
285
|
+
* @param id - Identificador único do elemento script a ser criado.
|
|
286
|
+
* @param src - URL do script externo.
|
|
287
|
+
* @param category - Categoria de consentimento exigida para o script ('analytics', 'marketing' ou null).
|
|
288
|
+
* @param attrs - Atributos adicionais a serem aplicados ao elemento script.
|
|
289
|
+
* @returns Promise que resolve quando o script é carregado ou rejeita se o consentimento não for dado.
|
|
167
290
|
*/
|
|
168
291
|
declare function loadScript(id: string, src: string, category?: 'analytics' | 'marketing' | null, attrs?: Record<string, string>): Promise<void>;
|
|
169
292
|
|
|
170
293
|
/**
|
|
171
|
-
* Tema padrão
|
|
172
|
-
*
|
|
294
|
+
* Tema padrão utilizado pelos componentes de consentimento da biblioteca.
|
|
295
|
+
*
|
|
296
|
+
* Inclui configurações de cores, tipografia e estilos para componentes Material-UI,
|
|
297
|
+
* garantindo aparência consistente e acessível conforme guidelines LGPD.
|
|
298
|
+
*
|
|
299
|
+
* @remarks
|
|
300
|
+
* Pode ser sobrescrito via ThemeProvider externo se necessário.
|
|
173
301
|
*/
|
|
174
302
|
declare const defaultConsentTheme: _mui_material_styles.Theme;
|
|
175
303
|
|
package/dist/index.d.ts
CHANGED
|
@@ -6,6 +6,16 @@ import { FabProps } from '@mui/material/Fab';
|
|
|
6
6
|
import * as React$1 from 'react';
|
|
7
7
|
import * as _mui_material_styles from '@mui/material/styles';
|
|
8
8
|
|
|
9
|
+
/**
|
|
10
|
+
* Props para o componente CookieBanner.
|
|
11
|
+
*
|
|
12
|
+
* @property policyLinkUrl URL da política de privacidade (opcional).
|
|
13
|
+
* @property debug Força exibição do banner para QA/debug (opcional).
|
|
14
|
+
* @property blocking Se true, bloqueia interação até decisão do usuário (default: true).
|
|
15
|
+
* @property hideBranding Se true, oculta o branding "fornecido por LÉdipO.eti.br" (opcional).
|
|
16
|
+
* @property SnackbarProps Props adicionais para o componente MUI Snackbar (opcional).
|
|
17
|
+
* @property PaperProps Props adicionais para o componente MUI Paper (opcional).
|
|
18
|
+
*/
|
|
9
19
|
interface CookieBannerProps {
|
|
10
20
|
policyLinkUrl?: string;
|
|
11
21
|
debug?: boolean;
|
|
@@ -14,29 +24,79 @@ interface CookieBannerProps {
|
|
|
14
24
|
SnackbarProps?: Partial<SnackbarProps>;
|
|
15
25
|
PaperProps?: Partial<PaperProps>;
|
|
16
26
|
}
|
|
27
|
+
/**
|
|
28
|
+
* Banner de consentimento de cookies conforme LGPD.
|
|
29
|
+
*
|
|
30
|
+
* Exibe mensagem informativa, botões de ação e link para política de privacidade.
|
|
31
|
+
* Compatível com modo bloqueante (overlay) e não bloqueante (Snackbar).
|
|
32
|
+
*
|
|
33
|
+
* - Textos em pt-BR, customizáveis via contexto.
|
|
34
|
+
* - Acessível e responsivo.
|
|
35
|
+
* - Branding opcional.
|
|
36
|
+
*
|
|
37
|
+
* @param props Propriedades do banner de consentimento.
|
|
38
|
+
*/
|
|
17
39
|
declare function CookieBanner({ policyLinkUrl, debug, blocking, // Por padrão, bloqueia até decisão
|
|
18
40
|
hideBranding, SnackbarProps, PaperProps, }: Readonly<CookieBannerProps>): react_jsx_runtime.JSX.Element | null;
|
|
19
41
|
|
|
42
|
+
/**
|
|
43
|
+
* Props para o componente PreferencesModal.
|
|
44
|
+
*
|
|
45
|
+
* @property DialogProps Props opcionais para customizar o Dialog do Material-UI.
|
|
46
|
+
* @property hideBranding Se true, oculta o branding "fornecido por LÉdipO.eti.br".
|
|
47
|
+
*/
|
|
20
48
|
interface PreferencesModalProps {
|
|
21
49
|
DialogProps?: Partial<DialogProps>;
|
|
22
50
|
hideBranding?: boolean;
|
|
23
51
|
}
|
|
52
|
+
/**
|
|
53
|
+
* Modal de preferências de cookies.
|
|
54
|
+
*
|
|
55
|
+
* Permite ao usuário ajustar suas preferências de consentimento para cookies analíticos e de marketing.
|
|
56
|
+
* Utiliza Material-UI Dialog, switches para cada categoria e textos customizáveis via contexto.
|
|
57
|
+
* Acessível, responsivo e compatível com SSR.
|
|
58
|
+
*
|
|
59
|
+
* @param props Props do modal, incluindo customização do Dialog e opção de ocultar branding.
|
|
60
|
+
*/
|
|
24
61
|
declare function PreferencesModal({ DialogProps, hideBranding, }: Readonly<PreferencesModalProps>): react_jsx_runtime.JSX.Element;
|
|
25
62
|
|
|
63
|
+
/**
|
|
64
|
+
* Props para o componente FloatingPreferencesButton.
|
|
65
|
+
*
|
|
66
|
+
* Permite configurar posição, ícone, tooltip, e comportamento de exibição do botão flutuante
|
|
67
|
+
* para abrir o modal de preferências de cookies LGPD.
|
|
68
|
+
*
|
|
69
|
+
* Todos os campos são opcionais e possuem valores padrão.
|
|
70
|
+
*/
|
|
26
71
|
interface FloatingPreferencesButtonProps {
|
|
27
72
|
/** Posição do botão flutuante. Padrão: 'bottom-right' */
|
|
28
73
|
position?: 'bottom-left' | 'bottom-right' | 'top-left' | 'top-right';
|
|
29
74
|
/** Offset da borda em pixels. Padrão: 24 */
|
|
30
75
|
offset?: number;
|
|
31
|
-
/** Ícone customizado. Padrão:
|
|
76
|
+
/** Ícone customizado. Padrão: CookieOutlined */
|
|
32
77
|
icon?: React.ReactNode;
|
|
33
|
-
/** Tooltip customizado */
|
|
78
|
+
/** Tooltip customizado exibido ao passar o mouse */
|
|
34
79
|
tooltip?: string;
|
|
35
|
-
/** Props
|
|
80
|
+
/** Props adicionais para o Fab do MUI */
|
|
36
81
|
FabProps?: Partial<FabProps>;
|
|
37
82
|
/** Se deve esconder quando consentimento já foi dado. Padrão: false */
|
|
38
83
|
hideWhenConsented?: boolean;
|
|
39
84
|
}
|
|
85
|
+
/**
|
|
86
|
+
* Botão flutuante para abrir o modal de preferências de cookies.
|
|
87
|
+
*
|
|
88
|
+
* Permite ao usuário acessar rapidamente as configurações de consentimento LGPD.
|
|
89
|
+
* Pode ser posicionado em qualquer canto da tela e customizado via props.
|
|
90
|
+
*
|
|
91
|
+
* @param position Posição do botão na tela. Padrão: 'bottom-right'.
|
|
92
|
+
* @param offset Distância da borda em pixels. Padrão: 24.
|
|
93
|
+
* @param icon Ícone customizado para o botão. Padrão: CookieOutlined.
|
|
94
|
+
* @param tooltip Texto do tooltip exibido ao passar o mouse. Padrão: 'Gerenciar Preferências de Cookies'.
|
|
95
|
+
* @param FabProps Props adicionais para o componente Fab do MUI.
|
|
96
|
+
* @param hideWhenConsented Se verdadeiro, esconde o botão após consentimento. Padrão: false.
|
|
97
|
+
*
|
|
98
|
+
* @returns JSX.Element | null
|
|
99
|
+
*/
|
|
40
100
|
declare function FloatingPreferencesButton({ position, offset, icon, tooltip, FabProps, hideWhenConsented, }: Readonly<FloatingPreferencesButtonProps>): react_jsx_runtime.JSX.Element | null;
|
|
41
101
|
|
|
42
102
|
/**
|
|
@@ -62,6 +122,25 @@ interface ConsentState {
|
|
|
62
122
|
}
|
|
63
123
|
/**
|
|
64
124
|
* Textos utilizados na interface de consentimento.
|
|
125
|
+
*
|
|
126
|
+
* @remarks
|
|
127
|
+
* Esta interface define todos os textos exibidos na UI do banner e modal de consentimento.
|
|
128
|
+
* Os campos opcionais permitem adequação à ANPD e customização conforme necessidade do projeto.
|
|
129
|
+
*
|
|
130
|
+
* @property bannerMessage - Mensagem principal exibida no banner de consentimento.
|
|
131
|
+
* @property acceptAll - Texto do botão para aceitar todos os cookies.
|
|
132
|
+
* @property declineAll - Texto do botão para recusar todos os cookies.
|
|
133
|
+
* @property preferences - Texto do botão para abrir preferências.
|
|
134
|
+
* @property policyLink - (Opcional) Link para política de privacidade.
|
|
135
|
+
* @property modalTitle - Título do modal de preferências.
|
|
136
|
+
* @property modalIntro - Texto introdutório do modal.
|
|
137
|
+
* @property save - Texto do botão para salvar preferências.
|
|
138
|
+
* @property necessaryAlwaysOn - Texto explicativo para cookies necessários.
|
|
139
|
+
* @property controllerInfo - (Opcional) Informação sobre o controlador dos dados.
|
|
140
|
+
* @property dataTypes - (Opcional) Tipos de dados coletados.
|
|
141
|
+
* @property thirdPartySharing - (Opcional) Compartilhamento com terceiros.
|
|
142
|
+
* @property userRights - (Opcional) Direitos do titular dos dados.
|
|
143
|
+
* @property contactInfo - (Opcional) Informações de contato do DPO.
|
|
65
144
|
*/
|
|
66
145
|
interface ConsentTexts {
|
|
67
146
|
bannerMessage: string;
|
|
@@ -142,8 +221,44 @@ interface ConsentContextValue {
|
|
|
142
221
|
resetConsent: () => void;
|
|
143
222
|
}
|
|
144
223
|
|
|
224
|
+
/**
|
|
225
|
+
* Provider principal do contexto de consentimento LGPD.
|
|
226
|
+
*
|
|
227
|
+
* Gerencia o estado global de consentimento de cookies, preferências do usuário,
|
|
228
|
+
* textos customizáveis e integração com SSR. Permite customização do modal de preferências,
|
|
229
|
+
* callbacks externos e opções de cookie.
|
|
230
|
+
*
|
|
231
|
+
* @param props Propriedades do ConsentProvider (ver ConsentProviderProps)
|
|
232
|
+
* @returns JSX.Element
|
|
233
|
+
*
|
|
234
|
+
* @example
|
|
235
|
+
* <ConsentProvider>
|
|
236
|
+
* <App />
|
|
237
|
+
* </ConsentProvider>
|
|
238
|
+
*/
|
|
145
239
|
declare function ConsentProvider({ initialState, texts: textsProp, theme, PreferencesModalComponent, preferencesModalProps, disableAutomaticModal, hideBranding, onConsentGiven, onPreferencesSaved, cookie: cookieOpts, children, }: Readonly<ConsentProviderProps>): react_jsx_runtime.JSX.Element;
|
|
146
240
|
|
|
241
|
+
/**
|
|
242
|
+
* Hook principal para acessar e manipular o estado de consentimento de cookies.
|
|
243
|
+
*
|
|
244
|
+
* Retorna o estado atual do consentimento, preferências do usuário e métodos para
|
|
245
|
+
* aceitar, recusar, modificar ou resetar consentimentos. Ideal para integração
|
|
246
|
+
* com componentes customizados ou lógica de negócio.
|
|
247
|
+
*
|
|
248
|
+
* @returns {ConsentContextValue} Estado e ações do consentimento.
|
|
249
|
+
*
|
|
250
|
+
* @example
|
|
251
|
+
* const {
|
|
252
|
+
* consented,
|
|
253
|
+
* preferences,
|
|
254
|
+
* acceptAll,
|
|
255
|
+
* rejectAll,
|
|
256
|
+
* setPreference,
|
|
257
|
+
* openPreferences,
|
|
258
|
+
* closePreferences,
|
|
259
|
+
* resetConsent,
|
|
260
|
+
* } = useConsent();
|
|
261
|
+
*/
|
|
147
262
|
declare function useConsent(): ConsentContextValue;
|
|
148
263
|
/**
|
|
149
264
|
* Hook para acessar textos customizados do ConsentProvider.
|
|
@@ -162,14 +277,27 @@ declare function ConsentGate(props: Readonly<{
|
|
|
162
277
|
}>): react_jsx_runtime.JSX.Element | null;
|
|
163
278
|
|
|
164
279
|
/**
|
|
165
|
-
* Carrega um script
|
|
166
|
-
*
|
|
280
|
+
* Carrega dinamicamente um script externo após o consentimento do usuário ser finalizado.
|
|
281
|
+
*
|
|
282
|
+
* Aguarda até que o usuário tome uma decisão definitiva (banner fechado ou preferências salvas)
|
|
283
|
+
* antes de inserir o script na página. Permite restringir o carregamento por categoria de consentimento.
|
|
284
|
+
*
|
|
285
|
+
* @param id - Identificador único do elemento script a ser criado.
|
|
286
|
+
* @param src - URL do script externo.
|
|
287
|
+
* @param category - Categoria de consentimento exigida para o script ('analytics', 'marketing' ou null).
|
|
288
|
+
* @param attrs - Atributos adicionais a serem aplicados ao elemento script.
|
|
289
|
+
* @returns Promise que resolve quando o script é carregado ou rejeita se o consentimento não for dado.
|
|
167
290
|
*/
|
|
168
291
|
declare function loadScript(id: string, src: string, category?: 'analytics' | 'marketing' | null, attrs?: Record<string, string>): Promise<void>;
|
|
169
292
|
|
|
170
293
|
/**
|
|
171
|
-
* Tema padrão
|
|
172
|
-
*
|
|
294
|
+
* Tema padrão utilizado pelos componentes de consentimento da biblioteca.
|
|
295
|
+
*
|
|
296
|
+
* Inclui configurações de cores, tipografia e estilos para componentes Material-UI,
|
|
297
|
+
* garantindo aparência consistente e acessível conforme guidelines LGPD.
|
|
298
|
+
*
|
|
299
|
+
* @remarks
|
|
300
|
+
* Pode ser sobrescrito via ThemeProvider externo se necessário.
|
|
173
301
|
*/
|
|
174
302
|
declare const defaultConsentTheme: _mui_material_styles.Theme;
|
|
175
303
|
|
package/dist/index.js
CHANGED
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
useConsent,
|
|
7
7
|
useConsentHydration,
|
|
8
8
|
useConsentTexts
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-V54LZT2Q.js";
|
|
10
10
|
|
|
11
11
|
// src/components/CookieBanner.tsx
|
|
12
12
|
import Button from "@mui/material/Button";
|
|
@@ -115,15 +115,15 @@ function CookieBanner({
|
|
|
115
115
|
}
|
|
116
116
|
|
|
117
117
|
// src/components/FloatingPreferencesButton.tsx
|
|
118
|
+
import CookieOutlined from "@mui/icons-material/CookieOutlined";
|
|
118
119
|
import Fab from "@mui/material/Fab";
|
|
119
120
|
import Tooltip from "@mui/material/Tooltip";
|
|
120
|
-
import SettingsIcon from "@mui/icons-material/Settings";
|
|
121
121
|
import { useTheme } from "@mui/material/styles";
|
|
122
122
|
import { jsx as jsx2 } from "react/jsx-runtime";
|
|
123
123
|
function FloatingPreferencesButton({
|
|
124
124
|
position = "bottom-right",
|
|
125
125
|
offset = 24,
|
|
126
|
-
icon = /* @__PURE__ */ jsx2(
|
|
126
|
+
icon = /* @__PURE__ */ jsx2(CookieOutlined, {}),
|
|
127
127
|
tooltip,
|
|
128
128
|
FabProps,
|
|
129
129
|
hideWhenConsented = false
|
|
@@ -138,7 +138,6 @@ function FloatingPreferencesButton({
|
|
|
138
138
|
const styles = {
|
|
139
139
|
position: "fixed",
|
|
140
140
|
zIndex: 1200
|
|
141
|
-
// Abaixo do modal mas acima do conteúdo
|
|
142
141
|
};
|
|
143
142
|
switch (position) {
|
|
144
143
|
case "bottom-left":
|
package/package.json
CHANGED