@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
@@ -0,0 +1,171 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { useEffect, useState } from 'react';
4
+ import { styled, Typography } from '@mui/material';
5
+ import { parseCookies, setCookie } from 'nookies';
6
+ import { NotificationButton, NotificationLink } from './NotificationStyled';
7
+ const Container = styled('div', {
8
+ shouldForwardProp: (prop) => !['show', 'background', 'borderRadius', 'border'].includes(prop),
9
+ })(({ show, background, borderRadius, border }) => ({
10
+ position: 'fixed',
11
+ bottom: '35px',
12
+ left: '35px',
13
+ background,
14
+ display: show ? 'block' : 'none',
15
+ zIndex: 4000,
16
+ maxWidth: '280px',
17
+ height: 'fit-content',
18
+ borderRadius,
19
+ border: border,
20
+ boxSizing: 'border-box',
21
+ }));
22
+ const Content = styled('div')({
23
+ display: 'flex',
24
+ flexDirection: 'column',
25
+ justifyContent: 'center',
26
+ alignItems: 'center',
27
+ padding: '24px',
28
+ width: '100%',
29
+ boxSizing: 'border-box',
30
+ });
31
+ const ContentButton = styled('div')({
32
+ display: 'flex',
33
+ flexDirection: 'row',
34
+ justifyContent: 'center',
35
+ alignItems: 'center',
36
+ padding: '16px',
37
+ width: '100%',
38
+ boxSizing: 'border-box',
39
+ });
40
+ const getScrollTop = () => {
41
+ var _a, _b;
42
+ if (typeof window === 'undefined')
43
+ return 0;
44
+ return (window.pageYOffset ||
45
+ ((_a = document.documentElement) === null || _a === void 0 ? void 0 : _a.scrollTop) ||
46
+ ((_b = document.body) === null || _b === void 0 ? void 0 : _b.scrollTop) ||
47
+ 0);
48
+ };
49
+ const readConsentCookie = () => {
50
+ const cookies = parseCookies();
51
+ const value = cookies.cookieConsent;
52
+ if (value === 'true' || value === 'false')
53
+ return value;
54
+ return null;
55
+ };
56
+ /**
57
+ * Componente que renderiza um card flutuante (fixed) para consentimento de cookies,
58
+ * exibindo links para **Termos de Uso** e **Política de Privacidade** e dois botões:
59
+ * **Cancelar** (define cookieConsent como "false") e **Ok** (define cookieConsent como "true").
60
+ *
61
+ * O card é exibido somente quando o cookie `cookieConsent` ainda **não** foi definido como "true" ou "false"
62
+ * e o usuário já rolou a página (scrollTop > 0), evitando sobreposição no banner inicial.
63
+ * Ao clicar em "Ok" ou "Cancelar", o cookie é persistido por 1 ano e o card é ocultado.
64
+ *
65
+ * @param {string} url_termo_uso URL para a página de Termos de Uso. Obrigatório.
66
+ * @param {string} url_politica_privacidade URL para a página de Política de Privacidade. Obrigatório.
67
+ * @param {string} [background_color='transparent'] Cor de fundo do container do card.
68
+ * @param {string} [color='#000000'] Cor do texto principal.
69
+ * @param {string} [border_radius='0'] Border Radius do card.
70
+ * @param {string} [border='none'] Border do card.
71
+ * @param {string} [background_color_button_ok='transparent'] Cor de fundo do botão "Ok".
72
+ * @param {string} [color_button_ok='#000000'] Cor do texto do botão "Ok".
73
+ * @param {string} [border_radius_button_ok='0'] Border Radius do botão "Ok".
74
+ * @param {string} [background_color_button_cancel='transparent'] Cor de fundo do botão "Cancelar".
75
+ * @param {string} [color_button_cancel='#000000'] Cor do texto do botão "Cancelar".
76
+ * @param {string} [border_radius_button_cancel='0'] Border Radius do botão "Cancelar".
77
+ * @param {string} [background_color_link='transparent'] Cor de fundo dos links ("Termos de Uso" e "Política de Privacidade").
78
+ * @param {string} [color_link='#000000'] Cor do texto dos links.
79
+ * @param {string} [background_color_hover_link='transparent'] Cor de fundo dos links no hover.
80
+ * @param {string} [color_hover_link='#000000'] Cor do texto dos links no hover (e também da borda inferior).
81
+ * @param {import('@mui/material').TypographyProps['variant']} [variantTexto='caption'] Variant do texto principal (Typography).
82
+ * @param {import('@mui/material').TypographyProps['variant']} [variantButton='caption'] Variant do texto dentro dos botões (Typography).
83
+ *
84
+ * @example
85
+ * ```tsx
86
+ * import { TermsAndPrivacyCard } from '@/components/TermsAndPrivacyCard';
87
+ *
88
+ * export default function Example() {
89
+ * return (
90
+ * <TermsAndPrivacyCard
91
+ * url_termo_uso="/termos"
92
+ * url_politica_privacidade="/privacidade"
93
+ * background_color="#ffffff"
94
+ * color="#111111"
95
+ * background_color_button_cancel="#f5f5f5"
96
+ * color_button_cancel="#111111"
97
+ * background_color_button_ok="#1976d2"
98
+ * color_button_ok="#ffffff"
99
+ * background_color_link="transparent"
100
+ * color_link="#1976d2"
101
+ * background_color_hover_link="transparent"
102
+ * color_hover_link="#0d47a1"
103
+ * variantTexto="body2"
104
+ * variantButton="button"
105
+ * />
106
+ * );
107
+ * }
108
+ * ```
109
+ */
110
+ const TermsAndPrivacyCard = (props) => {
111
+ const { url_termo_uso, url_politica_privacidade, background_color = 'transparent', color = '#000000', border_radius = '0', border = "none", background_color_button_ok = 'transparent', color_button_ok = '#000000', border_radius_button_ok = '0', background_color_button_cancel = 'transparent', color_button_cancel = '#000000', border_radius_button_cancel = '0', background_color_link = 'transparent', color_link = '#000000', background_color_hover_link = 'transparent', color_hover_link = '#000000', variantTexto = 'caption', variantButton = 'caption', } = props;
112
+ const [showNotification, setShowNotification] = useState(false);
113
+ const [cookieConsent, setCookieConsent] = useState(null);
114
+ // Lê o cookie assim que o componente monta
115
+ useEffect(() => {
116
+ setCookieConsent(readConsentCookie());
117
+ }, []);
118
+ useEffect(() => {
119
+ const consentIsNotDefined = cookieConsent === null;
120
+ // Se já existe consentimento, garante que não aparece e não adiciona listeners
121
+ if (!consentIsNotDefined) {
122
+ setShowNotification(false);
123
+ return;
124
+ }
125
+ let rafId = null;
126
+ const updateVisibility = () => {
127
+ const scrollTop = getScrollTop();
128
+ // Só mostra se ainda não tiver consentimento e rolou para baixo
129
+ setShowNotification(consentIsNotDefined && scrollTop > 0);
130
+ };
131
+ const handleScroll = () => {
132
+ if (rafId)
133
+ return;
134
+ rafId = window.requestAnimationFrame(() => {
135
+ rafId = null;
136
+ updateVisibility();
137
+ });
138
+ };
139
+ updateVisibility();
140
+ window.addEventListener('scroll', handleScroll, { passive: true });
141
+ document.addEventListener('scroll', handleScroll, { passive: true, capture: true });
142
+ return () => {
143
+ window.removeEventListener('scroll', handleScroll);
144
+ document.removeEventListener('scroll', handleScroll, { capture: true });
145
+ if (rafId) {
146
+ window.cancelAnimationFrame(rafId);
147
+ rafId = null;
148
+ }
149
+ };
150
+ }, [cookieConsent]);
151
+ const handleAccept = () => {
152
+ setCookie(null, 'cookieConsent', 'true', {
153
+ maxAge: 60 * 60 * 24 * 365,
154
+ path: '/',
155
+ });
156
+ setCookieConsent('true');
157
+ setShowNotification(false);
158
+ };
159
+ const handleReject = () => {
160
+ setCookie(null, 'cookieConsent', 'false', {
161
+ maxAge: 60 * 60 * 24 * 365,
162
+ path: '/',
163
+ });
164
+ setCookieConsent('false');
165
+ setShowNotification(false);
166
+ };
167
+ return (_jsx(Container, { show: showNotification, background: background_color, borderRadius: border_radius, border: border, children: _jsxs(Content, { children: [_jsxs(Typography, { component: "div", variant: variantTexto, color: color, sx: { width: '100%' }, children: ["Este site usa cookies e dados pessoais de acordo com os nossos", ' ', _jsx(NotificationLink, { href: url_termo_uso, background: background_color_link, backgroundHover: background_color_hover_link, colorText: color_link, colorHover: color_hover_link, children: "Termos de Uso" }), ' ', "e", ' ', _jsx(NotificationLink, { href: url_politica_privacidade, background: background_color_link, backgroundHover: background_color_hover_link, colorText: color_link, colorHover: color_hover_link, children: "Pol\u00EDtica de Privacidade" }), ". Ao continuar navegando neste site, voc\u00EA declara estar ciente dessas condi\u00E7\u00F5es."] }), _jsxs(ContentButton, { children: [_jsx(NotificationButton, { background: background_color_button_cancel, backgroundHover: background_color_button_cancel, colorText: color_button_cancel, colorHover: color_button_cancel, borderRadius: border_radius_button_cancel, onClick: handleReject, children: _jsx(Typography, { variant: variantButton, component: "span", children: "Cancelar" }) }), _jsx(NotificationButton, { background: background_color_button_ok, backgroundHover: background_color_button_ok, colorText: color_button_ok, colorHover: color_button_ok, borderRadius: border_radius_button_ok, onClick: handleAccept, children: _jsx(Typography, { variant: variantButton, component: "span", children: "Ok" }) })] })] }) }));
168
+ };
169
+ TermsAndPrivacyCard.displayName = 'TermsAndPrivacyCard';
170
+ export default TermsAndPrivacyCard;
171
+ //# sourceMappingURL=TermsAndPrivacyCard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TermsAndPrivacyCard.js","sourceRoot":"","sources":["../../src/components/TermsAndPrivacyCard.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export { default as TermsAndPrivacyBar } from './components/TermsAndPrivacyBar';
2
+ export { default as TermsAndPrivacyCard } from './components/TermsAndPrivacyCard';
3
+ export type { BorderProps } from "./types/style/BorderProps";
4
+ export type { LayoutProps } from "./types/style/LayoutProps";
5
+ export type { ColorProps } from "./types/style/ColorProps";
6
+ export { COLOR_STYLE_FORWARD_PROPS } from './types/style/ColorProps';
package/dist/index.js ADDED
@@ -0,0 +1,4 @@
1
+ export { default as TermsAndPrivacyBar } from './components/TermsAndPrivacyBar';
2
+ export { default as TermsAndPrivacyCard } from './components/TermsAndPrivacyCard';
3
+ export { COLOR_STYLE_FORWARD_PROPS } from './types/style/ColorProps';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAC,MAAM,iCAAiC,CAAC;AAC/E,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAC,MAAM,kCAAkC,CAAC;AAMjF,OAAO,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { AppProps } from 'next/app';
2
+ export default function MyApp({ Component, pageProps }: AppProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,20 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import * as React from 'react';
3
+ import { ThemeProvider as MuiThemeProvider } from '@mui/material/styles';
4
+ import CssBaseline from '@mui/material/CssBaseline';
5
+ import { CacheProvider } from '@emotion/react';
6
+ import createCache from '@emotion/cache';
7
+ import { theme } from '@/theme';
8
+ // Crie uma instância de cache para o Emotion
9
+ const cache = createCache({ key: 'css', prepend: true });
10
+ export default function MyApp({ Component, pageProps }) {
11
+ React.useEffect(() => {
12
+ // Remove o CSS injetado pelo servidor, se existir
13
+ const jssStyles = document.querySelector('#jss-server-side');
14
+ if (jssStyles && jssStyles.parentElement) {
15
+ jssStyles.parentElement.removeChild(jssStyles);
16
+ }
17
+ }, []);
18
+ return (_jsx(CacheProvider, { value: cache, children: _jsxs(MuiThemeProvider, { theme: theme, children: [_jsx(CssBaseline, {}), _jsx(Component, Object.assign({}, pageProps))] }) }));
19
+ }
20
+ //# sourceMappingURL=_app.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_app.js","sourceRoot":"","sources":["../../src/pages/_app.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,aAAa,IAAI,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACzE,OAAO,WAAW,MAAM,2BAA2B,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,WAAW,MAAM,gBAAgB,CAAC;AAEzC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAGhC,6CAA6C;AAC7C,MAAM,KAAK,GAAG,WAAW,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;AAEzD,MAAM,CAAC,OAAO,UAAU,KAAK,CAAC,EAAE,SAAS,EAAE,SAAS,EAAY;IAC9D,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,kDAAkD;QAClD,MAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC;QAC7D,IAAI,SAAS,IAAI,SAAS,CAAC,aAAa,EAAE,CAAC;YACzC,SAAS,CAAC,aAAa,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QACjD,CAAC;IACH,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,CACL,KAAC,aAAa,IAAC,KAAK,EAAE,KAAK,YACzB,MAAC,gBAAgB,IAAC,KAAK,EAAE,KAAK,aAC5B,KAAC,WAAW,KAAe,EAC3B,KAAC,SAAS,oBAAK,SAAS,EAAe,IACtB,GACL,CACjB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,9 @@
1
+ import Document, { DocumentContext } from "next/document";
2
+ export default class MyDocument extends Document {
3
+ static getInitialProps(ctx: DocumentContext): Promise<{
4
+ styles: import("react/jsx-runtime").JSX.Element;
5
+ html: string;
6
+ head?: Array<import("react").JSX.Element | null>;
7
+ }>;
8
+ render(): import("react/jsx-runtime").JSX.Element;
9
+ }
@@ -0,0 +1,33 @@
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import Document, { Html, Head, Main, NextScript } from "next/document";
3
+ import createCache from "@emotion/cache";
4
+ import createEmotionServer from "@emotion/server/create-instance";
5
+ import { CacheProvider } from "@emotion/react";
6
+ // Função para criar o cache do Emotion
7
+ const createEmotionCache = () => {
8
+ return createCache({ key: "css", prepend: true });
9
+ };
10
+ export default class MyDocument extends Document {
11
+ static async getInitialProps(ctx) {
12
+ const cache = createEmotionCache();
13
+ const { extractCriticalToChunks } = createEmotionServer(cache);
14
+ const originalRenderPage = ctx.renderPage;
15
+ try {
16
+ ctx.renderPage = () => originalRenderPage({
17
+ enhanceApp: (App) => (props) => (_jsx(CacheProvider, { value: cache, children: _jsx(App, Object.assign({}, props)) })),
18
+ });
19
+ const initialProps = await Document.getInitialProps(ctx);
20
+ // Extrai os estilos críticos para renderização no lado do servidor
21
+ const emotionStyles = extractCriticalToChunks(initialProps.html);
22
+ const emotionStyleTags = emotionStyles.styles.map((style) => (_jsx("style", { "data-emotion": `${style.key} ${style.ids.join(" ")}`, dangerouslySetInnerHTML: { __html: style.css } }, style.key)));
23
+ return Object.assign(Object.assign({}, initialProps), { styles: (_jsxs(_Fragment, { children: [initialProps.styles, emotionStyleTags] })) });
24
+ }
25
+ finally {
26
+ // Nada a liberar como no caso do styled-components
27
+ }
28
+ }
29
+ render() {
30
+ return (_jsxs(Html, { lang: "pt", children: [_jsx(Head, {}), _jsxs("body", { children: [_jsx(Main, {}), _jsx(NextScript, {})] })] }));
31
+ }
32
+ }
33
+ //# sourceMappingURL=_document.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_document.js","sourceRoot":"","sources":["../../src/pages/_document.tsx"],"names":[],"mappings":";AAAA,OAAO,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAmB,MAAM,eAAe,CAAC;AACxF,OAAO,WAAW,MAAM,gBAAgB,CAAC;AACzC,OAAO,mBAAmB,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE/C,uCAAuC;AACvC,MAAM,kBAAkB,GAAG,GAAG,EAAE;IAC9B,OAAO,WAAW,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;AACpD,CAAC,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,QAAQ;IAC9C,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,GAAoB;QAC/C,MAAM,KAAK,GAAG,kBAAkB,EAAE,CAAC;QACnC,MAAM,EAAE,uBAAuB,EAAE,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;QAE/D,MAAM,kBAAkB,GAAG,GAAG,CAAC,UAAU,CAAC;QAE1C,IAAI,CAAC;YACH,GAAG,CAAC,UAAU,GAAG,GAAG,EAAE,CACpB,kBAAkB,CAAC;gBACjB,UAAU,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,CAC7B,CACE,KAAC,aAAa,IAAC,KAAK,EAAE,KAAK,YACzB,KAAC,GAAG,oBAAK,KAAK,EAAI,GACJ,CACjB;aACJ,CAAC,CAAC;YAEL,MAAM,YAAY,GAAG,MAAM,QAAQ,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;YAEzD,mEAAmE;YACnE,MAAM,aAAa,GAAG,uBAAuB,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YACjE,MAAM,gBAAgB,GAAG,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAC3D,gCAEgB,GAAG,KAAK,CAAC,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EACnD,uBAAuB,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG,EAAE,IAFzC,KAAK,CAAC,GAAG,CAGd,CACH,CAAC,CAAC;YAEH,uCACK,YAAY,KACf,MAAM,EAAE,CACN,8BACG,YAAY,CAAC,MAAM,EACnB,gBAAgB,IAChB,CACJ,IACD;QACJ,CAAC;gBAAS,CAAC;YACT,mDAAmD;QACrD,CAAC;IACH,CAAC;IAED,MAAM;QACJ,OAAO,CACL,MAAC,IAAI,IAAC,IAAI,EAAC,IAAI,aACb,KAAC,IAAI,KACE,EACP,2BACE,KAAC,IAAI,KAAG,EACR,KAAC,UAAU,KAAG,IACT,IACF,CACR,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,27 @@
1
+ import "@mui/material/styles";
2
+ declare module "@mui/material/styles" {
3
+ interface ButtonOptions {
4
+ background: string;
5
+ backgroundHover: string;
6
+ color: string;
7
+ colorHover: string;
8
+ borderRadius: string;
9
+ boxShadow?: string;
10
+ }
11
+ interface Palette {
12
+ custom: {
13
+ primaryButton: ButtonOptions;
14
+ secondaryButton: ButtonOptions;
15
+ borderColor?: string;
16
+ };
17
+ }
18
+ interface PaletteOptions {
19
+ custom?: {
20
+ primaryButton?: ButtonOptions;
21
+ secondaryButton?: ButtonOptions;
22
+ borderColor?: string;
23
+ };
24
+ }
25
+ }
26
+ declare const theme: import("@mui/material/styles").Theme;
27
+ export { theme };
package/dist/theme.js ADDED
@@ -0,0 +1,230 @@
1
+ import { createTheme } from '@mui/material/styles';
2
+ // src/@types/mui.d.ts (por exemplo)
3
+ import "@mui/material/styles";
4
+ // Definindo o tema personalizado
5
+ const theme = createTheme({
6
+ breakpoints: {
7
+ values: {
8
+ xs: 0, // Extra small devices (phones)
9
+ sm: 600, // Small devices (tablets)
10
+ md: 960, // Medium devices (desktops)
11
+ lg: 1280, // Large devices (large desktops)
12
+ xl: 1920, // Extra large devices (extra large desktops)
13
+ },
14
+ },
15
+ shape: {
16
+ borderRadius: 12,
17
+ },
18
+ palette: {
19
+ background: {
20
+ default: '#f5f5f5', //#f1f0ec
21
+ paper: '#ffffff',
22
+ },
23
+ primary: {
24
+ main: "#000000",
25
+ dark: "#000000",
26
+ light: "white",
27
+ },
28
+ secondary: {
29
+ main: '#c3a86b',
30
+ light: '#c3a86b',
31
+ },
32
+ text: {
33
+ primary: '#000000',
34
+ secondary: '#FEFEFE',
35
+ disabled: '#A9A9A9',
36
+ },
37
+ custom: {
38
+ primaryButton: {
39
+ background: "#000000",
40
+ backgroundHover: '#000000',
41
+ color: '#FEFEFE',
42
+ colorHover: '#FEFEFE',
43
+ borderRadius: "0",
44
+ },
45
+ secondaryButton: {
46
+ background: '#FEFEFE',
47
+ backgroundHover: '#FEFEFE',
48
+ color: "#000000",
49
+ colorHover: '#000000',
50
+ borderRadius: "0",
51
+ },
52
+ borderColor: '#8c8c8c',
53
+ },
54
+ info: {
55
+ main: '#555f56',
56
+ },
57
+ error: {
58
+ main: '#F44336',
59
+ },
60
+ success: {
61
+ main: '#4CAF50',
62
+ },
63
+ grey: {
64
+ "100": '#F2F4F6',
65
+ "200": '#edf3fa',
66
+ "300": '#e2e3e4',
67
+ "400": '#edf3fa',
68
+ '700': '#b9b9b9',
69
+ "900": '#334866',
70
+ },
71
+ },
72
+ typography: {
73
+ fontFamily: "var(--font-inter), Arial, sans-serif",
74
+ h1: {
75
+ fontFamily: "var(--font-cormorant), serif",
76
+ fontStyle: 'normal',
77
+ lineHeight: '1.0',
78
+ margin: 0,
79
+ // *** Semibold Versalete
80
+ fontWeight: 600,
81
+ textTransform: 'uppercase',
82
+ fontVariantCaps: "small-caps",
83
+ fontFeatureSettings: "'smcp' 1, 'c2sc' 1",
84
+ letterSpacing: "0.5px",
85
+ // ***
86
+ // ***
87
+ // 32px → tamanho mínimo no mobile
88
+ // 40px → tamanho máximo no desktop
89
+ // 2.8vw + 0.5rem → crescimento suave e natural no meio do caminho
90
+ // ***
91
+ fontSize: "clamp(30px, 2.8vw + 0.5rem, 42px)",
92
+ },
93
+ h2: {
94
+ fontSize: '18px',
95
+ lineHeight: '1.5',
96
+ margin: 0,
97
+ // *** Ligth Capitular (all caps)
98
+ fontWeight: 300,
99
+ textTransform: "uppercase",
100
+ letterSpacing: "0.14em",
101
+ // ***
102
+ },
103
+ h3: {
104
+ fontFamily: "var(--font-cormorant), serif",
105
+ fontStyle: 'normal',
106
+ lineHeight: '1.5',
107
+ margin: 0,
108
+ // *** Semibold Versalete
109
+ fontWeight: 600,
110
+ textTransform: 'uppercase',
111
+ fontVariantCaps: "small-caps",
112
+ fontFeatureSettings: "'smcp' 1, 'c2sc' 1",
113
+ letterSpacing: "0.2px",
114
+ // ***
115
+ // ***
116
+ // 20px → tamanho mínimo (tablet e mobile)
117
+ // 32px → tamanho máximo (desktop 1281px+)
118
+ // 1.5vw + 1rem → valor fluido que gera os 24px e 28px naturalmente entre 600 e 1280px
119
+ // ***
120
+ fontSize: "clamp(20px, 1.5vw + 1rem, 32px)",
121
+ },
122
+ h4: {
123
+ fontStyle: 'normal',
124
+ lineHeight: '1.5',
125
+ margin: 0,
126
+ fontSize: '20px',
127
+ // *** Semibold Capitular (all caps)
128
+ fontWeight: 600,
129
+ textTransform: "uppercase",
130
+ letterSpacing: "0",
131
+ // ***
132
+ },
133
+ body1: {
134
+ lineHeight: '1.5',
135
+ fontStyle: 'normal',
136
+ // *** Ligth
137
+ fontWeight: 300,
138
+ letterSpacing: "0",
139
+ // ***
140
+ // ***
141
+ // 12px → tamanho mínimo
142
+ // 16px → tamanho máximo
143
+ // 1.2vw + 10px → valor fluido entre esses limites (pode ajustar se quiser mais ou menos responsividade)
144
+ // ***
145
+ fontSize: "clamp(12px, 1.2vw + 10px, 16px)"
146
+ },
147
+ body2: {
148
+ lineHeight: '1.5',
149
+ fontStyle: 'normal',
150
+ // *** Ligth
151
+ fontWeight: 500,
152
+ letterSpacing: "0",
153
+ // ***
154
+ // ***
155
+ // 12px → tamanho mínimo
156
+ // 16px → tamanho máximo
157
+ // 1.2vw + 10px → valor fluido entre esses limites (pode ajustar se quiser mais ou menos responsividade)
158
+ // ***
159
+ fontSize: "clamp(12px, 1.2vw + 10px, 16px)"
160
+ },
161
+ caption: {
162
+ /* tipografia pensada para textos de apoio ou legendas pequenas, normalmente usados abaixo de imagens, gráficos, tabelas ou ícones */
163
+ fontStyle: 'normal',
164
+ lineHeight: '1.5',
165
+ margin: 0,
166
+ fontSize: '12px',
167
+ // *** Ligth Capitular (all caps)
168
+ fontWeight: 300,
169
+ textTransform: "uppercase",
170
+ letterSpacing: "0.14em",
171
+ // ***
172
+ },
173
+ subtitle1: {
174
+ /* tipografia pensada para textos secundários, geralmente usados em legendas, descrições curtas ou suporte visual para títulos.*/
175
+ fontSize: '14px', // Desktop
176
+ lineHeight: '1.5',
177
+ margin: 0,
178
+ fontStyle: 'normal',
179
+ // *** Ligth Capitular (all caps)
180
+ fontWeight: 300,
181
+ textTransform: "uppercase",
182
+ letterSpacing: "0.14em",
183
+ // ***
184
+ },
185
+ subtitle2: {
186
+ fontSize: '18px', // Desktop
187
+ lineHeight: '1.5',
188
+ letterSpacing: '0.08em', /* dá um refinamento capitular */
189
+ fontWeight: 300, /* Light */
190
+ textTransform: 'uppercase',
191
+ margin: 0,
192
+ fontStyle: 'normal',
193
+ '@media (min-width:1281px) and (max-width:1920px)': {
194
+ fontSize: '18px', // Tablet
195
+ },
196
+ '@media (min-width:961px) and (max-width:1280px)': {
197
+ fontSize: '18px', // Tablet
198
+ },
199
+ '@media (min-width:601px) and (max-width:960px)': {
200
+ fontSize: '18px', // Tablet
201
+ },
202
+ '@media (max-width:600px)': {
203
+ fontSize: '18px', // Mobile
204
+ }
205
+ },
206
+ overline: {
207
+ /* para rótulos, categorias, ou textos auxiliares curtos, nunca para parágrafos ou longos blocos de texto. */
208
+ fontFamily: "var(--font-cormorant), serif",
209
+ fontStyle: 'normal',
210
+ lineHeight: '1.0',
211
+ margin: 0,
212
+ // *** Semibold Versalete
213
+ fontWeight: 600,
214
+ textTransform: 'uppercase',
215
+ fontVariantCaps: "small-caps",
216
+ fontFeatureSettings: "'smcp' 1, 'c2sc' 1",
217
+ letterSpacing: "0.5px",
218
+ // ***
219
+ // ***
220
+ // 24px é fixo do mobile até ~1280px
221
+ // Entre 1280–1440px ele deve crescer até ~36px
222
+ // Depois, até 1920px ele precisa chegar a 40px
223
+ // ***
224
+ fontSize: "clamp(24px, 2.5vw, 40px)",
225
+ }
226
+ },
227
+ spacing: 8,
228
+ });
229
+ export { theme };
230
+ //# sourceMappingURL=theme.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme.js","sourceRoot":"","sources":["../src/theme.tsx"],"names":[],"mappings":"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"}