@pipelinesolucoes/form 1.0.0-beta.7 → 1.2.0-beta.10

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 (84) hide show
  1. package/README.md +2 -2
  2. package/dist/components/NotificationSnackbar.d.ts +1 -2
  3. package/dist/components/NotificationSnackbar.js +2 -2
  4. package/dist/components/NotificationSnackbar.js.map +1 -1
  5. package/dist/components/SelectField.d.ts +73 -0
  6. package/dist/components/SelectField.js +140 -0
  7. package/dist/components/SelectField.js.map +1 -0
  8. package/dist/components/TextFieldPassword.d.ts +7 -33
  9. package/dist/components/TextFieldPassword.js +34 -23
  10. package/dist/components/TextFieldPassword.js.map +1 -1
  11. package/dist/components/TextFieldValidate.d.ts +8 -15
  12. package/dist/components/TextFieldValidate.js +47 -44
  13. package/dist/components/TextFieldValidate.js.map +1 -1
  14. package/dist/components/login/ClickResult.d.ts +11 -0
  15. package/dist/components/login/ClickResult.js +2 -0
  16. package/dist/components/login/ClickResult.js.map +1 -0
  17. package/dist/components/login/FormLogin.d.ts +150 -0
  18. package/dist/components/login/FormLogin.js +221 -0
  19. package/dist/components/login/FormLogin.js.map +1 -0
  20. package/dist/components/login/FormPasswordRecovery.d.ts +129 -0
  21. package/dist/components/login/FormPasswordRecovery.js +196 -0
  22. package/dist/components/login/FormPasswordRecovery.js.map +1 -0
  23. package/dist/components/login/FormSignUp.d.ts +147 -0
  24. package/dist/components/login/FormSignUp.js +215 -0
  25. package/dist/components/login/FormSignUp.js.map +1 -0
  26. package/dist/components/login/GoogleButton.d.ts +1 -4
  27. package/dist/components/login/GoogleButton.js.map +1 -1
  28. package/dist/components/login/StyleLogin.d.ts +14 -0
  29. package/dist/components/login/StyleLogin.js +57 -0
  30. package/dist/components/login/StyleLogin.js.map +1 -0
  31. package/dist/components/{FormStyled.d.ts → recaptcha/FormStyled.d.ts} +1 -8
  32. package/dist/components/{FormStyled.js → recaptcha/FormStyled.js} +0 -13
  33. package/dist/components/recaptcha/FormStyled.js.map +1 -0
  34. package/dist/components/recaptcha/RecaptchaForm.js +1 -1
  35. package/dist/components/recaptcha/RecaptchaForm.js.map +1 -1
  36. package/dist/components/style/ButtonFormStyled.d.ts +2 -0
  37. package/dist/components/style/ButtonFormStyled.js +22 -0
  38. package/dist/components/style/ButtonFormStyled.js.map +1 -0
  39. package/dist/components/style/LinkFormStyled.d.ts +7 -0
  40. package/dist/components/style/LinkFormStyled.js +15 -0
  41. package/dist/components/style/LinkFormStyled.js.map +1 -0
  42. package/dist/index.d.ts +4 -7
  43. package/dist/index.js +4 -3
  44. package/dist/index.js.map +1 -1
  45. package/dist/theme.d.ts +2 -2
  46. package/dist/theme.js +46 -20
  47. package/dist/theme.js.map +1 -1
  48. package/dist/tsconfig.tsbuildinfo +1 -1
  49. package/dist/types/FieldProps.d.ts +4 -0
  50. package/package.json +9 -5
  51. package/dist/components/ButtonFormStyled.d.ts +0 -2
  52. package/dist/components/ButtonFormStyled.js +0 -22
  53. package/dist/components/ButtonFormStyled.js.map +0 -1
  54. package/dist/components/FormStyled.js.map +0 -1
  55. package/dist/components/login/LoginForm.d.ts +0 -161
  56. package/dist/components/login/LoginForm.js +0 -198
  57. package/dist/components/login/LoginForm.js.map +0 -1
  58. package/dist/components/login/PasswordRecoveryForm.d.ts +0 -142
  59. package/dist/components/login/PasswordRecoveryForm.js +0 -169
  60. package/dist/components/login/PasswordRecoveryForm.js.map +0 -1
  61. package/dist/components/login/SignUpForm.d.ts +0 -26
  62. package/dist/components/login/SignUpForm.js +0 -138
  63. package/dist/components/login/SignUpForm.js.map +0 -1
  64. package/dist/mui-theme.d.ts +0 -33
  65. package/dist/mui-theme.js +0 -2
  66. package/dist/mui-theme.js.map +0 -1
  67. package/dist/pages/_app.d.ts +0 -2
  68. package/dist/pages/_app.js +0 -20
  69. package/dist/pages/_app.js.map +0 -1
  70. package/dist/pages/_document.d.ts +0 -9
  71. package/dist/pages/_document.js +0 -33
  72. package/dist/pages/_document.js.map +0 -1
  73. package/dist/types/BorderProps.d.ts +0 -6
  74. package/dist/types/BorderProps.js +0 -2
  75. package/dist/types/BorderProps.js.map +0 -1
  76. package/dist/types/ColorProps.d.ts +0 -9
  77. package/dist/types/ColorProps.js +0 -2
  78. package/dist/types/ColorProps.js.map +0 -1
  79. package/dist/types/LayoutProps.d.ts +0 -7
  80. package/dist/types/LayoutProps.js +0 -2
  81. package/dist/types/LayoutProps.js.map +0 -1
  82. package/dist/types/TextProps.d.ts +0 -5
  83. package/dist/types/TextProps.js +0 -2
  84. package/dist/types/TextProps.js.map +0 -1
