@pipelinesolucoes/notification 1.0.0-beta.0

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.
Files changed (43) hide show
  1. package/LICENSE +78 -0
  2. package/README.md +166 -0
  3. package/dist/app/layout.d.ts +6 -0
  4. package/dist/app/layout.js +19 -0
  5. package/dist/app/layout.js.map +1 -0
  6. package/dist/app/page.d.ts +1 -0
  7. package/dist/app/page.js +6 -0
  8. package/dist/app/page.js.map +1 -0
  9. package/dist/components/NotificationStyled.d.ts +8 -0
  10. package/dist/components/NotificationStyled.js +45 -0
  11. package/dist/components/NotificationStyled.js.map +1 -0
  12. package/dist/components/TermsAndPrivacyBar.d.ts +16 -0
  13. package/dist/components/TermsAndPrivacyBar.js +135 -0
  14. package/dist/components/TermsAndPrivacyBar.js.map +1 -0
  15. package/dist/components/TermsAndPrivacyCard.d.ts +57 -0
  16. package/dist/components/TermsAndPrivacyCard.js +171 -0
  17. package/dist/components/TermsAndPrivacyCard.js.map +1 -0
  18. package/dist/index.d.ts +6 -0
  19. package/dist/index.js +4 -0
  20. package/dist/index.js.map +1 -0
  21. package/dist/pages/_app.d.ts +2 -0
  22. package/dist/pages/_app.js +20 -0
  23. package/dist/pages/_app.js.map +1 -0
  24. package/dist/pages/_document.d.ts +9 -0
  25. package/dist/pages/_document.js +33 -0
  26. package/dist/pages/_document.js.map +1 -0
  27. package/dist/theme.d.ts +27 -0
  28. package/dist/theme.js +230 -0
  29. package/dist/theme.js.map +1 -0
  30. package/dist/tsconfig.tsbuildinfo +1 -0
  31. package/dist/types/TermsAndPrivacyProps.d.ts +21 -0
  32. package/dist/types/TermsAndPrivacyProps.js +2 -0
  33. package/dist/types/TermsAndPrivacyProps.js.map +1 -0
  34. package/dist/types/style/BorderProps.d.ts +5 -0
  35. package/dist/types/style/BorderProps.js +2 -0
  36. package/dist/types/style/BorderProps.js.map +1 -0
  37. package/dist/types/style/ColorProps.d.ts +7 -0
  38. package/dist/types/style/ColorProps.js +7 -0
  39. package/dist/types/style/ColorProps.js.map +1 -0
  40. package/dist/types/style/LayoutProps.d.ts +6 -0
  41. package/dist/types/style/LayoutProps.js +2 -0
  42. package/dist/types/style/LayoutProps.js.map +1 -0
  43. package/package.json +56 -0
