@pipelinesolucoes/form 1.2.0-beta.2 → 1.2.0-beta.20
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/dist/components/ChipList.d.ts +9 -0
- package/dist/components/ChipList.js +60 -0
- package/dist/components/ChipList.js.map +1 -0
- package/dist/components/SelectField.d.ts +73 -0
- package/dist/components/SelectField.js +142 -0
- package/dist/components/SelectField.js.map +1 -0
- package/dist/components/TextFieldPassword.d.ts +140 -43
- package/dist/components/TextFieldPassword.js +159 -98
- package/dist/components/TextFieldPassword.js.map +1 -1
- package/dist/components/TextFieldValidate.d.ts +84 -38
- package/dist/components/TextFieldValidate.js +101 -94
- package/dist/components/TextFieldValidate.js.map +1 -1
- package/dist/components/login/ClickResult.d.ts +11 -0
- package/dist/components/login/ClickResult.js +2 -0
- package/dist/components/login/ClickResult.js.map +1 -0
- package/dist/components/login/FormLogin.d.ts +113 -94
- package/dist/components/login/FormLogin.js +136 -141
- package/dist/components/login/FormLogin.js.map +1 -1
- package/dist/components/login/FormPasswordRecovery.d.ts +97 -89
- package/dist/components/login/FormPasswordRecovery.js +131 -124
- package/dist/components/login/FormPasswordRecovery.js.map +1 -1
- package/dist/components/login/FormSignUp.d.ts +114 -100
- package/dist/components/login/FormSignUp.js +138 -153
- package/dist/components/login/FormSignUp.js.map +1 -1
- package/dist/components/login/StyleLogin.d.ts +14 -0
- package/dist/components/login/StyleLogin.js +57 -0
- package/dist/components/login/StyleLogin.js.map +1 -0
- package/dist/constant.d.ts +11 -0
- package/dist/constant.js +12 -0
- package/dist/constant.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/{components/style → style}/ButtonFormStyled.d.ts +1 -1
- package/dist/{components/style → style}/ButtonFormStyled.js +6 -5
- package/dist/style/ButtonFormStyled.js.map +1 -0
- package/dist/{components/style → style}/LinkFormStyled.d.ts +3 -3
- package/dist/style/LinkFormStyled.js +16 -0
- package/dist/style/LinkFormStyled.js.map +1 -0
- package/dist/style/TextFieldStyle.d.ts +17 -0
- package/dist/style/TextFieldStyle.js +59 -0
- package/dist/style/TextFieldStyle.js.map +1 -0
- package/dist/theme.js +46 -18
- package/dist/theme.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types/FieldProps.d.ts +1 -0
- package/package.json +2 -2
- package/dist/components/style/ButtonFormStyled.js.map +0 -1
- package/dist/components/style/LinkFormStyled.js +0 -15
- package/dist/components/style/LinkFormStyled.js.map +0 -1
|
@@ -2,131 +2,145 @@ import React from 'react';
|
|
|
2
2
|
import { SvgIconProps } from '@mui/material';
|
|
3
3
|
import { ButtonProps } from '../../types/ButtonProps';
|
|
4
4
|
import { FieldProps } from '@/types/FieldProps';
|
|
5
|
-
import { BorderProps, ColorProps } from '@pipelinesolucoes/theme';
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
* - success: define se a ação foi bem sucedida
|
|
9
|
-
* - message: mensagem para exibir no próprio FormLogin
|
|
10
|
-
* - color: cor opcional para a mensagem (caso queira sobrescrever as cores padrão)
|
|
11
|
-
*/
|
|
12
|
-
export interface ClickResult {
|
|
13
|
-
success: boolean;
|
|
14
|
-
message: string;
|
|
15
|
-
color?: string;
|
|
16
|
-
}
|
|
17
|
-
export interface FormSignUpProps extends ColorProps, BorderProps, ButtonProps, FieldProps {
|
|
5
|
+
import { BorderProps, ColorProps, LayoutProps } from '@pipelinesolucoes/theme';
|
|
6
|
+
import { ClickResult } from './ClickResult';
|
|
7
|
+
export interface FormSignUpProps extends ColorProps, BorderProps, ButtonProps, FieldProps, LayoutProps {
|
|
18
8
|
Icon?: React.ElementType<SvgIconProps>;
|
|
19
9
|
titulo?: () => React.ReactElement;
|
|
20
10
|
googleButton: () => React.ReactElement;
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
color_message_erro: string;
|
|
24
|
-
color_link: string;
|
|
25
|
-
color_separador: string;
|
|
11
|
+
colorLink?: string;
|
|
12
|
+
divider?: string;
|
|
26
13
|
urlLogin: string;
|
|
27
14
|
children?: React.ReactNode;
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
* O componente pai devolve a mensagem e o sucesso/erro.
|
|
31
|
-
*/
|
|
15
|
+
patternPassword?: RegExp;
|
|
16
|
+
patternPasswordMessage?: string;
|
|
32
17
|
onClick?: (data: {
|
|
33
18
|
email: string;
|
|
34
19
|
password: string;
|
|
35
20
|
}) => Promise<ClickResult> | ClickResult;
|
|
36
21
|
}
|
|
37
22
|
/**
|
|
38
|
-
* Componente de formulário de
|
|
39
|
-
*
|
|
40
|
-
*
|
|
41
|
-
*
|
|
42
|
-
*
|
|
43
|
-
* @param {string}
|
|
44
|
-
* @param {React.ElementType<SvgIconProps>} [Icon] Ícone opcional (MUI SvgIcon) exibido no topo do formulário.
|
|
45
|
-
* @param {() => React.ReactElement} [titulo] Função que retorna o conteúdo do título exibido no topo do formulário.
|
|
46
|
-
* @param {() => React.ReactElement} googleButton Função que retorna o botão de login com Google. Obrigatório.
|
|
47
|
-
*
|
|
48
|
-
* @param {string} color Cor usada em alguns textos/containers auxiliares (ex.: wrapper dos links). Obrigatório.
|
|
49
|
-
* @param {string} [background='transparent'] Cor de fundo do container principal.
|
|
50
|
-
* @param {string} [borderRadius='0'] Raio da borda do container principal.
|
|
51
|
-
* @param {string} [border='none'] Borda do container principal.
|
|
52
|
-
* @param {string} [boxShadow='none'] Sombra do container principal.
|
|
53
|
-
*
|
|
54
|
-
* @param {string} [backgroundField='transparent'] Fundo dos campos (email/senha).
|
|
55
|
-
* @param {string} [colorField='#000'] Cor do texto dos campos (email/senha).
|
|
56
|
-
* @param {string} [colorFocusedField] Cor do estado focado do campo (se suportado pelos campos internos).
|
|
57
|
-
* @param {string} [borderRadiusField='0px'] Raio da borda dos campos.
|
|
58
|
-
* @param {string} [boxShadowField='none'] Sombra dos campos.
|
|
59
|
-
* @param {string} [borderColorField='#ccc'] Cor da borda dos campos.
|
|
60
|
-
* @param {string} [paddingField='4px 8px'] Espaçamento interno dos campos.
|
|
61
|
-
*
|
|
62
|
-
* @param {string} [textButton='Enviar'] Texto do botão principal.
|
|
63
|
-
* @param {TypographyVariant} [variantButton='body1'] Variante do Typography usada no texto do botão.
|
|
64
|
-
* @param {string} [backgroundButton='transparent'] Fundo do botão principal.
|
|
65
|
-
* @param {string} [backgroundHoverButton='transparent'] Fundo do botão no hover.
|
|
66
|
-
* @param {string} [colorButton='#000'] Cor do texto do botão.
|
|
67
|
-
* @param {string} [colorHoverButton='#000'] Cor do texto do botão no hover.
|
|
68
|
-
* @param {string} [borderRadiusButton='0'] Raio da borda do botão.
|
|
69
|
-
* @param {string} [borderButton='none'] Borda do botão.
|
|
70
|
-
* @param {string} [boxShadowButton='none'] Sombra do botão.
|
|
71
|
-
* @param {string} [widthButton='auto'] Largura do botão.
|
|
72
|
-
* @param {string} [heightButton='auto'] Altura do botão.
|
|
73
|
-
* @param {string} [paddingButton='4px 24px'] Padding do botão.
|
|
74
|
-
* @param {string} [marginButton='0'] Margem do botão.
|
|
23
|
+
* Componente de formulário de cadastro (Sign Up) completo, com suporte a:
|
|
24
|
+
* criação de conta via email/senha, confirmação de senha, botão de cadastro social,
|
|
25
|
+
* validação básica de campos, exibição de mensagens de sucesso/erro
|
|
26
|
+
* e ampla customização visual via props ou tema.
|
|
27
|
+
*
|
|
28
|
+
* @param {string} urlLogin URL para a página de login (usuário já possui conta).
|
|
75
29
|
*
|
|
76
|
-
* @param {
|
|
77
|
-
*
|
|
78
|
-
* @param {
|
|
79
|
-
*
|
|
30
|
+
* @param {React.ElementType<SvgIconProps>} [Icon] Ícone exibido no topo do formulário.
|
|
31
|
+
*
|
|
32
|
+
* @param {() => React.ReactElement} [titulo] Função que retorna o título do formulário.
|
|
33
|
+
*
|
|
34
|
+
* @param {() => React.ReactElement} googleButton Função que renderiza o botão de cadastro social.
|
|
80
35
|
*
|
|
81
36
|
* @param {(data: { email: string; password: string }) => Promise<ClickResult> | ClickResult} [onClick]
|
|
82
|
-
*
|
|
83
|
-
*
|
|
84
|
-
*
|
|
85
|
-
*
|
|
37
|
+
* Callback executado ao submeter o formulário. Deve retornar um objeto com sucesso, mensagem e cor opcional.
|
|
38
|
+
*
|
|
39
|
+
* @param {React.ReactNode} [children] Conteúdo adicional renderizado abaixo do formulário.
|
|
40
|
+
*
|
|
41
|
+
* @param {string} [background] Cor de fundo do container principal do formulário.
|
|
42
|
+
* Opcional. Caso não seja informado, será utilizada a configuração definida no theme.pipelinesolucoes.forms.login.
|
|
43
|
+
*
|
|
44
|
+
* @param {string | number} [borderRadius] Raio da borda do container principal.
|
|
45
|
+
* Opcional. Caso não seja informado, será utilizada a configuração definida no theme.pipelinesolucoes.forms.login.
|
|
46
|
+
*
|
|
47
|
+
* @param {string} [border] Borda do container principal.
|
|
48
|
+
* Opcional. Caso não seja informado, será utilizada a configuração definida no theme.pipelinesolucoes.forms.login.
|
|
49
|
+
*
|
|
50
|
+
* @param {string} [boxShadow] Sombra do container principal.
|
|
51
|
+
* Opcional. Caso não seja informado, será utilizada a configuração definida no theme.pipelinesolucoes.forms.login.
|
|
52
|
+
*
|
|
53
|
+
* @param {string} [maxWidth] Largura Máxima do container principal do formulário.
|
|
54
|
+
*
|
|
55
|
+
* @param {string} [backgroundField] Cor de fundo dos campos de formulário.
|
|
56
|
+
* Opcional. Caso não seja informado, será utilizada a configuração definida no theme.pipelinesolucoes.forms.login.field.
|
|
57
|
+
*
|
|
58
|
+
* @param {string} [colorField] Cor do texto dos campos de formulário.
|
|
59
|
+
* Opcional. Caso não seja informado, será utilizada a configuração definida no theme.pipelinesolucoes.forms.login.field.
|
|
60
|
+
*
|
|
61
|
+
* @param {string | number} [borderRadiusField] Raio da borda dos campos.
|
|
62
|
+
* Opcional. Caso não seja informado, será utilizada a configuração definida no theme.pipelinesolucoes.forms.login.field.
|
|
63
|
+
*
|
|
64
|
+
* @param {string} [boxShadowField] Sombra aplicada aos campos.
|
|
65
|
+
* Opcional. Caso não seja informado, será utilizada a configuração definida no theme.pipelinesolucoes.forms.login.field.
|
|
66
|
+
*
|
|
67
|
+
* @param {string} [borderColorField] Cor da borda dos campos.
|
|
68
|
+
* Opcional. Caso não seja informado, será utilizada a configuração definida no theme.pipelinesolucoes.forms.login.field.
|
|
69
|
+
*
|
|
70
|
+
* @param {string | number} [paddingField] Espaçamento interno dos campos.
|
|
71
|
+
* Opcional. Caso não seja informado, será utilizada a configuração definida no theme.pipelinesolucoes.forms.login.field.
|
|
72
|
+
*
|
|
73
|
+
* @param {string | number} [marginField] Margem externa dos campos.
|
|
74
|
+
* Opcional. Caso não seja informado, será utilizada a configuração definida no theme.pipelinesolucoes.forms.login.field.
|
|
75
|
+
*
|
|
76
|
+
* @param {string} [textButton='Enviar'] Texto exibido no botão principal.
|
|
77
|
+
*
|
|
78
|
+
* @param {TypographyVariant} [variantButton='body1'] Variante tipográfica utilizada no texto do botão.
|
|
79
|
+
*
|
|
80
|
+
* @param {string} [backgroundButton] Cor de fundo do botão.
|
|
81
|
+
* Opcional. Caso não seja informado, será utilizada a configuração definida no theme.pipelinesolucoes.forms.login.button.
|
|
82
|
+
*
|
|
83
|
+
* @param {string} [backgroundHoverButton] Cor de fundo do botão ao passar o mouse.
|
|
84
|
+
* Opcional. Caso não seja informado, será utilizada a configuração definida no theme.pipelinesolucoes.forms.login.button.
|
|
85
|
+
*
|
|
86
|
+
* @param {string} [colorButton] Cor do texto do botão.
|
|
87
|
+
* Opcional. Caso não seja informado, será utilizada a configuração definida no theme.pipelinesolucoes.forms.login.button.
|
|
88
|
+
*
|
|
89
|
+
* @param {string} [colorHoverButton] Cor do texto do botão ao passar o mouse.
|
|
90
|
+
* Opcional. Caso não seja informado, será utilizada a configuração definida no theme.pipelinesolucoes.forms.login.button.
|
|
91
|
+
*
|
|
92
|
+
* @param {string | number} [borderRadiusButton] Raio da borda do botão.
|
|
93
|
+
* Opcional. Caso não seja informado, será utilizada a configuração definida no theme.pipelinesolucoes.forms.login.button.
|
|
94
|
+
*
|
|
95
|
+
* @param {string} [borderButton='none'] Borda do botão.
|
|
96
|
+
* Opcional. Caso não seja informado, será utilizada a configuração definida no theme.pipelinesolucoes.forms.login.button.
|
|
97
|
+
*
|
|
98
|
+
* @param {string} [boxShadowButton] Sombra aplicada ao botão.
|
|
99
|
+
* Opcional. Caso não seja informado, será utilizada a configuração definida no theme.pipelinesolucoes.forms.login.button.
|
|
100
|
+
*
|
|
101
|
+
* @param {string | number} [widthButton='auto'] Largura do botão.
|
|
102
|
+
* Opcional. Caso não seja informado, será utilizada a configuração definida no theme.pipelinesolucoes.forms.login.button.
|
|
103
|
+
*
|
|
104
|
+
* @param {string | number} [heightButton='auto'] Altura do botão.
|
|
105
|
+
* Opcional. Caso não seja informado, será utilizada a configuração definida no theme.pipelinesolucoes.forms.login.button.
|
|
106
|
+
*
|
|
107
|
+
* @param {string | number} [paddingButton] Espaçamento interno do botão.
|
|
108
|
+
* Opcional. Caso não seja informado, será utilizada a configuração definida no theme.pipelinesolucoes.forms.login.button.
|
|
109
|
+
*
|
|
110
|
+
* @param {string | number} [marginButton='0'] Margem externa do botão.
|
|
111
|
+
* Opcional. Caso não seja informado, será utilizada a configuração definida no theme.pipelinesolucoes.forms.login.button.
|
|
112
|
+
*
|
|
113
|
+
* @param {string} [colorLink] Cor do link de redirecionamento para login.
|
|
114
|
+
* Opcional. Caso não seja informado, será utilizada a configuração definida no theme.pipelinesolucoes.forms.login.button.
|
|
115
|
+
*
|
|
116
|
+
* @param {string} [divider] Cor do divisor visual entre login social e formulário.
|
|
117
|
+
* Opcional. Caso não seja informado, será utilizada a configuração definida no theme.pipelinesolucoes.forms.login.button.
|
|
118
|
+
*
|
|
119
|
+
* @param {RegExp} [passwordPattern=/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[^A-Za-z0-9]).{8,}$/] Regex para validar formato da senha válida.
|
|
86
120
|
*
|
|
87
|
-
* @param {
|
|
121
|
+
* @param {RegExp} [patternPasswordMessage='A senha deve ter no mínimo 8 caracteres, com ao menos uma letra maiúscula, uma letra minúscula, um número e um caractere especial.'] Mensagem de senha invalida.
|
|
88
122
|
*
|
|
89
123
|
* @example
|
|
90
124
|
* ```tsx
|
|
91
|
-
* import
|
|
92
|
-
* import
|
|
93
|
-
* import { Button } from '@mui/material';
|
|
125
|
+
* import { FormSignUp } from '@/components/FormSignUp';
|
|
126
|
+
* import AccountCircleIcon from '@mui/icons-material/AccountCircle';
|
|
94
127
|
*
|
|
95
|
-
*
|
|
128
|
+
* const Example = () => {
|
|
96
129
|
* return (
|
|
97
|
-
* <
|
|
98
|
-
*
|
|
99
|
-
*
|
|
100
|
-
*
|
|
101
|
-
*
|
|
102
|
-
* googleButton={() => <Button variant="outlined">Continuar com Google</Button>}
|
|
103
|
-
* color="#111"
|
|
104
|
-
* background="#fff"
|
|
105
|
-
* borderRadius="12px"
|
|
106
|
-
* boxShadow="0 10px 30px rgba(0,0,0,0.08)"
|
|
107
|
-
* backgroundField="#fafafa"
|
|
108
|
-
* borderColorField="#e0e0e0"
|
|
109
|
-
* paddingField="10px 12px"
|
|
110
|
-
* textButton="Acessar"
|
|
111
|
-
* backgroundButton="#111"
|
|
112
|
-
* backgroundHoverButton="#000"
|
|
113
|
-
* colorButton="#fff"
|
|
114
|
-
* colorHoverButton="#fff"
|
|
115
|
-
* borderRadiusButton="10px"
|
|
116
|
-
* paddingButton="10px 16px"
|
|
117
|
-
* color_message_sucess="#1b5e20"
|
|
118
|
-
* color_message_erro="#b71c1c"
|
|
119
|
-
* color_link="#1976d2"
|
|
120
|
-
* color_separador="#e0e0e0"
|
|
130
|
+
* <FormSignUp
|
|
131
|
+
* urlLogin="/login"
|
|
132
|
+
* Icon={AccountCircleIcon}
|
|
133
|
+
* titulo={() => <h2>Criar conta</h2>}
|
|
134
|
+
* googleButton={() => <button>Cadastrar com Google</button>}
|
|
121
135
|
* onClick={async ({ email, password }) => {
|
|
122
|
-
* if (email
|
|
123
|
-
* return { success: true, message: '
|
|
136
|
+
* if (email && password) {
|
|
137
|
+
* return { success: true, message: 'Conta criada com sucesso!' };
|
|
124
138
|
* }
|
|
125
|
-
* return { success: false, message: '
|
|
139
|
+
* return { success: false, message: 'Erro ao criar conta.' };
|
|
126
140
|
* }}
|
|
127
141
|
* />
|
|
128
142
|
* );
|
|
129
|
-
* }
|
|
143
|
+
* };
|
|
130
144
|
* ```
|
|
131
145
|
*/
|
|
132
146
|
declare const FormSignUp: React.FC<FormSignUpProps>;
|
|
@@ -1,159 +1,164 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
3
|
import { useState } from 'react';
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import { ButtonFormStyled } from '
|
|
4
|
+
import { useTheme } from '@mui/material/styles';
|
|
5
|
+
import { Divider, Typography } from '@mui/material';
|
|
6
|
+
import { ButtonFormStyled } from '../../style/ButtonFormStyled';
|
|
7
7
|
import { validateEmailMessage } from '../../utils/validateEmail';
|
|
8
8
|
import TextFieldValidate from '../TextFieldValidate';
|
|
9
9
|
import TextFieldPassword from '../TextFieldPassword';
|
|
10
|
-
import { LinkFormStyled } from '
|
|
11
|
-
|
|
12
|
-
display: 'flex',
|
|
13
|
-
flexDirection: 'column',
|
|
14
|
-
gap: '16px',
|
|
15
|
-
width: '100%',
|
|
16
|
-
margin: 'auto',
|
|
17
|
-
padding: '0px',
|
|
18
|
-
}));
|
|
19
|
-
const DivPassword = styled('div')(() => ({
|
|
20
|
-
display: 'flex',
|
|
21
|
-
flexDirection: 'column',
|
|
22
|
-
gap: '8px',
|
|
23
|
-
width: '100%',
|
|
24
|
-
margin: '0',
|
|
25
|
-
padding: '0',
|
|
26
|
-
}));
|
|
27
|
-
const DivTitulo = styled('div')(() => ({
|
|
28
|
-
display: 'flex',
|
|
29
|
-
flexDirection: 'column',
|
|
30
|
-
gap: '8px',
|
|
31
|
-
width: '100%',
|
|
32
|
-
margin: '0',
|
|
33
|
-
padding: '0',
|
|
34
|
-
alignItems: 'center',
|
|
35
|
-
justifyContent: 'center',
|
|
36
|
-
}));
|
|
37
|
-
const DivLink = styled('div', {
|
|
38
|
-
shouldForwardProp: (prop) => !['text_color', 'align'].includes(prop),
|
|
39
|
-
})(({ text_color, align }) => ({
|
|
40
|
-
display: 'flex',
|
|
41
|
-
flexDirection: 'row',
|
|
42
|
-
alignItems: 'center',
|
|
43
|
-
justifyContent: align,
|
|
44
|
-
width: '100%',
|
|
45
|
-
padding: '0',
|
|
46
|
-
flex: '1',
|
|
47
|
-
color: text_color,
|
|
48
|
-
}));
|
|
49
|
-
const DivCampos = styled('div')(() => ({
|
|
50
|
-
display: 'flex',
|
|
51
|
-
flexDirection: 'column',
|
|
52
|
-
gap: '4px',
|
|
53
|
-
width: '100%',
|
|
54
|
-
margin: '0',
|
|
55
|
-
padding: '0',
|
|
56
|
-
alignItems: 'center',
|
|
57
|
-
justifyContent: 'center',
|
|
58
|
-
}));
|
|
10
|
+
import { LinkFormStyled } from '../../style/LinkFormStyled';
|
|
11
|
+
import { DivCampos, DivLink, DivTitulo, FormContainer, StyledRoot } from './StyleLogin';
|
|
59
12
|
/**
|
|
60
|
-
* Componente de formulário de
|
|
61
|
-
*
|
|
62
|
-
*
|
|
63
|
-
*
|
|
64
|
-
*
|
|
65
|
-
* @param {string}
|
|
66
|
-
*
|
|
67
|
-
* @param {
|
|
68
|
-
*
|
|
69
|
-
*
|
|
70
|
-
* @param {string} color Cor usada em alguns textos/containers auxiliares (ex.: wrapper dos links). Obrigatório.
|
|
71
|
-
* @param {string} [background='transparent'] Cor de fundo do container principal.
|
|
72
|
-
* @param {string} [borderRadius='0'] Raio da borda do container principal.
|
|
73
|
-
* @param {string} [border='none'] Borda do container principal.
|
|
74
|
-
* @param {string} [boxShadow='none'] Sombra do container principal.
|
|
75
|
-
*
|
|
76
|
-
* @param {string} [backgroundField='transparent'] Fundo dos campos (email/senha).
|
|
77
|
-
* @param {string} [colorField='#000'] Cor do texto dos campos (email/senha).
|
|
78
|
-
* @param {string} [colorFocusedField] Cor do estado focado do campo (se suportado pelos campos internos).
|
|
79
|
-
* @param {string} [borderRadiusField='0px'] Raio da borda dos campos.
|
|
80
|
-
* @param {string} [boxShadowField='none'] Sombra dos campos.
|
|
81
|
-
* @param {string} [borderColorField='#ccc'] Cor da borda dos campos.
|
|
82
|
-
* @param {string} [paddingField='4px 8px'] Espaçamento interno dos campos.
|
|
83
|
-
*
|
|
84
|
-
* @param {string} [textButton='Enviar'] Texto do botão principal.
|
|
85
|
-
* @param {TypographyVariant} [variantButton='body1'] Variante do Typography usada no texto do botão.
|
|
86
|
-
* @param {string} [backgroundButton='transparent'] Fundo do botão principal.
|
|
87
|
-
* @param {string} [backgroundHoverButton='transparent'] Fundo do botão no hover.
|
|
88
|
-
* @param {string} [colorButton='#000'] Cor do texto do botão.
|
|
89
|
-
* @param {string} [colorHoverButton='#000'] Cor do texto do botão no hover.
|
|
90
|
-
* @param {string} [borderRadiusButton='0'] Raio da borda do botão.
|
|
91
|
-
* @param {string} [borderButton='none'] Borda do botão.
|
|
92
|
-
* @param {string} [boxShadowButton='none'] Sombra do botão.
|
|
93
|
-
* @param {string} [widthButton='auto'] Largura do botão.
|
|
94
|
-
* @param {string} [heightButton='auto'] Altura do botão.
|
|
95
|
-
* @param {string} [paddingButton='4px 24px'] Padding do botão.
|
|
96
|
-
* @param {string} [marginButton='0'] Margem do botão.
|
|
13
|
+
* Componente de formulário de cadastro (Sign Up) completo, com suporte a:
|
|
14
|
+
* criação de conta via email/senha, confirmação de senha, botão de cadastro social,
|
|
15
|
+
* validação básica de campos, exibição de mensagens de sucesso/erro
|
|
16
|
+
* e ampla customização visual via props ou tema.
|
|
17
|
+
*
|
|
18
|
+
* @param {string} urlLogin URL para a página de login (usuário já possui conta).
|
|
19
|
+
*
|
|
20
|
+
* @param {React.ElementType<SvgIconProps>} [Icon] Ícone exibido no topo do formulário.
|
|
21
|
+
*
|
|
22
|
+
* @param {() => React.ReactElement} [titulo] Função que retorna o título do formulário.
|
|
97
23
|
*
|
|
98
|
-
* @param {
|
|
99
|
-
* @param {string} color_message_erro Cor padrão para mensagem de erro (caso `onClick` não retorne `color`). Obrigatório.
|
|
100
|
-
* @param {string} color_link Cor aplicada nos links "Esqueceu sua senha?" e "Criar conta". Obrigatório.
|
|
101
|
-
* @param {string} color_separador Cor da linha separadora (Divider). Obrigatório.
|
|
24
|
+
* @param {() => React.ReactElement} googleButton Função que renderiza o botão de cadastro social.
|
|
102
25
|
*
|
|
103
26
|
* @param {(data: { email: string; password: string }) => Promise<ClickResult> | ClickResult} [onClick]
|
|
104
|
-
*
|
|
105
|
-
*
|
|
106
|
-
*
|
|
107
|
-
*
|
|
27
|
+
* Callback executado ao submeter o formulário. Deve retornar um objeto com sucesso, mensagem e cor opcional.
|
|
28
|
+
*
|
|
29
|
+
* @param {React.ReactNode} [children] Conteúdo adicional renderizado abaixo do formulário.
|
|
30
|
+
*
|
|
31
|
+
* @param {string} [background] Cor de fundo do container principal do formulário.
|
|
32
|
+
* Opcional. Caso não seja informado, será utilizada a configuração definida no theme.pipelinesolucoes.forms.login.
|
|
33
|
+
*
|
|
34
|
+
* @param {string | number} [borderRadius] Raio da borda do container principal.
|
|
35
|
+
* Opcional. Caso não seja informado, será utilizada a configuração definida no theme.pipelinesolucoes.forms.login.
|
|
36
|
+
*
|
|
37
|
+
* @param {string} [border] Borda do container principal.
|
|
38
|
+
* Opcional. Caso não seja informado, será utilizada a configuração definida no theme.pipelinesolucoes.forms.login.
|
|
39
|
+
*
|
|
40
|
+
* @param {string} [boxShadow] Sombra do container principal.
|
|
41
|
+
* Opcional. Caso não seja informado, será utilizada a configuração definida no theme.pipelinesolucoes.forms.login.
|
|
42
|
+
*
|
|
43
|
+
* @param {string} [maxWidth] Largura Máxima do container principal do formulário.
|
|
44
|
+
*
|
|
45
|
+
* @param {string} [backgroundField] Cor de fundo dos campos de formulário.
|
|
46
|
+
* Opcional. Caso não seja informado, será utilizada a configuração definida no theme.pipelinesolucoes.forms.login.field.
|
|
47
|
+
*
|
|
48
|
+
* @param {string} [colorField] Cor do texto dos campos de formulário.
|
|
49
|
+
* Opcional. Caso não seja informado, será utilizada a configuração definida no theme.pipelinesolucoes.forms.login.field.
|
|
50
|
+
*
|
|
51
|
+
* @param {string | number} [borderRadiusField] Raio da borda dos campos.
|
|
52
|
+
* Opcional. Caso não seja informado, será utilizada a configuração definida no theme.pipelinesolucoes.forms.login.field.
|
|
53
|
+
*
|
|
54
|
+
* @param {string} [boxShadowField] Sombra aplicada aos campos.
|
|
55
|
+
* Opcional. Caso não seja informado, será utilizada a configuração definida no theme.pipelinesolucoes.forms.login.field.
|
|
56
|
+
*
|
|
57
|
+
* @param {string} [borderColorField] Cor da borda dos campos.
|
|
58
|
+
* Opcional. Caso não seja informado, será utilizada a configuração definida no theme.pipelinesolucoes.forms.login.field.
|
|
59
|
+
*
|
|
60
|
+
* @param {string | number} [paddingField] Espaçamento interno dos campos.
|
|
61
|
+
* Opcional. Caso não seja informado, será utilizada a configuração definida no theme.pipelinesolucoes.forms.login.field.
|
|
62
|
+
*
|
|
63
|
+
* @param {string | number} [marginField] Margem externa dos campos.
|
|
64
|
+
* Opcional. Caso não seja informado, será utilizada a configuração definida no theme.pipelinesolucoes.forms.login.field.
|
|
65
|
+
*
|
|
66
|
+
* @param {string} [textButton='Enviar'] Texto exibido no botão principal.
|
|
67
|
+
*
|
|
68
|
+
* @param {TypographyVariant} [variantButton='body1'] Variante tipográfica utilizada no texto do botão.
|
|
69
|
+
*
|
|
70
|
+
* @param {string} [backgroundButton] Cor de fundo do botão.
|
|
71
|
+
* Opcional. Caso não seja informado, será utilizada a configuração definida no theme.pipelinesolucoes.forms.login.button.
|
|
72
|
+
*
|
|
73
|
+
* @param {string} [backgroundHoverButton] Cor de fundo do botão ao passar o mouse.
|
|
74
|
+
* Opcional. Caso não seja informado, será utilizada a configuração definida no theme.pipelinesolucoes.forms.login.button.
|
|
75
|
+
*
|
|
76
|
+
* @param {string} [colorButton] Cor do texto do botão.
|
|
77
|
+
* Opcional. Caso não seja informado, será utilizada a configuração definida no theme.pipelinesolucoes.forms.login.button.
|
|
78
|
+
*
|
|
79
|
+
* @param {string} [colorHoverButton] Cor do texto do botão ao passar o mouse.
|
|
80
|
+
* Opcional. Caso não seja informado, será utilizada a configuração definida no theme.pipelinesolucoes.forms.login.button.
|
|
81
|
+
*
|
|
82
|
+
* @param {string | number} [borderRadiusButton] Raio da borda do botão.
|
|
83
|
+
* Opcional. Caso não seja informado, será utilizada a configuração definida no theme.pipelinesolucoes.forms.login.button.
|
|
84
|
+
*
|
|
85
|
+
* @param {string} [borderButton='none'] Borda do botão.
|
|
86
|
+
* Opcional. Caso não seja informado, será utilizada a configuração definida no theme.pipelinesolucoes.forms.login.button.
|
|
87
|
+
*
|
|
88
|
+
* @param {string} [boxShadowButton] Sombra aplicada ao botão.
|
|
89
|
+
* Opcional. Caso não seja informado, será utilizada a configuração definida no theme.pipelinesolucoes.forms.login.button.
|
|
90
|
+
*
|
|
91
|
+
* @param {string | number} [widthButton='auto'] Largura do botão.
|
|
92
|
+
* Opcional. Caso não seja informado, será utilizada a configuração definida no theme.pipelinesolucoes.forms.login.button.
|
|
108
93
|
*
|
|
109
|
-
* @param {
|
|
94
|
+
* @param {string | number} [heightButton='auto'] Altura do botão.
|
|
95
|
+
* Opcional. Caso não seja informado, será utilizada a configuração definida no theme.pipelinesolucoes.forms.login.button.
|
|
96
|
+
*
|
|
97
|
+
* @param {string | number} [paddingButton] Espaçamento interno do botão.
|
|
98
|
+
* Opcional. Caso não seja informado, será utilizada a configuração definida no theme.pipelinesolucoes.forms.login.button.
|
|
99
|
+
*
|
|
100
|
+
* @param {string | number} [marginButton='0'] Margem externa do botão.
|
|
101
|
+
* Opcional. Caso não seja informado, será utilizada a configuração definida no theme.pipelinesolucoes.forms.login.button.
|
|
102
|
+
*
|
|
103
|
+
* @param {string} [colorLink] Cor do link de redirecionamento para login.
|
|
104
|
+
* Opcional. Caso não seja informado, será utilizada a configuração definida no theme.pipelinesolucoes.forms.login.button.
|
|
105
|
+
*
|
|
106
|
+
* @param {string} [divider] Cor do divisor visual entre login social e formulário.
|
|
107
|
+
* Opcional. Caso não seja informado, será utilizada a configuração definida no theme.pipelinesolucoes.forms.login.button.
|
|
108
|
+
*
|
|
109
|
+
* @param {RegExp} [passwordPattern=/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[^A-Za-z0-9]).{8,}$/] Regex para validar formato da senha válida.
|
|
110
|
+
*
|
|
111
|
+
* @param {RegExp} [patternPasswordMessage='A senha deve ter no mínimo 8 caracteres, com ao menos uma letra maiúscula, uma letra minúscula, um número e um caractere especial.'] Mensagem de senha invalida.
|
|
110
112
|
*
|
|
111
113
|
* @example
|
|
112
114
|
* ```tsx
|
|
113
|
-
* import
|
|
114
|
-
* import
|
|
115
|
-
* import { Button } from '@mui/material';
|
|
115
|
+
* import { FormSignUp } from '@/components/FormSignUp';
|
|
116
|
+
* import AccountCircleIcon from '@mui/icons-material/AccountCircle';
|
|
116
117
|
*
|
|
117
|
-
*
|
|
118
|
+
* const Example = () => {
|
|
118
119
|
* return (
|
|
119
|
-
* <
|
|
120
|
-
*
|
|
121
|
-
*
|
|
122
|
-
*
|
|
123
|
-
*
|
|
124
|
-
* googleButton={() => <Button variant="outlined">Continuar com Google</Button>}
|
|
125
|
-
* color="#111"
|
|
126
|
-
* background="#fff"
|
|
127
|
-
* borderRadius="12px"
|
|
128
|
-
* boxShadow="0 10px 30px rgba(0,0,0,0.08)"
|
|
129
|
-
* backgroundField="#fafafa"
|
|
130
|
-
* borderColorField="#e0e0e0"
|
|
131
|
-
* paddingField="10px 12px"
|
|
132
|
-
* textButton="Acessar"
|
|
133
|
-
* backgroundButton="#111"
|
|
134
|
-
* backgroundHoverButton="#000"
|
|
135
|
-
* colorButton="#fff"
|
|
136
|
-
* colorHoverButton="#fff"
|
|
137
|
-
* borderRadiusButton="10px"
|
|
138
|
-
* paddingButton="10px 16px"
|
|
139
|
-
* color_message_sucess="#1b5e20"
|
|
140
|
-
* color_message_erro="#b71c1c"
|
|
141
|
-
* color_link="#1976d2"
|
|
142
|
-
* color_separador="#e0e0e0"
|
|
120
|
+
* <FormSignUp
|
|
121
|
+
* urlLogin="/login"
|
|
122
|
+
* Icon={AccountCircleIcon}
|
|
123
|
+
* titulo={() => <h2>Criar conta</h2>}
|
|
124
|
+
* googleButton={() => <button>Cadastrar com Google</button>}
|
|
143
125
|
* onClick={async ({ email, password }) => {
|
|
144
|
-
* if (email
|
|
145
|
-
* return { success: true, message: '
|
|
126
|
+
* if (email && password) {
|
|
127
|
+
* return { success: true, message: 'Conta criada com sucesso!' };
|
|
146
128
|
* }
|
|
147
|
-
* return { success: false, message: '
|
|
129
|
+
* return { success: false, message: 'Erro ao criar conta.' };
|
|
148
130
|
* }}
|
|
149
131
|
* />
|
|
150
132
|
* );
|
|
151
|
-
* }
|
|
133
|
+
* };
|
|
152
134
|
* ```
|
|
153
135
|
*/
|
|
154
|
-
const FormSignUp = ({ urlLogin, Icon, titulo, googleButton, background, borderRadius, border, boxShadow, backgroundField, colorField, borderRadiusField, boxShadowField, borderColorField, paddingField, marginField, textButton = 'Enviar', variantButton = 'body1', backgroundButton, backgroundHoverButton, colorButton, colorHoverButton, borderRadiusButton, borderButton = 'none', boxShadowButton, widthButton = 'auto', heightButton = 'auto', paddingButton, marginButton = '0',
|
|
155
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61;
|
|
136
|
+
const FormSignUp = ({ urlLogin, Icon, titulo, googleButton, background, borderRadius, border, boxShadow, maxWidth, backgroundField, colorField, borderRadiusField, boxShadowField, borderColorField, paddingField, marginField, heightField, textButton = 'Enviar', variantButton = 'body1', backgroundButton, backgroundHoverButton, colorButton, colorHoverButton, borderRadiusButton, borderButton = 'none', boxShadowButton, widthButton = 'auto', heightButton = 'auto', paddingButton, marginButton = '0', colorLink, divider, patternPassword, patternPasswordMessage, onClick, children, }) => {
|
|
137
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64, _65, _66, _67, _68, _69, _70, _71, _72, _73, _74, _75;
|
|
156
138
|
const theme = useTheme();
|
|
139
|
+
const color_message_sucess = theme.palette.success.main;
|
|
140
|
+
const color_message_erro = theme.palette.error.main;
|
|
141
|
+
const bContainer = (_d = background !== null && background !== void 0 ? background : (_c = (_b = (_a = theme === null || theme === void 0 ? void 0 : theme.pipelinesolucoes) === null || _a === void 0 ? void 0 : _a.forms) === null || _b === void 0 ? void 0 : _b.login) === null || _c === void 0 ? void 0 : _c.background) !== null && _d !== void 0 ? _d : 'transparent';
|
|
142
|
+
const brContainer = (_h = borderRadius !== null && borderRadius !== void 0 ? borderRadius : (_g = (_f = (_e = theme === null || theme === void 0 ? void 0 : theme.pipelinesolucoes) === null || _e === void 0 ? void 0 : _e.forms) === null || _f === void 0 ? void 0 : _f.login) === null || _g === void 0 ? void 0 : _g.borderRadius) !== null && _h !== void 0 ? _h : '0';
|
|
143
|
+
const bdContainer = (_m = border !== null && border !== void 0 ? border : (_l = (_k = (_j = theme === null || theme === void 0 ? void 0 : theme.pipelinesolucoes) === null || _j === void 0 ? void 0 : _j.forms) === null || _k === void 0 ? void 0 : _k.login) === null || _l === void 0 ? void 0 : _l.border) !== null && _m !== void 0 ? _m : '0';
|
|
144
|
+
const bsContainer = (_r = boxShadow !== null && boxShadow !== void 0 ? boxShadow : (_q = (_p = (_o = theme === null || theme === void 0 ? void 0 : theme.pipelinesolucoes) === null || _o === void 0 ? void 0 : _o.forms) === null || _p === void 0 ? void 0 : _p.login) === null || _q === void 0 ? void 0 : _q.boxShadow) !== null && _r !== void 0 ? _r : 'none';
|
|
145
|
+
const bField = (_w = backgroundField !== null && backgroundField !== void 0 ? backgroundField : (_v = (_u = (_t = (_s = theme === null || theme === void 0 ? void 0 : theme.pipelinesolucoes) === null || _s === void 0 ? void 0 : _s.forms) === null || _t === void 0 ? void 0 : _t.login) === null || _u === void 0 ? void 0 : _u.field) === null || _v === void 0 ? void 0 : _v.background) !== null && _w !== void 0 ? _w : undefined;
|
|
146
|
+
const cField = (_1 = colorField !== null && colorField !== void 0 ? colorField : (_0 = (_z = (_y = (_x = theme === null || theme === void 0 ? void 0 : theme.pipelinesolucoes) === null || _x === void 0 ? void 0 : _x.forms) === null || _y === void 0 ? void 0 : _y.login) === null || _z === void 0 ? void 0 : _z.field) === null || _0 === void 0 ? void 0 : _0.color) !== null && _1 !== void 0 ? _1 : undefined;
|
|
147
|
+
const brField = (_6 = borderRadiusField !== null && borderRadiusField !== void 0 ? borderRadiusField : (_5 = (_4 = (_3 = (_2 = theme === null || theme === void 0 ? void 0 : theme.pipelinesolucoes) === null || _2 === void 0 ? void 0 : _2.forms) === null || _3 === void 0 ? void 0 : _3.login) === null || _4 === void 0 ? void 0 : _4.field) === null || _5 === void 0 ? void 0 : _5.borderRadius) !== null && _6 !== void 0 ? _6 : undefined;
|
|
148
|
+
const bsField = (_11 = boxShadowField !== null && boxShadowField !== void 0 ? boxShadowField : (_10 = (_9 = (_8 = (_7 = theme === null || theme === void 0 ? void 0 : theme.pipelinesolucoes) === null || _7 === void 0 ? void 0 : _7.forms) === null || _8 === void 0 ? void 0 : _8.login) === null || _9 === void 0 ? void 0 : _9.field) === null || _10 === void 0 ? void 0 : _10.boxShadow) !== null && _11 !== void 0 ? _11 : undefined;
|
|
149
|
+
const bcField = (_16 = borderColorField !== null && borderColorField !== void 0 ? borderColorField : (_15 = (_14 = (_13 = (_12 = theme === null || theme === void 0 ? void 0 : theme.pipelinesolucoes) === null || _12 === void 0 ? void 0 : _12.forms) === null || _13 === void 0 ? void 0 : _13.login) === null || _14 === void 0 ? void 0 : _14.field) === null || _15 === void 0 ? void 0 : _15.borderColor) !== null && _16 !== void 0 ? _16 : undefined;
|
|
150
|
+
const pField = (_21 = paddingField !== null && paddingField !== void 0 ? paddingField : (_20 = (_19 = (_18 = (_17 = theme === null || theme === void 0 ? void 0 : theme.pipelinesolucoes) === null || _17 === void 0 ? void 0 : _17.forms) === null || _18 === void 0 ? void 0 : _18.login) === null || _19 === void 0 ? void 0 : _19.field) === null || _20 === void 0 ? void 0 : _20.padding) !== null && _21 !== void 0 ? _21 : undefined;
|
|
151
|
+
const mgField = (_26 = marginField !== null && marginField !== void 0 ? marginField : (_25 = (_24 = (_23 = (_22 = theme === null || theme === void 0 ? void 0 : theme.pipelinesolucoes) === null || _22 === void 0 ? void 0 : _22.forms) === null || _23 === void 0 ? void 0 : _23.login) === null || _24 === void 0 ? void 0 : _24.field) === null || _25 === void 0 ? void 0 : _25.margin) !== null && _26 !== void 0 ? _26 : undefined;
|
|
152
|
+
const hgField = (_31 = heightField !== null && heightField !== void 0 ? heightField : (_30 = (_29 = (_28 = (_27 = theme === null || theme === void 0 ? void 0 : theme.pipelinesolucoes) === null || _27 === void 0 ? void 0 : _27.forms) === null || _28 === void 0 ? void 0 : _28.login) === null || _29 === void 0 ? void 0 : _29.field) === null || _30 === void 0 ? void 0 : _30.height) !== null && _31 !== void 0 ? _31 : undefined;
|
|
153
|
+
const bgButton = (_36 = backgroundButton !== null && backgroundButton !== void 0 ? backgroundButton : (_35 = (_34 = (_33 = (_32 = theme === null || theme === void 0 ? void 0 : theme.pipelinesolucoes) === null || _32 === void 0 ? void 0 : _32.forms) === null || _33 === void 0 ? void 0 : _33.login) === null || _34 === void 0 ? void 0 : _34.button) === null || _35 === void 0 ? void 0 : _35.background) !== null && _36 !== void 0 ? _36 : undefined;
|
|
154
|
+
const bgHoverButton = (_41 = backgroundHoverButton !== null && backgroundHoverButton !== void 0 ? backgroundHoverButton : (_40 = (_39 = (_38 = (_37 = theme === null || theme === void 0 ? void 0 : theme.pipelinesolucoes) === null || _37 === void 0 ? void 0 : _37.forms) === null || _38 === void 0 ? void 0 : _38.login) === null || _39 === void 0 ? void 0 : _39.button) === null || _40 === void 0 ? void 0 : _40.backgroundHover) !== null && _41 !== void 0 ? _41 : undefined;
|
|
155
|
+
const cButton = (_46 = colorButton !== null && colorButton !== void 0 ? colorButton : (_45 = (_44 = (_43 = (_42 = theme === null || theme === void 0 ? void 0 : theme.pipelinesolucoes) === null || _42 === void 0 ? void 0 : _42.forms) === null || _43 === void 0 ? void 0 : _43.login) === null || _44 === void 0 ? void 0 : _44.button) === null || _45 === void 0 ? void 0 : _45.color) !== null && _46 !== void 0 ? _46 : undefined;
|
|
156
|
+
const cHoverButton = (_51 = colorHoverButton !== null && colorHoverButton !== void 0 ? colorHoverButton : (_50 = (_49 = (_48 = (_47 = theme === null || theme === void 0 ? void 0 : theme.pipelinesolucoes) === null || _47 === void 0 ? void 0 : _47.forms) === null || _48 === void 0 ? void 0 : _48.login) === null || _49 === void 0 ? void 0 : _49.button) === null || _50 === void 0 ? void 0 : _50.colorHover) !== null && _51 !== void 0 ? _51 : undefined;
|
|
157
|
+
const brButton = (_56 = borderRadiusButton !== null && borderRadiusButton !== void 0 ? borderRadiusButton : (_55 = (_54 = (_53 = (_52 = theme === null || theme === void 0 ? void 0 : theme.pipelinesolucoes) === null || _52 === void 0 ? void 0 : _52.forms) === null || _53 === void 0 ? void 0 : _53.login) === null || _54 === void 0 ? void 0 : _54.button) === null || _55 === void 0 ? void 0 : _55.borderRadius) !== null && _56 !== void 0 ? _56 : undefined;
|
|
158
|
+
const bsButton = (_61 = boxShadowButton !== null && boxShadowButton !== void 0 ? boxShadowButton : (_60 = (_59 = (_58 = (_57 = theme === null || theme === void 0 ? void 0 : theme.pipelinesolucoes) === null || _57 === void 0 ? void 0 : _57.forms) === null || _58 === void 0 ? void 0 : _58.login) === null || _59 === void 0 ? void 0 : _59.button) === null || _60 === void 0 ? void 0 : _60.boxShadow) !== null && _61 !== void 0 ? _61 : undefined;
|
|
159
|
+
const pButton = (_66 = paddingButton !== null && paddingButton !== void 0 ? paddingButton : (_65 = (_64 = (_63 = (_62 = theme === null || theme === void 0 ? void 0 : theme.pipelinesolucoes) === null || _62 === void 0 ? void 0 : _62.forms) === null || _63 === void 0 ? void 0 : _63.login) === null || _64 === void 0 ? void 0 : _64.button) === null || _65 === void 0 ? void 0 : _65.padding) !== null && _66 !== void 0 ? _66 : undefined;
|
|
160
|
+
const cdivider = (_70 = divider !== null && divider !== void 0 ? divider : (_69 = (_68 = (_67 = theme === null || theme === void 0 ? void 0 : theme.pipelinesolucoes) === null || _67 === void 0 ? void 0 : _67.forms) === null || _68 === void 0 ? void 0 : _68.login) === null || _69 === void 0 ? void 0 : _69.divider) !== null && _70 !== void 0 ? _70 : undefined;
|
|
161
|
+
const cLink = (_75 = colorLink !== null && colorLink !== void 0 ? colorLink : (_74 = (_73 = (_72 = (_71 = theme === null || theme === void 0 ? void 0 : theme.pipelinesolucoes) === null || _71 === void 0 ? void 0 : _71.forms) === null || _72 === void 0 ? void 0 : _72.login) === null || _73 === void 0 ? void 0 : _73.link) === null || _74 === void 0 ? void 0 : _74.color) !== null && _75 !== void 0 ? _75 : undefined;
|
|
157
162
|
const [mensagemApi, setMensagemApi] = useState('');
|
|
158
163
|
const [corMensagemApi, setCorMensagemApi] = useState(color_message_erro);
|
|
159
164
|
const [email, setEmail] = useState('');
|
|
@@ -205,27 +210,7 @@ const FormSignUp = ({ urlLogin, Icon, titulo, googleButton, background, borderRa
|
|
|
205
210
|
setIsLoading(false);
|
|
206
211
|
}
|
|
207
212
|
};
|
|
208
|
-
|
|
209
|
-
const brContainer = (_h = borderRadius !== null && borderRadius !== void 0 ? borderRadius : (_g = (_f = (_e = theme === null || theme === void 0 ? void 0 : theme.pipelinesolucoes) === null || _e === void 0 ? void 0 : _e.forms) === null || _f === void 0 ? void 0 : _f.login) === null || _g === void 0 ? void 0 : _g.borderRadius) !== null && _h !== void 0 ? _h : '0';
|
|
210
|
-
const bdContainer = (_m = border !== null && border !== void 0 ? border : (_l = (_k = (_j = theme === null || theme === void 0 ? void 0 : theme.pipelinesolucoes) === null || _j === void 0 ? void 0 : _j.forms) === null || _k === void 0 ? void 0 : _k.login) === null || _l === void 0 ? void 0 : _l.border) !== null && _m !== void 0 ? _m : '0';
|
|
211
|
-
const bsContainer = (_r = boxShadow !== null && boxShadow !== void 0 ? boxShadow : (_q = (_p = (_o = theme === null || theme === void 0 ? void 0 : theme.pipelinesolucoes) === null || _o === void 0 ? void 0 : _o.forms) === null || _p === void 0 ? void 0 : _p.login) === null || _q === void 0 ? void 0 : _q.boxShadow) !== null && _r !== void 0 ? _r : 'none';
|
|
212
|
-
const bField = (_w = backgroundField !== null && backgroundField !== void 0 ? backgroundField : (_v = (_u = (_t = (_s = theme === null || theme === void 0 ? void 0 : theme.pipelinesolucoes) === null || _s === void 0 ? void 0 : _s.forms) === null || _t === void 0 ? void 0 : _t.login) === null || _u === void 0 ? void 0 : _u.field) === null || _v === void 0 ? void 0 : _v.background) !== null && _w !== void 0 ? _w : undefined;
|
|
213
|
-
const cField = (_1 = colorField !== null && colorField !== void 0 ? colorField : (_0 = (_z = (_y = (_x = theme === null || theme === void 0 ? void 0 : theme.pipelinesolucoes) === null || _x === void 0 ? void 0 : _x.forms) === null || _y === void 0 ? void 0 : _y.login) === null || _z === void 0 ? void 0 : _z.field) === null || _0 === void 0 ? void 0 : _0.color) !== null && _1 !== void 0 ? _1 : undefined;
|
|
214
|
-
const brField = (_6 = borderRadiusField !== null && borderRadiusField !== void 0 ? borderRadiusField : (_5 = (_4 = (_3 = (_2 = theme === null || theme === void 0 ? void 0 : theme.pipelinesolucoes) === null || _2 === void 0 ? void 0 : _2.forms) === null || _3 === void 0 ? void 0 : _3.login) === null || _4 === void 0 ? void 0 : _4.field) === null || _5 === void 0 ? void 0 : _5.borderRadius) !== null && _6 !== void 0 ? _6 : undefined;
|
|
215
|
-
const bsField = (_11 = boxShadowField !== null && boxShadowField !== void 0 ? boxShadowField : (_10 = (_9 = (_8 = (_7 = theme === null || theme === void 0 ? void 0 : theme.pipelinesolucoes) === null || _7 === void 0 ? void 0 : _7.forms) === null || _8 === void 0 ? void 0 : _8.login) === null || _9 === void 0 ? void 0 : _9.field) === null || _10 === void 0 ? void 0 : _10.boxShadow) !== null && _11 !== void 0 ? _11 : undefined;
|
|
216
|
-
const bcField = (_16 = borderColorField !== null && borderColorField !== void 0 ? borderColorField : (_15 = (_14 = (_13 = (_12 = theme === null || theme === void 0 ? void 0 : theme.pipelinesolucoes) === null || _12 === void 0 ? void 0 : _12.forms) === null || _13 === void 0 ? void 0 : _13.login) === null || _14 === void 0 ? void 0 : _14.field) === null || _15 === void 0 ? void 0 : _15.borderColor) !== null && _16 !== void 0 ? _16 : undefined;
|
|
217
|
-
const pField = (_21 = paddingField !== null && paddingField !== void 0 ? paddingField : (_20 = (_19 = (_18 = (_17 = theme === null || theme === void 0 ? void 0 : theme.pipelinesolucoes) === null || _17 === void 0 ? void 0 : _17.forms) === null || _18 === void 0 ? void 0 : _18.login) === null || _19 === void 0 ? void 0 : _19.field) === null || _20 === void 0 ? void 0 : _20.padding) !== null && _21 !== void 0 ? _21 : undefined;
|
|
218
|
-
const mgField = (_26 = marginField !== null && marginField !== void 0 ? marginField : (_25 = (_24 = (_23 = (_22 = theme === null || theme === void 0 ? void 0 : theme.pipelinesolucoes) === null || _22 === void 0 ? void 0 : _22.forms) === null || _23 === void 0 ? void 0 : _23.login) === null || _24 === void 0 ? void 0 : _24.field) === null || _25 === void 0 ? void 0 : _25.margin) !== null && _26 !== void 0 ? _26 : undefined;
|
|
219
|
-
const bgButton = (_31 = backgroundButton !== null && backgroundButton !== void 0 ? backgroundButton : (_30 = (_29 = (_28 = (_27 = theme === null || theme === void 0 ? void 0 : theme.pipelinesolucoes) === null || _27 === void 0 ? void 0 : _27.forms) === null || _28 === void 0 ? void 0 : _28.login) === null || _29 === void 0 ? void 0 : _29.button) === null || _30 === void 0 ? void 0 : _30.background) !== null && _31 !== void 0 ? _31 : undefined;
|
|
220
|
-
const bgHoverButton = (_36 = backgroundHoverButton !== null && backgroundHoverButton !== void 0 ? backgroundHoverButton : (_35 = (_34 = (_33 = (_32 = theme === null || theme === void 0 ? void 0 : theme.pipelinesolucoes) === null || _32 === void 0 ? void 0 : _32.forms) === null || _33 === void 0 ? void 0 : _33.login) === null || _34 === void 0 ? void 0 : _34.button) === null || _35 === void 0 ? void 0 : _35.backgroundHover) !== null && _36 !== void 0 ? _36 : undefined;
|
|
221
|
-
const cButton = (_41 = colorButton !== null && colorButton !== void 0 ? colorButton : (_40 = (_39 = (_38 = (_37 = theme === null || theme === void 0 ? void 0 : theme.pipelinesolucoes) === null || _37 === void 0 ? void 0 : _37.forms) === null || _38 === void 0 ? void 0 : _38.login) === null || _39 === void 0 ? void 0 : _39.button) === null || _40 === void 0 ? void 0 : _40.color) !== null && _41 !== void 0 ? _41 : undefined;
|
|
222
|
-
const cHoverButton = (_46 = colorHoverButton !== null && colorHoverButton !== void 0 ? colorHoverButton : (_45 = (_44 = (_43 = (_42 = theme === null || theme === void 0 ? void 0 : theme.pipelinesolucoes) === null || _42 === void 0 ? void 0 : _42.forms) === null || _43 === void 0 ? void 0 : _43.login) === null || _44 === void 0 ? void 0 : _44.button) === null || _45 === void 0 ? void 0 : _45.colorHover) !== null && _46 !== void 0 ? _46 : undefined;
|
|
223
|
-
const brButton = (_51 = borderRadiusButton !== null && borderRadiusButton !== void 0 ? borderRadiusButton : (_50 = (_49 = (_48 = (_47 = theme === null || theme === void 0 ? void 0 : theme.pipelinesolucoes) === null || _47 === void 0 ? void 0 : _47.forms) === null || _48 === void 0 ? void 0 : _48.login) === null || _49 === void 0 ? void 0 : _49.button) === null || _50 === void 0 ? void 0 : _50.borderRadius) !== null && _51 !== void 0 ? _51 : undefined;
|
|
224
|
-
const bsButton = (_56 = boxShadowButton !== null && boxShadowButton !== void 0 ? boxShadowButton : (_55 = (_54 = (_53 = (_52 = theme === null || theme === void 0 ? void 0 : theme.pipelinesolucoes) === null || _52 === void 0 ? void 0 : _52.forms) === null || _53 === void 0 ? void 0 : _53.login) === null || _54 === void 0 ? void 0 : _54.button) === null || _55 === void 0 ? void 0 : _55.boxShadow) !== null && _56 !== void 0 ? _56 : undefined;
|
|
225
|
-
const pButton = (_61 = paddingButton !== null && paddingButton !== void 0 ? paddingButton : (_60 = (_59 = (_58 = (_57 = theme === null || theme === void 0 ? void 0 : theme.pipelinesolucoes) === null || _57 === void 0 ? void 0 : _57.forms) === null || _58 === void 0 ? void 0 : _58.login) === null || _59 === void 0 ? void 0 : _59.button) === null || _60 === void 0 ? void 0 : _60.padding) !== null && _61 !== void 0 ? _61 : undefined;
|
|
226
|
-
return (_jsxs(Box, { display: "flex", flexDirection: "column", justifyContent: "center", gap: "24px", flex: 1, sx: { padding: '24px', borderRadius: brContainer,
|
|
227
|
-
background: bContainer, border: bdContainer,
|
|
228
|
-
boxShadow: bsContainer }, children: [(Icon || titulo) && (_jsxs(DivTitulo, { children: [Icon && _jsx(Icon, {}), titulo && titulo()] })), _jsxs(FormContainer, { children: [googleButton && googleButton(), _jsx(Divider, { sx: { borderColor: color_separador }, children: "ou" }), _jsxs(DivCampos, { children: [_jsx(TextFieldValidate, { id: "email", label: "Email", placeholder: "Email", background: bField, color: cField, borderRadius: brField, borderColor: bcField, boxShadow: bsField, padding: pField, value: email, onChange: (e) => setEmail(e.target.value), required: true, requiredMessage: "Campo obrigat\u00F3rio", validate: validateEmailMessage, showErrorOn: "blur" }), _jsx(DivPassword, { children: _jsx(TextFieldPassword, { id: "password", label: "Senha", placeholder: "Senha", required: true, background: bField, color: cField, borderRadius: brField, borderColor: bcField, boxShadow: bsField, padding: pField, value: password, onPasswordChange: (p) => setPassword(p) }) }), _jsx(DivPassword, { children: _jsx(TextFieldPassword, { id: "passwordconfirmada", label: "Confirmar Senha", placeholder: "Confirmar Senha", required: true, background: backgroundField, color: colorField, borderRadius: borderRadiusField, borderColor: borderColorField, boxShadow: boxShadowField, padding: paddingField, value: confirmPassword, onPasswordChange: (p) => setConfirmPassword(p) }) })] }), _jsx(ButtonFormStyled, { backgroundButton: bgButton, backgroundHoverButton: bgHoverButton, colorButton: cButton, colorHoverButton: cHoverButton, borderRadiusButton: brButton, borderButton: borderButton, boxShadowButton: bsButton, widthButton: widthButton, heightButton: heightButton, paddingButton: pButton, marginButton: marginButton, disabled: isLoading, onClick: handleClick, children: isLoading ? ('Enviando...') : (_jsx(Typography, { variant: variantButton, component: "span", children: textButton })) }), _jsx(DivLink, { align: "center", children: _jsx(LinkFormStyled, { href: urlLogin, width: "auto", height: "100%", text_color: color_link, margin: "0", children: "Entrar" }) })] }), mensagemApi && (_jsx(Typography, { variant: "body2", sx: { color: corMensagemApi }, children: mensagemApi })), children] }));
|
|
213
|
+
return (_jsxs(StyledRoot, { background: bContainer, border_radius: brContainer, box_shadow: bsContainer, border: bdContainer, maxWidth: maxWidth, children: [(Icon || titulo) && (_jsxs(DivTitulo, { children: [Icon && _jsx(Icon, {}), titulo && titulo()] })), _jsxs(FormContainer, { children: [googleButton && googleButton(), _jsx(Divider, { sx: { borderColor: cdivider }, children: "ou" }), _jsxs(DivCampos, { children: [_jsx(TextFieldValidate, { id: "email", label: "Email", placeholder: "Email", height: hgField, background: bField, color: cField, borderRadius: brField, borderColor: bcField, boxShadow: bsField, padding: pField, value: email, onChange: (e) => setEmail(e.target.value), required: true, requiredMessage: "email obrigat\u00F3rio", validate: validateEmailMessage, showErrorOn: "blur" }), _jsx(TextFieldPassword, { id: "password", label: "Senha", placeholder: "Senha", height: hgField, required: true, background: bField, color: cField, borderRadius: brField, borderColor: bcField, boxShadow: bsField, padding: pField, value: password, pattern: patternPassword, patternMessage: patternPasswordMessage, onPasswordChange: (p) => setPassword(p) }), _jsx(TextFieldPassword, { id: "passwordconfirmada", label: "Confirmar Senha", placeholder: "Confirmar Senha", height: hgField, required: true, background: backgroundField, color: colorField, borderRadius: borderRadiusField, borderColor: borderColorField, boxShadow: boxShadowField, padding: paddingField, value: confirmPassword, onPasswordChange: (p) => setConfirmPassword(p) })] }), _jsx(ButtonFormStyled, { backgroundButton: bgButton, backgroundHoverButton: bgHoverButton, colorButton: cButton, colorHoverButton: cHoverButton, borderRadiusButton: brButton, borderButton: borderButton, boxShadowButton: bsButton, widthButton: widthButton, heightButton: heightButton, paddingButton: pButton, marginButton: marginButton, disabled: isLoading, onClick: handleClick, children: isLoading ? ('Enviando...') : (_jsx(Typography, { variant: variantButton, component: "span", children: textButton })) }), _jsxs(DivLink, { children: [_jsx(Typography, { variant: variantButton, component: 'span', color: cField, children: "J\u00E1 tem uma conta?" }), _jsx(LinkFormStyled, { href: urlLogin, text_color: cLink, children: _jsx(Typography, { variant: variantButton, component: 'span', marginLeft: "4px", children: "Entrar" }) })] })] }), mensagemApi && (_jsx(Typography, { variant: "body2", sx: { color: corMensagemApi }, children: mensagemApi })), children] }));
|
|
229
214
|
};
|
|
230
215
|
export default FormSignUp;
|
|
231
216
|
//# sourceMappingURL=FormSignUp.js.map
|