@@ -4,64 +4,65 @@ import { styled } from '@mui/material/styles';
4
4
  import TextField from '@mui/material/TextField';
5
5
  const StyledTextField = styled(TextField, {
6
6
  shouldForwardProp: (prop) => ![
7
- "background",
8
- "borderRadius",
9
- "boxShadow",
10
- "borderColor",
11
- "colorFocused",
12
- "backgroundDisabled",
13
- "colorDisabled",
14
- "padding",
15
- "colorText",
7
+ 'background',
8
+ 'borderRadius',
9
+ 'boxShadow',
10
+ 'borderColor',
11
+ 'colorFocused',
12
+ 'backgroundDisabled',
13
+ 'colorDisabled',
14
+ 'padding',
15
+ 'colorText',
16
+ 'textVariant',
16
17
  ].includes(prop),
17
- })(({ theme, background, backgroundDisabled, colorText, borderRadius, boxShadow, borderColor, colorFocused, colorDisabled, padding, }) => {
18
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
19
- const field = (_b = (_a = theme.pipesol) === null || _a === void 0 ? void 0 : _a.forms) === null || _b === void 0 ? void 0 : _b.field;
18
+ })(({ theme, background, backgroundDisabled, colorText, borderRadius, boxShadow, borderColor, colorFocused, colorDisabled, padding, margin, textVariant, }) => {
19
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
20
+ const field = (_b = (_a = theme.pipelinesolucoes) === null || _a === void 0 ? void 0 : _a.forms) === null || _b === void 0 ? void 0 : _b.field;
20
21
  // props -> tokens -> fallback
21
- const bg = (_c = background !== null && background !== void 0 ? background : field === null || field === void 0 ? void 0 : field.background) !== null && _c !== void 0 ? _c : "transparent";
22
- const bgDisabled = (_d = backgroundDisabled !== null && backgroundDisabled !== void 0 ? backgroundDisabled : field === null || field === void 0 ? void 0 : field.backgroundDisabled) !== null && _d !== void 0 ? _d : bg;
23
- const txt = (_e = colorText !== null && colorText !== void 0 ? colorText : field === null || field === void 0 ? void 0 : field.color) !== null && _e !== void 0 ? _e : theme.palette.text.primary;
24
- const txtDisabled = (_f = colorDisabled !== null && colorDisabled !== void 0 ? colorDisabled : field === null || field === void 0 ? void 0 : field.colorDisabled) !== null && _f !== void 0 ? _f : theme.palette.text.disabled;
25
- const br = (_g = borderRadius !== null && borderRadius !== void 0 ? borderRadius : field === null || field === void 0 ? void 0 : field.borderRadius) !== null && _g !== void 0 ? _g : "8px";
26
- const sh = (_h = boxShadow !== null && boxShadow !== void 0 ? boxShadow : field === null || field === void 0 ? void 0 : field.boxShadow) !== null && _h !== void 0 ? _h : "none";
27
- const bd = (_j = borderColor !== null && borderColor !== void 0 ? borderColor : field === null || field === void 0 ? void 0 : field.borderColor) !== null && _j !== void 0 ? _j : theme.palette.divider;
28
- const bdFocused = (_k = colorFocused !== null && colorFocused !== void 0 ? colorFocused : field === null || field === void 0 ? void 0 : field.colorFocused) !== null && _k !== void 0 ? _k : theme.palette.primary.main;
29
- const pad = padding !== null && padding !== void 0 ? padding : field === null || field === void 0 ? void 0 : field.padding; // pode deixar undefined se quiser respeitar o default do MUI
30
- return {
31
- // (opcional) pode manter, mas o mais importante é estilizar os slots internos:
32
- background: bg,
33
- borderRadius: br,
34
- boxShadow: sh,
35
- "& .MuiInputBase-root": {
22
+ const bg = (_c = background !== null && background !== void 0 ? background : field === null || field === void 0 ? void 0 : field.background) !== null && _c !== void 0 ? _c : '#fff';
23
+ const bgDisabled = (_d = backgroundDisabled !== null && backgroundDisabled !== void 0 ? backgroundDisabled : field === null || field === void 0 ? void 0 : field.backgroundDisabled) !== null && _d !== void 0 ? _d : '#E5E7EB';
24
+ const txt = (_e = colorText !== null && colorText !== void 0 ? colorText : field === null || field === void 0 ? void 0 : field.color) !== null && _e !== void 0 ? _e : '#000';
25
+ const txtDisabled = (_f = colorDisabled !== null && colorDisabled !== void 0 ? colorDisabled : field === null || field === void 0 ? void 0 : field.colorDisabled) !== null && _f !== void 0 ? _f : '#9CA3AF';
26
+ const br = (_g = borderRadius !== null && borderRadius !== void 0 ? borderRadius : field === null || field === void 0 ? void 0 : field.borderRadius) !== null && _g !== void 0 ? _g : '0';
27
+ const sh = (_h = boxShadow !== null && boxShadow !== void 0 ? boxShadow : field === null || field === void 0 ? void 0 : field.boxShadow) !== null && _h !== void 0 ? _h : 'none';
28
+ const bd = (_j = borderColor !== null && borderColor !== void 0 ? borderColor : field === null || field === void 0 ? void 0 : field.borderColor) !== null && _j !== void 0 ? _j : '#ccc';
29
+ const bdFocused = (_k = colorFocused !== null && colorFocused !== void 0 ? colorFocused : field === null || field === void 0 ? void 0 : field.colorFocused) !== null && _k !== void 0 ? _k : '#1976d2';
30
+ const pad = (_l = padding !== null && padding !== void 0 ? padding : field === null || field === void 0 ? void 0 : field.padding) !== null && _l !== void 0 ? _l : '4px 8px';
31
+ const mg = (_m = margin !== null && margin !== void 0 ? margin : field === null || field === void 0 ? void 0 : field.margin) !== null && _m !== void 0 ? _m : '0';
32
+ const typo = textVariant ? theme.typography[textVariant] : undefined;
33
+ return Object.assign({ borderRadius: br, boxShadow: sh, '& .MuiInputBase-root': {
36
34
  color: txt,
37
- },
38
- "& .MuiOutlinedInput-root": Object.assign(Object.assign({ background: bg, borderRadius: br, boxShadow: sh }, (pad ? { padding: pad } : {})), { "& .MuiOutlinedInput-notchedOutline": {
35
+ }, '& .MuiOutlinedInput-root': Object.assign(Object.assign(Object.assign({ borderRadius: br, boxShadow: sh, background: bg }, (pad ? { padding: pad } : {})), { '& .MuiOutlinedInput-notchedOutline': {
39
36
  borderColor: bd,
40
- }, "&:hover .MuiOutlinedInput-notchedOutline": {
37
+ }, '&:hover .MuiOutlinedInput-notchedOutline': {
41
38
  borderColor: bd,
42
- }, "&.Mui-focused .MuiOutlinedInput-notchedOutline": {
39
+ }, '&.Mui-focused .MuiOutlinedInput-notchedOutline': {
43
40
  borderColor: bdFocused,
44
- }, "&.Mui-disabled": {
41
+ }, '&.Mui-disabled': {
45
42
  background: bgDisabled,
46
43
  color: txtDisabled,
47
- "& .MuiOutlinedInput-notchedOutline": {
44
+ '& .MuiOutlinedInput-notchedOutline': {
48
45
  borderColor: bd,
49
46
  },
50
47
  },
51
48
  // texto digitado quando disabled
52
- "& input.Mui-disabled": {
49
+ '& input.Mui-disabled, & textarea.Mui-disabled': {
53
50
  WebkitTextFillColor: txtDisabled,
54
- } }),
55
- "& .MuiInputLabel-root": {
51
+ } }), (typo
52
+ ? {
53
+ // Texto digitado
54
+ '& .MuiInputBase-input': Object.assign({}, typo),
55
+ // Placeholder (input e textarea)
56
+ '& input::placeholder': Object.assign(Object.assign({}, typo), { opacity: 0.7 }),
57
+ '& textarea::placeholder': Object.assign(Object.assign({}, typo), { opacity: 0.7 }),
58
+ }
59
+ : {})), '& .MuiInputLabel-root': {
56
60
  color: txt,
57
- },
58
- "& .MuiInputLabel-root.Mui-focused": {
61
+ }, '& .MuiInputLabel-root.Mui-focused': {
59
62
  color: bdFocused,
60
- },
61
- "& .MuiInputLabel-root.Mui-disabled": {
63
+ }, '& .MuiInputLabel-root.Mui-disabled': {
62
64
  color: txtDisabled,
63
- },
64
- };
65
+ } }, (mg ? { margin: mg } : {}));
65
66
  });
66
67
  const computeError = (value, { required, requiredMessage, minLength, pattern, patternMessage, validate, }) => {
67
68
  const v = value !== null && value !== void 0 ? value : '';
@@ -93,6 +94,7 @@ const computeError = (value, { required, requiredMessage, minLength, pattern, pa
93
94
  * @param {string} [placeholder] Placeholder exibido quando o campo está vazio.
94
95
  * @param {string} [value=''] Valor atual do campo (modo controlado).
95
96
  * @param {boolean} [disabled=false] Define se o campo está desabilitado.
97
+ * @param {import('@mui/material/Typography').TypographyProps['variant']} [textVariant='body1'] Variante de tipografia (MUI) aplicada ao texto digitado e ao placeholder.
96
98
  *
97
99
  * @param {string} [background='#fff'] Cor de fundo do campo.
98
100
  * @param {string} [backgroundDisabled='#E5E7EB'] Cor de fundo do campo quando o campo está desabilitado.
@@ -139,12 +141,13 @@ const computeError = (value, { required, requiredMessage, minLength, pattern, pa
139
141
  * showErrorOn="blur"
140
142
  * maxLength={120}
141
143
  * borderRadius="6px"
144
+ * textVariant="subtitle2"
142
145
  * />
143
146
  * );
144
147
  * };
145
148
  * ```
146
149
  */
147
- const TextFieldValidate = ({ id, label, background = '#fff', backgroundDisabled = "#E5E7EB", color = '#000', colorFocused = '#1976d2', colorDisabled = "#9CA3AF", borderRadius = '0', boxShadow = 'none', borderColor = '#ccc', placeholder, disabled = false, value = '', onChange, onBlur, multiline = false, rows = 3, required = false, requiredMessage = 'Campo obrigatório', minLength, pattern, patternMessage = 'Formato inválido', validate, showErrorOn = 'blur', maxLength, padding = '4px 8px' }) => {
150
+ const TextFieldValidate = ({ id, label, background, backgroundDisabled, color, colorFocused, colorDisabled, borderRadius, boxShadow, borderColor, placeholder, disabled = false, value = '', onChange, onBlur, multiline = false, rows = 3, required = false, requiredMessage = 'campo obrigatório', minLength, pattern, patternMessage = 'formato inválido', validate, showErrorOn = 'blur', maxLength, padding, textVariant = 'body1', }) => {
148
151
  const [touched, setTouched] = React.useState(false);
149
152
  const errorMessage = React.useMemo(() => {
150
153
  if (showErrorOn === 'change') {
@@ -186,7 +189,7 @@ const TextFieldValidate = ({ id, label, background = '#fff', backgroundDisabled
186
189
  onBlur(event);
187
190
  }
188
191
  };
189
- return (_jsx(StyledTextField, { id: id, label: label, placeholder: placeholder, value: value, onChange: onChange, onBlur: handleBlur, background: background, backgroundDisabled: backgroundDisabled, colorText: color, colorFocused: colorFocused, colorDisabled: colorDisabled, borderRadius: borderRadius, boxShadow: boxShadow, borderColor: borderColor, padding: padding, disabled: disabled, multiline: multiline, required: required, rows: multiline ? rows : undefined, fullWidth: true, error: Boolean(errorMessage), helperText: errorMessage || ' ', slotProps: {
192
+ return (_jsx(StyledTextField, { id: id, label: label, placeholder: placeholder, value: value, textVariant: textVariant, onChange: onChange, onBlur: handleBlur, background: background, backgroundDisabled: backgroundDisabled, colorText: color, colorFocused: colorFocused, colorDisabled: colorDisabled, borderRadius: borderRadius, boxShadow: boxShadow, borderColor: borderColor, padding: padding, disabled: disabled, multiline: multiline, required: required, rows: multiline ? rows : undefined, fullWidth: true, error: Boolean(errorMessage), helperText: errorMessage || ' ', slotProps: {
190
193
  input: {
191
194
  inputProps: typeof maxLength === 'number' ? { maxLength } : undefined,
192
195
  },
@@ -1 +1 @@
1
- {"version":3,"file":"TextFieldValidate.js","sourceRoot":"","sources":["../../src/components/TextFieldValidate.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TextFieldValidate.js","sourceRoot":"","sources":["../../src/components/TextFieldValidate.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Retorno do onClick/onSubmit do componente pai.
3
+ * - success: define se a ação foi bem sucedida
4
+ * - message: mensagem para exibir no próprio FormLogin
5
+ * - color: cor opcional para a mensagem (caso queira sobrescrever as cores padrão)
6
+ */
7
+ export interface ClickResult {
8
+ success: boolean;
9
+ message: string;
10
+ color?: string;
11
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ClickResult.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ClickResult.js","sourceRoot":"","sources":["../../../src/components/login/ClickResult.ts"],"names":[],"mappings":""}
@@ -0,0 +1,150 @@
1
+ import React from 'react';
2
+ import { TypographyVariant } from '@mui/material/styles';
3
+ import { SvgIconProps } from '@mui/material';
4
+ import { ButtonProps } from '../../types/ButtonProps';
5
+ import { FieldProps } from '@/types/FieldProps';
6
+ import { BorderProps, ColorProps, LayoutProps } from '@pipelinesolucoes/theme';
7
+ import { ClickResult } from './ClickResult';
8
+ export interface FormLoginProps extends ColorProps, BorderProps, ButtonProps, FieldProps, LayoutProps {
9
+ urlRecuperarConta: string;
10
+ urlCriarConta: string;
11
+ Icon?: React.ElementType<SvgIconProps>;
12
+ titulo?: () => React.ReactElement;
13
+ googleButton: () => React.ReactElement;
14
+ textButton?: string;
15
+ variantButton?: TypographyVariant;
16
+ colorLink?: string;
17
+ divider?: string;
18
+ children?: React.ReactNode;
19
+ onClick?: (data: {
20
+ email: string;
21
+ password: string;
22
+ }) => Promise<ClickResult> | ClickResult;
23
+ }
24
+ /**
25
+ * Componente de formulário de login completo, com suporte a:
26
+ * autenticação por email/senha, botão de login social (ex: Google),
27
+ * validação básica de campos, exibição de mensagens de sucesso/erro
28
+ * e customização visual via props ou tema.
29
+ *
30
+ * @param {string} urlRecuperarConta URL para a página de recuperação de senha.
31
+ *
32
+ * @param {string} urlCriarConta URL para a página de criação de conta.
33
+ *
34
+ * @param {React.ElementType<SvgIconProps>} [Icon] Ícone exibido no topo do formulário.
35
+ *
36
+ * @param {() => React.ReactElement} [titulo] Função que retorna o título do formulário.
37
+ *
38
+ * @param {() => React.ReactElement} googleButton Função que renderiza o botão de login social.
39
+ *
40
+ * @param {string} [textButton='Enviar'] Texto exibido no botão principal de submit.
41
+ * @param {TypographyVariant} [variantButton='body1'] Variante tipográfica usada nos textos do botão e links.
42
+ *
43
+ * @param {(data: { email: string; password: string }) => Promise<ClickResult> | ClickResult} [onClick]
44
+ * Callback executado ao submeter o formulário. Deve retornar um objeto com sucesso, mensagem e cor opcional.
45
+ *
46
+ * @param {React.ReactNode} [children] Conteúdo adicional renderizado abaixo do formulário.
47
+ *
48
+ * @param {string} [colorLink] Cor dos links de ação (criar conta / recuperar senha).
49
+ * Opcional. Caso não seja informado, será utilizada a configuração definida no theme.pipelinesolucoes.forms.login.
50
+ *
51
+ * @param {string} [divider] Cor do divisor visual entre login social e formulário.
52
+ * Opcional. Caso não seja informado, será utilizada a configuração definida no theme.pipelinesolucoes.forms.login.
53
+ *
54
+ * @param {string} [background] Cor de fundo do container principal do formulário.
55
+ * Opcional. Caso não seja informado, será utilizada a configuração definida no theme.pipelinesolucoes.forms.login.
56
+ *
57
+ * @param {string | number} [borderRadius] Raio da borda do container principal do formulário.
58
+ * Opcional. Caso não seja informado, será utilizada a configuração definida no theme.pipelinesolucoes.forms.login.
59
+ *
60
+ * @param {string} [border] Borda do container principal do formulário.
61
+ * Opcional. Caso não seja informado, será utilizada a configuração definida no theme.pipelinesolucoes.forms.login.
62
+ *
63
+ * @param {string} [boxShadow] Sombra do container principal do formulário.
64
+ * Opcional. Caso não seja informado, será utilizada a configuração definida no theme.pipelinesolucoes.forms.login.
65
+ *
66
+ * @param {string} [maxWidth] Largura Máxima do container principal do formulário.
67
+ *
68
+ * @param {string} [backgroundField] Cor de fundo dos campos de formulário.
69
+ * Opcional. Caso não seja informado, será utilizada a configuração definida no theme.pipelinesolucoes.forms.login.field.
70
+ *
71
+ * @param {string} [colorField] Cor do texto dos campos de formulário.
72
+ * Opcional. Caso não seja informado, será utilizada a configuração definida no theme.pipelinesolucoes.forms.login.field.
73
+ *
74
+ * @param {string | number} [borderRadiusField] Raio da borda dos campos de formulário.
75
+ * Opcional. Caso não seja informado, será utilizada a configuração definida no theme.pipelinesolucoes.forms.login.field.
76
+ *
77
+ * @param {string} [boxShadowField] Sombra aplicada aos campos de formulário.
78
+ * Opcional. Caso não seja informado, será utilizada a configuração definida no theme.pipelinesolucoes.forms.login.field.
79
+ *
80
+ * @param {string} [borderColorField] Cor da borda dos campos de formulário.
81
+ * Opcional. Caso não seja informado, será utilizada a configuração definida no theme.pipelinesolucoes.forms.login.field.
82
+ *
83
+ * @param {string | number} [paddingField] Espaçamento interno dos campos de formulário.
84
+ * Opcional. Caso não seja informado, será utilizada a configuração definida no theme.pipelinesolucoes.forms.login.field.
85
+ *
86
+ * @param {string | number} [marginField] Margem externa dos campos de formulário.
87
+ * Opcional. Caso não seja informado, será utilizada a configuração definida no theme.pipelinesolucoes.forms.login.field.
88
+ *
89
+ * @param {string} [textButton='Enviar'] Texto exibido no botão principal do formulário.
90
+ *
91
+ * @param {TypographyVariant} [variantButton='body1'] Variante tipográfica utilizada no texto do botão e links.
92
+ *
93
+ * @param {string} [backgroundButton] Cor de fundo do botão.
94
+ * Opcional. Caso não seja informado, será utilizada a configuração definida no theme.pipelinesolucoes.forms.login.button.
95
+ *
96
+ * @param {string} [backgroundHoverButton] Cor de fundo do botão ao passar o mouse.
97
+ * Opcional. Caso não seja informado, será utilizada a configuração definida no theme.pipelinesolucoes.forms.login.button.
98
+ *
99
+ * @param {string} [colorButton] Cor do texto do botão.
100
+ * Opcional. Caso não seja informado, será utilizada a configuração definida no theme.pipelinesolucoes.forms.login.button.
101
+ *
102
+ * @param {string} [colorHoverButton] Cor do texto do botão ao passar o mouse.
103
+ * Opcional. Caso não seja informado, será utilizada a configuração definida no theme.pipelinesolucoes.forms.login.button.
104
+ *
105
+ * @param {string | number} [borderRadiusButton] Raio da borda do botão.
106
+ * Opcional. Caso não seja informado, será utilizada a configuração definida no theme.pipelinesolucoes.forms.login.button.
107
+ *
108
+ * @param {string} [borderButton='none'] Borda do botão.
109
+ * Opcional. Caso não seja informado, será utilizada a configuração definida no theme.pipelinesolucoes.forms.login.button.
110
+ *
111
+ * @param {string} [boxShadowButton] Sombra aplicada ao botão.
112
+ * Opcional. Caso não seja informado, será utilizada a configuração definida no theme.pipelinesolucoes.forms.login.button.
113
+ *
114
+ * @param {string | number} [widthButton='auto'] Largura do botão.
115
+ * Opcional. Caso não seja informado, será utilizada a configuração definida no theme.pipelinesolucoes.forms.login.button.
116
+ *
117
+ * @param {string | number} [heightButton='auto'] Altura do botão.
118
+ * Opcional. Caso não seja informado, será utilizada a configuração definida no theme.pipelinesolucoes.forms.login.button.
119
+ *
120
+ * @param {string | number} [paddingButton] Espaçamento interno do botão.
121
+ * Opcional. Caso não seja informado, será utilizada a configuração definida no theme.pipelinesolucoes.forms.login.button.
122
+ *
123
+ * @param {string | number} [marginButton='0'] Margem externa do botão.
124
+ * Opcional. Caso não seja informado, será utilizada a configuração definida no theme.pipelinesolucoes.forms.login.button.
125
+
126
+
127
+ * @example
128
+ * ```tsx
129
+ * import { FormLogin } from '@/components/FormLogin';
130
+ * import GoogleIcon from '@mui/icons-material/Google';
131
+ *
132
+ * const Example = () => {
133
+ * return (
134
+ * <FormLogin
135
+ * urlCriarConta="/criar-conta"
136
+ * urlRecuperarConta="/recuperar-senha"
137
+ * googleButton={() => <button>Entrar com Google</button>}
138
+ * onClick={async ({ email, password }) => {
139
+ * if (email === 'teste@teste.com' && password === '123') {
140
+ * return { success: true, message: 'Login realizado com sucesso!' };
141
+ * }
142
+ * return { success: false, message: 'Credenciais inválidas.' };
143
+ * }}
144
+ * />
145
+ * );
146
+ * };
147
+ * ```
148
+ */
149
+ declare const FormLogin: React.FC<FormLoginProps>;
150
+ export default FormLogin;
@@ -0,0 +1,221 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { useState } from 'react';
4
+ import { styled, useTheme } from '@mui/material/styles';
5
+ import { Divider, Typography } from '@mui/material';
6
+ import { ButtonFormStyled } from '../style/ButtonFormStyled';
7
+ import { validateEmailMessage } from '../../utils/validateEmail';
8
+ import TextFieldValidate from '../TextFieldValidate';
9
+ import TextFieldPassword from '../TextFieldPassword';
10
+ import { LinkFormStyled } from '../style/LinkFormStyled';
11
+ import { DivCampos, DivLink, DivTitulo, FormContainer, StyledRoot } from './StyleLogin';
12
+ const DivPassword = styled('div')(() => ({
13
+ display: 'flex',
14
+ flexDirection: 'column',
15
+ gap: '8px',
16
+ width: '100%',
17
+ margin: '0',
18
+ padding: '0',
19
+ }));
20
+ /**
21
+ * Componente de formulário de login completo, com suporte a:
22
+ * autenticação por email/senha, botão de login social (ex: Google),
23
+ * validação básica de campos, exibição de mensagens de sucesso/erro
24
+ * e customização visual via props ou tema.
25
+ *
26
+ * @param {string} urlRecuperarConta URL para a página de recuperação de senha.
27
+ *
28
+ * @param {string} urlCriarConta URL para a página de criação de conta.
29
+ *
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 login social.
35
+ *
36
+ * @param {string} [textButton='Enviar'] Texto exibido no botão principal de submit.
37
+ * @param {TypographyVariant} [variantButton='body1'] Variante tipográfica usada nos textos do botão e links.
38
+ *
39
+ * @param {(data: { email: string; password: string }) => Promise<ClickResult> | ClickResult} [onClick]
40
+ * Callback executado ao submeter o formulário. Deve retornar um objeto com sucesso, mensagem e cor opcional.
41
+ *
42
+ * @param {React.ReactNode} [children] Conteúdo adicional renderizado abaixo do formulário.
43
+ *
44
+ * @param {string} [colorLink] Cor dos links de ação (criar conta / recuperar senha).
45
+ * Opcional. Caso não seja informado, será utilizada a configuração definida no theme.pipelinesolucoes.forms.login.
46
+ *
47
+ * @param {string} [divider] Cor do divisor visual entre login social e formulário.
48
+ * Opcional. Caso não seja informado, será utilizada a configuração definida no theme.pipelinesolucoes.forms.login.
49
+ *
50
+ * @param {string} [background] Cor de fundo do container principal do formulário.
51
+ * Opcional. Caso não seja informado, será utilizada a configuração definida no theme.pipelinesolucoes.forms.login.
52
+ *
53
+ * @param {string | number} [borderRadius] Raio da borda do container principal do formulário.
54
+ * Opcional. Caso não seja informado, será utilizada a configuração definida no theme.pipelinesolucoes.forms.login.
55
+ *
56
+ * @param {string} [border] Borda do container principal do formulário.
57
+ * Opcional. Caso não seja informado, será utilizada a configuração definida no theme.pipelinesolucoes.forms.login.
58
+ *
59
+ * @param {string} [boxShadow] Sombra do container principal do formulário.
60
+ * Opcional. Caso não seja informado, será utilizada a configuração definida no theme.pipelinesolucoes.forms.login.
61
+ *
62
+ * @param {string} [maxWidth] Largura Máxima do container principal do formulário.
63
+ *
64
+ * @param {string} [backgroundField] Cor de fundo dos campos de formulário.
65
+ * Opcional. Caso não seja informado, será utilizada a configuração definida no theme.pipelinesolucoes.forms.login.field.
66
+ *
67
+ * @param {string} [colorField] Cor do texto dos campos de formulário.
68
+ * Opcional. Caso não seja informado, será utilizada a configuração definida no theme.pipelinesolucoes.forms.login.field.
69
+ *
70
+ * @param {string | number} [borderRadiusField] Raio da borda dos campos de formulário.
71
+ * Opcional. Caso não seja informado, será utilizada a configuração definida no theme.pipelinesolucoes.forms.login.field.
72
+ *
73
+ * @param {string} [boxShadowField] Sombra aplicada aos campos de formulário.
74
+ * Opcional. Caso não seja informado, será utilizada a configuração definida no theme.pipelinesolucoes.forms.login.field.
75
+ *
76
+ * @param {string} [borderColorField] Cor da borda dos campos de formulário.
77
+ * Opcional. Caso não seja informado, será utilizada a configuração definida no theme.pipelinesolucoes.forms.login.field.
78
+ *
79
+ * @param {string | number} [paddingField] Espaçamento interno dos campos de formulário.
80
+ * Opcional. Caso não seja informado, será utilizada a configuração definida no theme.pipelinesolucoes.forms.login.field.
81
+ *
82
+ * @param {string | number} [marginField] Margem externa dos campos de formulário.
83
+ * Opcional. Caso não seja informado, será utilizada a configuração definida no theme.pipelinesolucoes.forms.login.field.
84
+ *
85
+ * @param {string} [textButton='Enviar'] Texto exibido no botão principal do formulário.
86
+ *
87
+ * @param {TypographyVariant} [variantButton='body1'] Variante tipográfica utilizada no texto do botão e links.
88
+ *
89
+ * @param {string} [backgroundButton] Cor de fundo do botão.
90
+ * Opcional. Caso não seja informado, será utilizada a configuração definida no theme.pipelinesolucoes.forms.login.button.
91
+ *
92
+ * @param {string} [backgroundHoverButton] Cor de fundo do botão ao passar o mouse.
93
+ * Opcional. Caso não seja informado, será utilizada a configuração definida no theme.pipelinesolucoes.forms.login.button.
94
+ *
95
+ * @param {string} [colorButton] Cor do texto 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} [colorHoverButton] Cor do texto do botão ao passar o mouse.
99
+ * Opcional. Caso não seja informado, será utilizada a configuração definida no theme.pipelinesolucoes.forms.login.button.
100
+ *
101
+ * @param {string | number} [borderRadiusButton] Raio da borda 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} [borderButton='none'] Borda 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} [boxShadowButton] Sombra aplicada ao 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} [widthButton='auto'] Largura 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 | number} [heightButton='auto'] Altura do botão.
114
+ * Opcional. Caso não seja informado, será utilizada a configuração definida no theme.pipelinesolucoes.forms.login.button.
115
+ *
116
+ * @param {string | number} [paddingButton] Espaçamento interno do botão.
117
+ * Opcional. Caso não seja informado, será utilizada a configuração definida no theme.pipelinesolucoes.forms.login.button.
118
+ *
119
+ * @param {string | number} [marginButton='0'] Margem externa do botão.
120
+ * Opcional. Caso não seja informado, será utilizada a configuração definida no theme.pipelinesolucoes.forms.login.button.
121
+
122
+
123
+ * @example
124
+ * ```tsx
125
+ * import { FormLogin } from '@/components/FormLogin';
126
+ * import GoogleIcon from '@mui/icons-material/Google';
127
+ *
128
+ * const Example = () => {
129
+ * return (
130
+ * <FormLogin
131
+ * urlCriarConta="/criar-conta"
132
+ * urlRecuperarConta="/recuperar-senha"
133
+ * googleButton={() => <button>Entrar com Google</button>}
134
+ * onClick={async ({ email, password }) => {
135
+ * if (email === 'teste@teste.com' && password === '123') {
136
+ * return { success: true, message: 'Login realizado com sucesso!' };
137
+ * }
138
+ * return { success: false, message: 'Credenciais inválidas.' };
139
+ * }}
140
+ * />
141
+ * );
142
+ * };
143
+ * ```
144
+ */
145
+ const FormLogin = ({ urlCriarConta, urlRecuperarConta, Icon, titulo, googleButton, background, borderRadius, border, boxShadow, maxWidth, 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', colorLink, divider, onClick, children, }) => {
146
+ 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;
147
+ const theme = useTheme();
148
+ const color_message_sucess = theme.palette.success.main;
149
+ const color_message_erro = theme.palette.error.main;
150
+ 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';
151
+ 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';
152
+ 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';
153
+ 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';
154
+ 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;
155
+ 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;
156
+ 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;
157
+ 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;
158
+ 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;
159
+ 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;
160
+ 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;
161
+ 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;
162
+ 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;
163
+ 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;
164
+ 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;
165
+ 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;
166
+ 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;
167
+ 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;
168
+ const cdivider = (_65 = divider !== null && divider !== void 0 ? divider : (_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.divider) !== null && _65 !== void 0 ? _65 : undefined;
169
+ const cLink = (_70 = colorLink !== null && colorLink !== void 0 ? colorLink : (_69 = (_68 = (_67 = (_66 = theme === null || theme === void 0 ? void 0 : theme.pipelinesolucoes) === null || _66 === void 0 ? void 0 : _66.forms) === null || _67 === void 0 ? void 0 : _67.login) === null || _68 === void 0 ? void 0 : _68.link) === null || _69 === void 0 ? void 0 : _69.color) !== null && _70 !== void 0 ? _70 : undefined;
170
+ const [mensagemApi, setMensagemApi] = useState('');
171
+ const [corMensagemApi, setCorMensagemApi] = useState(color_message_erro);
172
+ const [email, setEmail] = useState('');
173
+ const [password, setPassword] = useState('');
174
+ const [errors, setErrors] = useState({});
175
+ const [isLoading, setIsLoading] = useState(false);
176
+ const validateEmail = (value) => /\S+@\S+\.\S+/.test(value);
177
+ const handleClick = async (e) => {
178
+ var _a, _b, _c;
179
+ e.preventDefault();
180
+ // validação local básica (mantém o comportamento atual)
181
+ const newErrors = {
182
+ email: !validateEmail(email),
183
+ };
184
+ setErrors(newErrors);
185
+ const hasErrors = Object.values(newErrors).some(Boolean);
186
+ if (hasErrors) {
187
+ setCorMensagemApi(color_message_erro);
188
+ setMensagemApi('Alguns dos dados fornecidos estão inválidos. Por favor, revise as informações preenchidas e corrija os campos destacados.');
189
+ return;
190
+ }
191
+ setIsLoading(true);
192
+ setMensagemApi('');
193
+ try {
194
+ if (!onClick) {
195
+ // Se o pai não passou handler, mantém feedback amigável
196
+ setCorMensagemApi(color_message_erro);
197
+ setMensagemApi('Nenhuma ação foi configurada para o botão.');
198
+ return;
199
+ }
200
+ const result = await onClick({ email, password });
201
+ if (result === null || result === void 0 ? void 0 : result.success) {
202
+ setCorMensagemApi((_a = result.color) !== null && _a !== void 0 ? _a : color_message_sucess);
203
+ setMensagemApi(result.message);
204
+ }
205
+ else {
206
+ setCorMensagemApi((_b = result.color) !== null && _b !== void 0 ? _b : color_message_erro);
207
+ setMensagemApi((_c = result === null || result === void 0 ? void 0 : result.message) !== null && _c !== void 0 ? _c : 'Falha ao realizar a operação.');
208
+ }
209
+ }
210
+ catch (err) {
211
+ setCorMensagemApi(color_message_erro);
212
+ setMensagemApi('Erro inesperado ao processar a solicitação.');
213
+ }
214
+ finally {
215
+ setIsLoading(false);
216
+ }
217
+ };
218
+ 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", background: bField, color: cField, borderRadius: brField, borderColor: bcField, boxShadow: bsField, padding: pField, margin: mgField, value: email, onChange: (e) => setEmail(e.target.value), required: true, requiredMessage: "email obrigat\u00F3rio", validate: validateEmailMessage, showErrorOn: "blur" }), _jsxs(DivPassword, { children: [_jsx(TextFieldPassword, { id: "password", label: "Senha", placeholder: "Senha", required: true, background: bField, color: cField, borderRadius: brField, borderColor: bcField, boxShadow: bsField, padding: pField, margin: mgField, value: password, onPasswordChange: (p) => setPassword(p) }), _jsx(DivLink, { align: "flex-start", children: _jsx(LinkFormStyled, { href: urlRecuperarConta, text_color: cLink, children: _jsx(Typography, { variant: variantButton, component: 'span', sx: { fontSize: "0.8rem" }, children: "Esqueceu sua senha?" }) }) })] })] }), _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, { children: _jsx(LinkFormStyled, { href: urlCriarConta, text_color: cLink, children: _jsx(Typography, { variant: variantButton, component: 'span', children: "Criar conta" }) }) })] }), mensagemApi && (_jsx(Typography, { variant: "body2", sx: { color: corMensagemApi }, children: mensagemApi })), children] }));
219
+ };
220
+ export default FormLogin;
221
+ //# sourceMappingURL=FormLogin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormLogin.js","sourceRoot":"","sources":["../../../src/components/login/FormLogin.tsx"],"names":[],"mappings":"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"}