package/LICENSE ADDED
@@ -0,0 +1,78 @@
1
+ LICENÇA COMERCIAL – PIPELINE SOLUÇÕES
2
+
3
+ Copyright (c) Pipeline Soluções
4
+
5
+ Este software é de propriedade da Pipeline Soluções e é disponibilizado
6
+ publicamente para instalação e avaliação. O uso comercial está sujeito
7
+ a licenciamento conforme os termos abaixo.
8
+
9
+ ────────────────────────────────────────────────────────────
10
+
11
+ 1. CONCESSÃO DE LICENÇA
12
+
13
+ A Pipeline Soluções concede ao Licenciado uma licença não exclusiva,
14
+ intransferível e revogável para utilizar este software em 1 (um)
15
+ projeto comercial, mediante aquisição de licença válida.
16
+
17
+ Projeto é definido como uma única aplicação em produção, incluindo
18
+ seus ambientes de desenvolvimento, homologação e staging.
19
+
20
+ ────────────────────────────────────────────────────────────
21
+
22
+ 2. USO PERMITIDO
23
+
24
+ É permitido:
25
+ - Instalar e avaliar o software livremente.
26
+ - Utilizar o software em projetos comerciais mediante licença válida.
27
+ - Modificar o código para uso interno no projeto licenciado.
28
+
29
+ ────────────────────────────────────────────────────────────
30
+
31
+ 3. USO PROIBIDO
32
+
33
+ É expressamente proibido:
34
+ - Utilizar o software em projetos comerciais sem licença válida.
35
+ - Redistribuir, sublicenciar, vender ou alugar este software,
36
+ integralmente ou em partes.
37
+ - Publicar o software como parte de outra biblioteca, framework
38
+ ou produto concorrente.
39
+ - Remover ou alterar avisos de copyright ou licenciamento.
40
+
41
+ ────────────────────────────────────────────────────────────
42
+
43
+ 4. SUPORTE E ATUALIZAÇÕES
44
+
45
+ A aquisição da licença pode incluir suporte básico e atualizações,
46
+ conforme acordado no momento da compra. A Pipeline Soluções não é
47
+ obrigada a fornecer suporte gratuito.
48
+
49
+ ────────────────────────────────────────────────────────────
50
+
51
+ 5. GARANTIAS E RESPONSABILIDADE
52
+
53
+ Este software é fornecido "NO ESTADO EM QUE SE ENCONTRA",
54
+ sem garantias de qualquer tipo, expressas ou implícitas.
55
+ Em nenhuma hipótese a Pipeline Soluções será responsabilizada
56
+ por danos diretos ou indiretos decorrentes do uso do software.
57
+
58
+ ────────────────────────────────────────────────────────────
59
+
60
+ 6. RESCISÃO
61
+
62
+ Esta licença será automaticamente rescindida em caso de violação
63
+ de qualquer um dos termos aqui estabelecidos. Em caso de rescisão,
64
+ o uso do software deverá ser interrompido imediatamente.
65
+
66
+ ────────────────────────────────────────────────────────────
67
+
68
+ 7. CONTATO
69
+
70
+ Para aquisição de licença comercial ou esclarecimento de dúvidas:
71
+
72
+ E-mail: contato@pipelinesolucoes.com.br
73
+ Site: https://www.pipelinesolucoes.com.br
74
+
75
+ ────────────────────────────────────────────────────────────
76
+
77
+ Ao utilizar este software em um projeto comercial, você declara ter
78
+ lido, compreendido e concordado com os termos desta licença.
package/README.md ADDED
@@ -0,0 +1,166 @@
1
+ # @pipelinesolucoes/notification
2
+
3
+ Biblioteca de **componentes de botão para React**, desenvolvida para **padronização visual**, **reutilização** e **escalabilidade** em aplicações modernas e design systems.
4
+
5
+ Este pacote faz parte do ecossistema de componentes da **Pipeline Soluções**.
6
+
7
+ ---
8
+
9
+ ## 📦 Componentes disponíveis
10
+
11
+ A biblioteca inclui os seguintes componentes:
12
+
13
+ - **TermsAndPrivacyBar**
14
+
15
+
16
+ - **TermsAndPrivacyCard**
17
+ Componente que renderiza um card flutuante (fixed) para consentimento de cookies, exibindo links para **Termos de Uso** e **Política de Privacidade** e dois botões:
18
+ **Cancelar** (define cookieConsent como "false") e **Ok** (define cookieConsent como "true").
19
+
20
+ ---
21
+
22
+ ## ✨ Características
23
+
24
+ - ✅ Pronto para produção
25
+ - 🎨 Integração com Material UI
26
+ - ♿ Foco em acessibilidade
27
+ - 🧩 Ideal para design systems
28
+ - 🔄 Reutilizável em múltiplos projetos
29
+ - 📦 Publicado no npm com versionamento semântico
30
+ - 🔐 Preparado para licenciamento por projeto
31
+
32
+ ---
33
+
34
+ ## 📥 Instalação
35
+
36
+ ```bash
37
+ npm install @pipelinesolucoes/notification
38
+ ou
39
+ yarn add @pipelinesolucoes/notification
40
+
41
+ ```
42
+
43
+ ## 🚀 Uso básico
44
+
45
+ ```
46
+ import { Actionnotification } from "@pipelinesolucoes/notification";
47
+
48
+ export function Example() {
49
+ return (
50
+ <Actionnotification variant="contained" color="primary">
51
+ Ação
52
+ </Actionnotification>
53
+ );
54
+ }
55
+ ```
56
+
57
+ ## 🧩 Uso em Design Systems
58
+
59
+ Este pacote foi projetado para:
60
+
61
+ - padronização de ações e navegação
62
+ - reutilização entre projetos
63
+ - evolução incremental de UI
64
+ - integração com temas e tokens de design
65
+
66
+ Pode ser utilizado de forma isolada ou como parte de um design system maior.
67
+
68
+ ---
69
+
70
+ ## 🔐 Licença de uso comercial
71
+
72
+ Este pacote é publicamente acessível no npm, porém:
73
+
74
+ O uso comercial é licenciado por projeto.
75
+
76
+ **O que isso significa?**
77
+
78
+ O pacote pode ser instalado e avaliado livremente.
79
+
80
+ Para uso em projetos comerciais, é necessária a aquisição de uma licença válida por projeto.
81
+
82
+ **Definição de projeto**
83
+
84
+ Projeto = 1 aplicação em produção
85
+ (ex.: site institucional, sistema interno ou aplicação SaaS).
86
+ Ambientes de desenvolvimento, staging e homologação estão incluídos no mesmo projeto.
87
+
88
+ ---
89
+
90
+ ## 📄 O que a licença inclui
91
+
92
+ ✔ Uso em 1 projeto
93
+ ✔ Atualizações enquanto a licença estiver ativa
94
+ ✔ Correções de bugs
95
+ ✔ Suporte básico
96
+ ✔ Evolução contínua do pacote
97
+
98
+ ---
99
+
100
+ ## ⚙️ Configuração de licença (mock)
101
+
102
+ Após adquirir a licença, você receberá um Project ID e uma License Key.
103
+
104
+ No projeto, configure as variáveis de ambiente:
105
+
106
+ PIPESOL_PROJECT_ID=meu-projeto
107
+ PIPESOL_notification_LICENSE_KEY=SUA-LICENSE-KEY-AQUI
108
+
109
+
110
+ Atualmente, a validação é local e não bloqueante, servindo como preparação para automação futura.
111
+
112
+ ---
113
+
114
+ ## 🔁 Versionamento
115
+
116
+ Este projeto segue Semantic Versioning (SemVer):
117
+
118
+ 1.0.1 – Correção de bugs
119
+
120
+ 1.1.0 – Nova funcionalidade compatível
121
+
122
+ 2.0.0 – Mudança incompatível
123
+
124
+ 1.0.0-beta.x – Versões beta
125
+
126
+ Para listar as versões publicadas:
127
+
128
+ ```
129
+ npm view @pipelinesolucoes/notification versions --json
130
+ ```
131
+
132
+ ## 🚀 Processo de publicação
133
+
134
+ Este pacote é publicado exclusivamente via CI/CD utilizando GitHub Actions.
135
+
136
+ Características do processo:
137
+
138
+ - Publicação apenas por tags Git (vX.Y.Z)
139
+ - Autenticação via Trusted Publishing (OIDC)
140
+ - Nenhum token npm armazenado
141
+ - Tokens clássicos desabilitados
142
+ - Autenticação em dois fatores (2FA) obrigatória
143
+ - Publicações seguras, rastreáveis e reprodutíveis
144
+
145
+ ---
146
+
147
+ ## 📬 Aquisição de licença e contato
148
+
149
+ Para adquirir uma licença comercial ou obter mais informações:
150
+
151
+ 📧 contato@pipelinesolucoes.com.br
152
+ 🌐 https://www.pipelinesolucoes.com.br
153
+
154
+ ---
155
+
156
+ ## 📄 Licença
157
+
158
+ Copyright © Pipeline Soluções
159
+ Este software está sujeito a licença comercial por projeto.
160
+ Consulte o arquivo LICENSE para mais informações.
161
+
162
+ ```
163
+ Se você quiser, eu também posso gerar agora o **arquivo `LICENSE`** (texto curto e claro) no mesmo padrão profissional pra você copiar e colar como `LICENSE` no repo.
164
+ ```
165
+
166
+
@@ -0,0 +1,6 @@
1
+ import type { Metadata } from "next";
2
+ import "./globals.css";
3
+ export declare const metadata: Metadata;
4
+ export default function RootLayout({ children, }: Readonly<{
5
+ children: React.ReactNode;
6
+ }>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,19 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { Geist, Geist_Mono } from "next/font/google";
3
+ import "./globals.css";
4
+ const geistSans = Geist({
5
+ variable: "--font-geist-sans",
6
+ subsets: ["latin"],
7
+ });
8
+ const geistMono = Geist_Mono({
9
+ variable: "--font-geist-mono",
10
+ subsets: ["latin"],
11
+ });
12
+ export const metadata = {
13
+ title: "Create Next App",
14
+ description: "Generated by create next app",
15
+ };
16
+ export default function RootLayout({ children, }) {
17
+ return (_jsx("html", { lang: "en", children: _jsx("body", { className: `${geistSans.variable} ${geistMono.variable}`, children: children }) }));
18
+ }
19
+ //# sourceMappingURL=layout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layout.js","sourceRoot":"","sources":["../../src/app/layout.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,eAAe,CAAC;AAEvB,MAAM,SAAS,GAAG,KAAK,CAAC;IACtB,QAAQ,EAAE,mBAAmB;IAC7B,OAAO,EAAE,CAAC,OAAO,CAAC;CACnB,CAAC,CAAC;AAEH,MAAM,SAAS,GAAG,UAAU,CAAC;IAC3B,QAAQ,EAAE,mBAAmB;IAC7B,OAAO,EAAE,CAAC,OAAO,CAAC;CACnB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,QAAQ,GAAa;IAChC,KAAK,EAAE,iBAAiB;IACxB,WAAW,EAAE,8BAA8B;CAC5C,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,EACjC,QAAQ,GAGR;IACA,OAAO,CACL,eAAM,IAAI,EAAC,IAAI,YACb,eAAM,SAAS,EAAE,GAAG,SAAS,CAAC,QAAQ,IAAI,SAAS,CAAC,QAAQ,EAAE,YAC3D,QAAQ,GACJ,GACF,CACR,CAAC;AACJ,CAAC"}
@@ -0,0 +1 @@
1
+ export default function Home(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,6 @@
1
+ "use client";
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ export default function Home() {
4
+ return (_jsx("p", { children: "teste" }));
5
+ }
6
+ //# sourceMappingURL=page.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"page.js","sourceRoot":"","sources":["../../src/app/page.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,MAAM,CAAC,OAAO,UAAU,IAAI;IAC1B,OAAO,CACL,gCAAY,CACb,CAAC;AACJ,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { BorderProps } from "@/types/style/BorderProps";
2
+ import { ColorProps } from "../types/style/ColorProps";
3
+ interface ButtonProps extends ColorProps, BorderProps {
4
+ }
5
+ export declare const BUTTON_STYLE_FORWARD_PROPS: (keyof ButtonProps)[];
6
+ export declare const NotificationButton: import("@emotion/styled").StyledComponent<import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme> & ButtonProps, import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, {}>;
7
+ export declare const NotificationLink: import("@emotion/styled").StyledComponent<import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme> & ColorProps, import("react").DetailedHTMLProps<import("react").AnchorHTMLAttributes<HTMLAnchorElement>, HTMLAnchorElement>, {}>;
8
+ export {};
@@ -0,0 +1,45 @@
1
+ import { COLOR_STYLE_FORWARD_PROPS } from "../types/style/ColorProps";
2
+ import { styled } from "@mui/material";
3
+ export const BUTTON_STYLE_FORWARD_PROPS = [
4
+ 'background',
5
+ 'colorText',
6
+ 'backgroundHover',
7
+ 'colorHover',
8
+ 'borderRadius',
9
+ 'border',
10
+ 'boxShadow',
11
+ ];
12
+ export const NotificationButton = styled('button', { shouldForwardProp: (prop) => !BUTTON_STYLE_FORWARD_PROPS.includes(prop), })(({ background, colorText, backgroundHover, colorHover, borderRadius = '0', border = 'none', boxShadow = 'none' }) => ({
13
+ backgroundColor: background,
14
+ color: colorText,
15
+ padding: '8px 24px',
16
+ border: border,
17
+ cursor: 'pointer',
18
+ margin: '0 0 0 20px',
19
+ borderRadius: borderRadius,
20
+ boxShadow: boxShadow,
21
+ '&:hover': {
22
+ backgroundColor: backgroundHover,
23
+ color: colorHover,
24
+ },
25
+ }));
26
+ export const NotificationLink = styled('a', {
27
+ shouldForwardProp: (prop) => !COLOR_STYLE_FORWARD_PROPS.includes(prop),
28
+ })(({ background, colorText, backgroundHover, colorHover }) => ({
29
+ width: 'auto',
30
+ cursor: 'pointer',
31
+ textDecoration: 'none',
32
+ textTransform: 'none',
33
+ textAlign: 'center',
34
+ boxShadow: 'none',
35
+ backgroundColor: background,
36
+ color: colorText,
37
+ padding: '0',
38
+ margin: '0',
39
+ '&:hover': {
40
+ backgroundColor: backgroundHover,
41
+ borderBottom: `1px solid ${colorHover}`,
42
+ color: colorHover,
43
+ },
44
+ }));
45
+ //# sourceMappingURL=NotificationStyled.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NotificationStyled.js","sourceRoot":"","sources":["../../src/components/NotificationStyled.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,yBAAyB,EAAc,MAAM,2BAA2B,CAAC;AAClF,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAMvC,MAAM,CAAC,MAAM,0BAA0B,GAA0B;IAC/D,YAAY;IACZ,WAAW;IACX,iBAAiB;IACjB,YAAY;IACZ,cAAc;IACd,QAAQ;IACR,WAAW;CACZ,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG,MAAM,CAAC,QAAQ,EAC/C,EAAE,iBAAiB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,0BAA0B,CAAC,QAAQ,CAAC,IAAyB,CAAC,GAAG,CAAC,CACnF,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,eAAe,EAAE,UAAU,EAClE,YAAY,GAAG,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,SAAS,GAAG,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;IAE/D,eAAe,EAAE,UAAU;IAC3B,KAAK,EAAE,SAAS;IAChB,OAAO,EAAE,UAAU;IACnB,MAAM,EAAE,MAAM;IACd,MAAM,EAAE,SAAS;IACjB,MAAM,EAAE,YAAY;IACpB,YAAY,EAAE,YAAY;IAC1B,SAAS,EAAE,SAAS;IAEpB,SAAS,EAAE;QACP,eAAe,EAAE,eAAe;QAChC,KAAK,EAAE,UAAU;KACpB;CACJ,CAAC,CAAC,CAAC;AAGJ,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAC,GAAG,EAAE;IAC1C,iBAAiB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,yBAAyB,CAAC,QAAQ,CAAC,IAAwB,CAAC;CAC3F,CAAC,CAAa,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,eAAe,EAAE,UAAU,EAAC,EAAE,EAAE,CAAC,CAAC;IACzE,KAAK,EAAE,MAAM;IACb,MAAM,EAAE,SAAS;IACjB,cAAc,EAAE,MAAM;IACtB,aAAa,EAAE,MAAM;IACrB,SAAS,EAAE,QAAQ;IACnB,SAAS,EAAE,MAAM;IACjB,eAAe,EAAE,UAAU;IAC3B,KAAK,EAAE,SAAS;IAChB,OAAO,EAAE,GAAG;IACZ,MAAM,EAAE,GAAG;IAEX,SAAS,EAAE;QACT,eAAe,EAAE,eAAe;QAChC,YAAY,EAAE,aAAa,UAAU,EAAE;QACvC,KAAK,EAAE,UAAU;KAClB;CACF,CAAC,CAAC,CAAC"}
@@ -0,0 +1,16 @@
1
+ interface TermsAndPrivacyBarProps {
2
+ url_termo_uso: string;
3
+ url_politica_privacidade: string;
4
+ background_color?: string;
5
+ color?: string;
6
+ background_color_button_ok?: string;
7
+ color_button_ok?: string;
8
+ background_color_button_cancel?: string;
9
+ color_button_cancel?: string;
10
+ background_color_link?: string;
11
+ color_link?: string;
12
+ background_color_hover_link?: string;
13
+ color_hover_link?: string;
14
+ }
15
+ declare const TermsAndPrivacyBar: React.FC<TermsAndPrivacyBarProps>;
16
+ export default TermsAndPrivacyBar;
@@ -0,0 +1,135 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { useEffect, useState } from 'react';
4
+ import { Box, styled } from '@mui/material';
5
+ import { parseCookies, setCookie } from 'nookies';
6
+ const Container = styled('div', {
7
+ shouldForwardProp: (prop) => ![
8
+ 'background_color',
9
+ 'show'
10
+ ].includes(prop)
11
+ })(({ show, background_color }) => ({
12
+ position: 'fixed',
13
+ bottom: 0,
14
+ width: '100%',
15
+ backgroundColor: background_color,
16
+ display: show ? 'block' : 'none',
17
+ zIndex: 4000,
18
+ }));
19
+ const BotaoNotificationBar = styled('button', {
20
+ shouldForwardProp: (prop) => ![
21
+ 'background_color',
22
+ 'color',
23
+ ].includes(prop),
24
+ })(({ theme, background_color, color }) => {
25
+ var _a, _b, _c, _d;
26
+ return ({
27
+ backgroundColor: background_color,
28
+ color: color,
29
+ padding: '8px 24px',
30
+ border: 'none',
31
+ cursor: 'pointer',
32
+ margin: '0 0 0 20px',
33
+ borderRadius: theme.shape.borderRadius,
34
+ fontFamily: theme.typography.fontFamily,
35
+ fontWeight: 600,
36
+ fontStyle: (_a = theme.typography.body1) === null || _a === void 0 ? void 0 : _a.fontStyle,
37
+ lineHeight: (_b = theme.typography.body1) === null || _b === void 0 ? void 0 : _b.lineHeight,
38
+ letterSpacing: (_c = theme.typography.body1) === null || _c === void 0 ? void 0 : _c.letterSpacing,
39
+ fontSize: (_d = theme.typography.body1) === null || _d === void 0 ? void 0 : _d.fontSize,
40
+ });
41
+ });
42
+ const LinkStyled = styled('a', {
43
+ shouldForwardProp: (prop) => ![
44
+ 'background_color',
45
+ 'background_color_hover',
46
+ 'color',
47
+ 'color_hover'
48
+ ].includes(prop),
49
+ })(({ background_color, background_color_hover, color, color_hover, }) => ({
50
+ width: 'auto',
51
+ cursor: 'pointer',
52
+ textDecoration: 'none',
53
+ textTransform: 'none',
54
+ textAlign: 'center',
55
+ boxShadow: 'none',
56
+ backgroundColor: background_color,
57
+ color: color,
58
+ padding: '0',
59
+ margin: '0',
60
+ '&:hover': {
61
+ backgroundColor: background_color_hover,
62
+ borderBottom: `1px solid ${color_hover}`,
63
+ color: color_hover,
64
+ },
65
+ }));
66
+ const Content = styled('div')({
67
+ display: 'flex',
68
+ flexDirection: 'row',
69
+ justifyContent: 'center',
70
+ alignItems: 'center',
71
+ padding: '24px',
72
+ width: '100%',
73
+ boxSizing: 'border-box',
74
+ flexWrap: 'wrap',
75
+ });
76
+ const AreaTexto = styled('div', {
77
+ shouldForwardProp: (prop) => ![
78
+ 'color',
79
+ ].includes(prop),
80
+ })(({ theme, color }) => {
81
+ var _a, _b, _c, _d, _e, _f;
82
+ return ({
83
+ color: color,
84
+ flexGrow: 1,
85
+ fontFamily: theme.typography.fontFamily,
86
+ fontWeight: (_a = theme.typography.body1) === null || _a === void 0 ? void 0 : _a.fontWeight,
87
+ fontStyle: (_b = theme.typography.body1) === null || _b === void 0 ? void 0 : _b.fontStyle,
88
+ lineHeight: (_c = theme.typography.body1) === null || _c === void 0 ? void 0 : _c.lineHeight,
89
+ letterSpacing: (_d = theme.typography.body1) === null || _d === void 0 ? void 0 : _d.letterSpacing,
90
+ fontSize: (_e = theme.typography.body1) === null || _e === void 0 ? void 0 : _e.fontSize,
91
+ margin: (_f = theme.typography.body1) === null || _f === void 0 ? void 0 : _f.margin,
92
+ // Breakpoints para diferentes larguras de tela
93
+ [theme.breakpoints.down('sm')]: {
94
+ width: '100%'
95
+ },
96
+ [theme.breakpoints.up('sm')]: {
97
+ width: '100%'
98
+ },
99
+ [theme.breakpoints.up('md')]: {
100
+ width: 'calc(100% - 290px)'
101
+ },
102
+ [theme.breakpoints.up('lg')]: {
103
+ width: 'calc(100% - 290px)'
104
+ },
105
+ [theme.breakpoints.up('xl')]: {
106
+ width: 'calc(100% - 290px)'
107
+ },
108
+ });
109
+ });
110
+ const TermsAndPrivacyBar = (props) => {
111
+ const { url_termo_uso, url_politica_privacidade, background_color = 'transparent', color = "#000000", background_color_button_ok = 'transparent', color_button_ok = "#000000", background_color_button_cancel = 'transparent', color_button_cancel = "#000000", background_color_link = 'transparent', color_link = "#000000", background_color_hover_link = 'transparent', color_hover_link = "#000000", } = props;
112
+ const [showNotification, setShowNotification] = useState(false);
113
+ useEffect(() => {
114
+ const cookies = parseCookies();
115
+ const consent = cookies.cookieConsent !== 'true' && cookies.cookieConsent !== 'false';
116
+ setShowNotification(consent);
117
+ }, []);
118
+ const handleAccept = () => {
119
+ setCookie(null, 'cookieConsent', 'true', {
120
+ maxAge: 60 * 60 * 24 * 365,
121
+ path: '/',
122
+ });
123
+ setShowNotification(false);
124
+ };
125
+ const handleReject = () => {
126
+ setCookie(null, 'cookieConsent', 'false', {
127
+ maxAge: 60 * 60 * 24 * 365,
128
+ path: '/',
129
+ });
130
+ setShowNotification(false);
131
+ };
132
+ return (_jsx(Container, { show: showNotification, background_color: background_color, children: _jsxs(Content, { children: [_jsxs(AreaTexto, { color: color, children: ["Este site usa cookies e dados pessoais de acordo com os nossos", ' ', _jsx(LinkStyled, { href: url_termo_uso, background_color: background_color_link, background_color_hover: background_color_hover_link, color: color_link, color_hover: color_hover_link, children: "Termos de Uso" }), " e", ' ', _jsx(LinkStyled, { href: url_politica_privacidade, background_color: background_color_link, background_color_hover: background_color_hover_link, color: color_link, color_hover: color_hover_link, children: "Pol\u00EDtica de Privacidade" }), ". Ao continuar navegando neste site, voc\u00EA declara estar ciente dessas condi\u00E7\u00F5es."] }), _jsxs(Box, { display: "flex", flexDirection: "row", alignItems: "center", justifyContent: "center", sx: { padding: '16px' }, children: [_jsx(BotaoNotificationBar, { background_color: background_color_button_cancel, color: color_button_cancel, onClick: handleReject, children: "Cancelar" }), _jsx(BotaoNotificationBar, { background_color: background_color_button_ok, color: color_button_ok, onClick: handleAccept, children: "Ok" })] })] }) }));
133
+ };
134
+ export default TermsAndPrivacyBar;
135
+ //# sourceMappingURL=TermsAndPrivacyBar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TermsAndPrivacyBar.js","sourceRoot":"","sources":["../../src/components/TermsAndPrivacyBar.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,57 @@
1
+ import { TermsAndPrivacyProps } from '../types/TermsAndPrivacyProps';
2
+ /**
3
+ * Componente que renderiza um card flutuante (fixed) para consentimento de cookies,
4
+ * exibindo links para **Termos de Uso** e **Política de Privacidade** e dois botões:
5
+ * **Cancelar** (define cookieConsent como "false") e **Ok** (define cookieConsent como "true").
6
+ *
7
+ * O card é exibido somente quando o cookie `cookieConsent` ainda **não** foi definido como "true" ou "false"
8
+ * e o usuário já rolou a página (scrollTop > 0), evitando sobreposição no banner inicial.
9
+ * Ao clicar em "Ok" ou "Cancelar", o cookie é persistido por 1 ano e o card é ocultado.
10
+ *
11
+ * @param {string} url_termo_uso URL para a página de Termos de Uso. Obrigatório.
12
+ * @param {string} url_politica_privacidade URL para a página de Política de Privacidade. Obrigatório.
13
+ * @param {string} [background_color='transparent'] Cor de fundo do container do card.
14
+ * @param {string} [color='#000000'] Cor do texto principal.
15
+ * @param {string} [border_radius='0'] Border Radius do card.
16
+ * @param {string} [border='none'] Border do card.
17
+ * @param {string} [background_color_button_ok='transparent'] Cor de fundo do botão "Ok".
18
+ * @param {string} [color_button_ok='#000000'] Cor do texto do botão "Ok".
19
+ * @param {string} [border_radius_button_ok='0'] Border Radius do botão "Ok".
20
+ * @param {string} [background_color_button_cancel='transparent'] Cor de fundo do botão "Cancelar".
21
+ * @param {string} [color_button_cancel='#000000'] Cor do texto do botão "Cancelar".
22
+ * @param {string} [border_radius_button_cancel='0'] Border Radius do botão "Cancelar".
23
+ * @param {string} [background_color_link='transparent'] Cor de fundo dos links ("Termos de Uso" e "Política de Privacidade").
24
+ * @param {string} [color_link='#000000'] Cor do texto dos links.
25
+ * @param {string} [background_color_hover_link='transparent'] Cor de fundo dos links no hover.
26
+ * @param {string} [color_hover_link='#000000'] Cor do texto dos links no hover (e também da borda inferior).
27
+ * @param {import('@mui/material').TypographyProps['variant']} [variantTexto='caption'] Variant do texto principal (Typography).
28
+ * @param {import('@mui/material').TypographyProps['variant']} [variantButton='caption'] Variant do texto dentro dos botões (Typography).
29
+ *
30
+ * @example
31
+ * ```tsx
32
+ * import { TermsAndPrivacyCard } from '@/components/TermsAndPrivacyCard';
33
+ *
34
+ * export default function Example() {
35
+ * return (
36
+ * <TermsAndPrivacyCard
37
+ * url_termo_uso="/termos"
38
+ * url_politica_privacidade="/privacidade"
39
+ * background_color="#ffffff"
40
+ * color="#111111"
41
+ * background_color_button_cancel="#f5f5f5"
42
+ * color_button_cancel="#111111"
43
+ * background_color_button_ok="#1976d2"
44
+ * color_button_ok="#ffffff"
45
+ * background_color_link="transparent"
46
+ * color_link="#1976d2"
47
+ * background_color_hover_link="transparent"
48
+ * color_hover_link="#0d47a1"
49
+ * variantTexto="body2"
50
+ * variantButton="button"
51
+ * />
52
+ * );
53
+ * }
54
+ * ```
55
+ */
56
+ declare const TermsAndPrivacyCard: React.FC<TermsAndPrivacyProps>;
57
+ export default TermsAndPrivacyCard;