@pipelinesolucoes/form 1.2.0-beta.1 → 1.2.0-beta.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. package/dist/components/NotificationSnackbar.d.ts +1 -2
  2. package/dist/components/NotificationSnackbar.js +1 -1
  3. package/dist/components/NotificationSnackbar.js.map +1 -1
  4. package/dist/components/SelectField.d.ts +73 -0
  5. package/dist/components/SelectField.js +141 -0
  6. package/dist/components/SelectField.js.map +1 -0
  7. package/dist/components/TextFieldPassword.d.ts +144 -76
  8. package/dist/components/TextFieldPassword.js +163 -102
  9. package/dist/components/TextFieldPassword.js.map +1 -1
  10. package/dist/components/TextFieldValidate.d.ts +88 -43
  11. package/dist/components/TextFieldValidate.js +100 -93
  12. package/dist/components/TextFieldValidate.js.map +1 -1
  13. package/dist/components/login/ClickResult.d.ts +11 -0
  14. package/dist/components/login/ClickResult.js +2 -0
  15. package/dist/components/login/ClickResult.js.map +1 -0
  16. package/dist/components/login/FormLogin.d.ts +113 -124
  17. package/dist/components/login/FormLogin.js +137 -124
  18. package/dist/components/login/FormLogin.js.map +1 -1
  19. package/dist/components/login/FormPasswordRecovery.d.ts +97 -110
  20. package/dist/components/login/FormPasswordRecovery.js +132 -105
  21. package/dist/components/login/FormPasswordRecovery.js.map +1 -1
  22. package/dist/components/login/FormSignUp.d.ts +114 -127
  23. package/dist/components/login/FormSignUp.js +138 -134
  24. package/dist/components/login/FormSignUp.js.map +1 -1
  25. package/dist/components/login/GoogleButton.d.ts +1 -4
  26. package/dist/components/login/GoogleButton.js.map +1 -1
  27. package/dist/components/login/StyleLogin.d.ts +14 -0
  28. package/dist/components/login/StyleLogin.js +57 -0
  29. package/dist/components/login/StyleLogin.js.map +1 -0
  30. package/dist/components/{FormStyled.d.ts → recaptcha/FormStyled.d.ts} +0 -7
  31. package/dist/components/{FormStyled.js → recaptcha/FormStyled.js} +0 -13
  32. package/dist/components/recaptcha/FormStyled.js.map +1 -0
  33. package/dist/components/recaptcha/RecaptchaForm.js +1 -1
  34. package/dist/components/recaptcha/RecaptchaForm.js.map +1 -1
  35. package/dist/constant.d.ts +9 -0
  36. package/dist/constant.js +10 -0
  37. package/dist/constant.js.map +1 -0
  38. package/dist/index.d.ts +1 -4
  39. package/dist/index.js +1 -0
  40. package/dist/index.js.map +1 -1
  41. package/dist/style/ButtonFormStyled.js +22 -0
  42. package/dist/style/ButtonFormStyled.js.map +1 -0
  43. package/dist/style/LinkFormStyled.d.ts +7 -0
  44. package/dist/style/LinkFormStyled.js +15 -0
  45. package/dist/style/LinkFormStyled.js.map +1 -0
  46. package/dist/style/TextFieldStyle.d.ts +16 -0
  47. package/dist/style/TextFieldStyle.js +57 -0
  48. package/dist/style/TextFieldStyle.js.map +1 -0
  49. package/dist/theme.js +46 -18
  50. package/dist/theme.js.map +1 -1
  51. package/dist/tsconfig.tsbuildinfo +1 -1
  52. package/dist/types/FieldProps.d.ts +4 -0
  53. package/package.json +5 -3
  54. package/dist/components/ButtonFormStyled.js +0 -22
  55. package/dist/components/ButtonFormStyled.js.map +0 -1
  56. package/dist/components/FormStyled.js.map +0 -1
  57. package/dist/types/BorderProps.d.ts +0 -6
  58. package/dist/types/BorderProps.js +0 -2
  59. package/dist/types/BorderProps.js.map +0 -1
  60. package/dist/types/ColorProps.d.ts +0 -9
  61. package/dist/types/ColorProps.js +0 -2
  62. package/dist/types/ColorProps.js.map +0 -1
  63. package/dist/types/LayoutProps.d.ts +0 -7
  64. package/dist/types/LayoutProps.js +0 -2
  65. package/dist/types/LayoutProps.js.map +0 -1
  66. package/dist/types/TextProps.d.ts +0 -5
  67. package/dist/types/TextProps.js +0 -2
  68. package/dist/types/TextProps.js.map +0 -1
  69. /package/dist/{components → style}/ButtonFormStyled.d.ts +0 -0
@@ -1,68 +1,8 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import React from 'react';
3
- import { styled } from '@mui/material/styles';
4
- import TextField from '@mui/material/TextField';
5
- const StyledTextField = styled(TextField, {
6
- shouldForwardProp: (prop) => ![
7
- "background",
8
- "borderRadius",
9
- "boxShadow",
10
- "borderColor",
11
- "colorFocused",
12
- "backgroundDisabled",
13
- "colorDisabled",
14
- "padding",
15
- "colorText",
16
- ].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.pipelinesolucoes) === null || _a === void 0 ? void 0 : _a.forms) === null || _b === void 0 ? void 0 : _b.field;
20
- // 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": {
36
- color: txt,
37
- },
38
- "& .MuiOutlinedInput-root": Object.assign(Object.assign({ borderRadius: br, boxShadow: sh }, (pad ? { padding: pad } : {})), { "& .MuiOutlinedInput-notchedOutline": {
39
- borderColor: bd,
40
- }, "&:hover .MuiOutlinedInput-notchedOutline": {
41
- borderColor: bd,
42
- }, "&.Mui-focused .MuiOutlinedInput-notchedOutline": {
43
- borderColor: bdFocused,
44
- }, "&.Mui-disabled": {
45
- background: bgDisabled,
46
- color: txtDisabled,
47
- "& .MuiOutlinedInput-notchedOutline": {
48
- borderColor: bd,
49
- },
50
- },
51
- // texto digitado quando disabled
52
- "& input.Mui-disabled": {
53
- WebkitTextFillColor: txtDisabled,
54
- } }),
55
- "& .MuiInputLabel-root": {
56
- color: txt,
57
- },
58
- "& .MuiInputLabel-root.Mui-focused": {
59
- color: bdFocused,
60
- },
61
- "& .MuiInputLabel-root.Mui-disabled": {
62
- color: txtDisabled,
63
- },
64
- };
65
- });
3
+ import { useTheme } from '@mui/material/styles';
4
+ import { TextFieldStyled } from '../style/TextFieldStyle';
5
+ import { fbbackground, fbbackgroundDisabled, fbborderColor, fbborderRadius, fbboxShadow, fbcolor, fbcolorDisabled, fbcolorFocused, fbpadding } from '@/constant';
66
6
  const computeError = (value, { required, requiredMessage, minLength, pattern, patternMessage, validate, }) => {
67
7
  const v = value !== null && value !== void 0 ? value : '';
68
8
  if (required && v.trim().length === 0)
@@ -82,48 +22,101 @@ const computeError = (value, { required, requiredMessage, minLength, pattern, pa
82
22
  return null;
83
23
  };
84
24
  /**
85
- * Componente de campo de texto com validação, baseado no TextField do Material UI.
86
- * Permite personalização visual via `styled` e suporte a validações comuns
87
- * (obrigatório, tamanho mínimo, regex) e validação customizada.
25
+ * Campo de texto com suporte a validações comuns e customizadas, construído
26
+ * sobre o TextField do Material UI e estilizado via Design System da Pipeline.
27
+ *
28
+ * Funcionalidades principais:
29
+ * - Suporte a modo controlado (`value`)
30
+ * - Validações nativas (obrigatório, tamanho mínimo, regex)
31
+ * - Validação customizada via função
32
+ * - Controle de momento de exibição do erro (`change` ou `blur`)
33
+ * - Suporte a campo multilinha
34
+ * - Customização visual via props e tokens de theme
88
35
  *
89
- * O erro pode ser exibido durante a digitação ou apenas após o campo perder o foco.
36
+ * Tokens de estilo (ordem de prioridade):
37
+ * - `prop` do componente
38
+ * - `theme.pipelinesolucoes.forms.field`
39
+ * - Fallback interno (constantes `fb*`)
40
+ *
41
+ * Tipografia:
42
+ * - Suporte à tipografia do Material UI via `textVariant`
43
+ * - Fallback para `theme.pipelinesolucoes.forms.field.typography`
44
+ * - Fallback final para `theme.typography.body1`
45
+ *
46
+ * @param {string} [id] Identificador do campo, repassado ao input do Material UI.
47
+ * @param {string} [label] Texto do rótulo exibido acima do campo.
48
+ * @param {string} [placeholder] Texto exibido quando o campo está vazio.
49
+ * @param {string} [value] Valor atual do campo (modo controlado).
90
50
  *
91
- * @param {string} [id] Id do campo (replicado no input do MUI).
92
- * @param {string} [label] Rótulo exibido acima do campo.
93
- * @param {string} [placeholder] Placeholder exibido quando o campo está vazio.
94
- * @param {string} [value=''] Valor atual do campo (modo controlado).
95
51
  * @param {boolean} [disabled=false] Define se o campo está desabilitado.
96
52
  *
97
- * @param {string} [background='#fff'] Cor de fundo do campo.
98
- * @param {string} [backgroundDisabled='#E5E7EB'] Cor de fundo do campo quando o campo está desabilitado.
99
- * @param {string} [color='#000'] Cor do texto e do label.
100
- * @param {string} [colorFocused='#1976d2'] Cor da borda quando o campo está focado.
101
- * @param {string} [colorDisabled='#9CA3AF'] Cor do texto e do label quando o campo está focado.
102
- * @param {string} [borderColor='#ccc'] Cor da borda no estado normal e hover.
103
- * @param {string} [borderRadius='0'] Raio da borda do campo.
104
- * @param {string} [boxShadow='none'] Sombra aplicada ao campo.
105
- * @param {string} [padding='4px 8px'] Espaçamento interno do input.
53
+ * @param {number} [minLength] Número mínimo de caracteres permitidos.
54
+ * @param {number} [maxLength] Número máximo de caracteres permitidos.
55
+ *
56
+ * @param {boolean} [multiline=false] Define se o campo aceita múltiplas linhas.
57
+ * @param {number} [rows=3] Quantidade de linhas visíveis quando `multiline` está ativo.
58
+ *
59
+ *
60
+ * ### Estilo / Aparência
61
+ *
62
+ * @param {import('@mui/material/styles').TypographyVariant} [textVariant] Variante tipográfica do Material UI aplicada ao texto e placeholder.
63
+ *
64
+ * @param {string} [background]
65
+ * Cor de fundo do campo.
66
+ * Ordem: `background` → `theme.pipelinesolucoes.forms.field.background` → `#fff`.
67
+ *
68
+ * @param {string} [backgroundDisabled]
69
+ * Cor de fundo do campo quando desabilitado.
70
+ * Ordem: `backgroundDisabled` → `theme.pipelinesolucoes.forms.field.backgroundDisabled` → `#E5E7EB`.
106
71
  *
107
- * @param {boolean} [multiline=false] Define se o campo é multilinha.
108
- * @param {number} [rows=3] Número de linhas quando `multiline` está ativo.
72
+ * @param {string} [color]
73
+ * Cor do texto do campo (texto digitado e label).
74
+ * Ordem: `color` → `theme.pipelinesolucoes.forms.field.color` → `#000`.
75
+ *
76
+ * @param {string} [colorFocused]
77
+ * Cor aplicada ao estado focado (usada como cor de borda no focus).
78
+ * Ordem: `colorFocused` → `theme.pipelinesolucoes.forms.field.colorFocused` → `#1976d2`.
79
+ *
80
+ * @param {string} [colorDisabled]
81
+ * Cor do texto do campo quando desabilitado.
82
+ * Ordem: `colorDisabled` → `theme.pipelinesolucoes.forms.field.colorDisabled` → `#9CA3AF`.
83
+ *
84
+ * @param {string} [borderRadius]
85
+ * Raio da borda do campo.
86
+ * Ordem: `borderRadius` → `theme.pipelinesolucoes.forms.field.borderRadius` → `"0"`.
87
+ *
88
+ * @param {string} [boxShadow]
89
+ * Sombra do campo.
90
+ * Ordem: `boxShadow` → `theme.pipelinesolucoes.forms.field.boxShadow` → `"none"`.
91
+ *
92
+ * @param {string} [borderColor]
93
+ * Cor da borda do campo (estado padrão/hover).
94
+ * Ordem: `borderColor` → `theme.pipelinesolucoes.forms.field.borderColor` → `#ccc`.
95
+ *
96
+ * @param {string} [padding]
97
+ * Espaçamento interno do input (aplicado no texto e textarea).
98
+ * Ordem: `padding` → `theme.pipelinesolucoes.forms.field.padding` → `"4px 8px"`.
99
+ *
100
+ * ---
101
+ * ### Validação
109
102
  *
110
103
  * @param {boolean} [required=false] Indica se o campo é obrigatório.
111
- * @param {string} [requiredMessage='Campo obrigatório'] Mensagem exibida quando o campo obrigatório está vazio.
112
- * @param {number} [minLength] Número mínimo de caracteres.
113
- * @param {RegExp | string} [pattern] Expressão regular para validação do valor.
114
- * @param {string} [patternMessage='Formato inválido'] Mensagem exibida quando o pattern não é atendido.
104
+ * @param {string} [requiredMessage] Mensagem exibida quando o campo obrigatório está vazio.
105
+ * @param {RegExp | string} [pattern] Expressão regular utilizada para validação do valor.
106
+ * @param {string} [patternMessage] Mensagem exibida quando o valor não atende ao pattern.
107
+ * @param {'change' | 'blur'} [showErrorOn='blur'] Define quando o erro será exibido.
115
108
  * @param {(value: string) => string | null | undefined} [validate] Função de validação customizada.
116
- * @param {'change' | 'blur'} [showErrorOn='blur'] Momento em que o erro deve ser exibido.
117
109
  *
118
- * @param {number} [maxLength] Limite máximo de caracteres permitido no input.
110
+ * ---
111
+ * ### Eventos
112
+ *
119
113
  * @param {(event: React.ChangeEvent<HTMLInputElement>) => void} [onChange] Callback disparado ao alterar o valor.
120
114
  * @param {(event: React.FocusEvent<HTMLInputElement>) => void} [onBlur] Callback disparado ao perder o foco.
121
115
  *
116
+ * ---
117
+ *
122
118
  * @example
123
119
  * ```tsx
124
- * import React from 'react';
125
- * import TextFieldValidate from '@/components/TextFieldValidate';
126
- *
127
120
  * const Example = () => {
128
121
  * const [email, setEmail] = React.useState('');
129
122
  *
@@ -139,12 +132,14 @@ const computeError = (value, { required, requiredMessage, minLength, pattern, pa
139
132
  * showErrorOn="blur"
140
133
  * maxLength={120}
141
134
  * borderRadius="6px"
135
+ * textVariant="subtitle2"
142
136
  * />
143
137
  * );
144
138
  * };
145
139
  * ```
146
140
  */
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' }) => {
141
+ 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, }) => {
142
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
148
143
  const [touched, setTouched] = React.useState(false);
149
144
  const errorMessage = React.useMemo(() => {
150
145
  if (showErrorOn === 'change') {
@@ -186,7 +181,19 @@ const TextFieldValidate = ({ id, label, background = '#fff', backgroundDisabled
186
181
  onBlur(event);
187
182
  }
188
183
  };
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: {
184
+ const theme = useTheme();
185
+ const field = (_b = (_a = theme.pipelinesolucoes) === null || _a === void 0 ? void 0 : _a.forms) === null || _b === void 0 ? void 0 : _b.field;
186
+ const bg = (_c = background !== null && background !== void 0 ? background : field === null || field === void 0 ? void 0 : field.background) !== null && _c !== void 0 ? _c : fbbackground;
187
+ const bgDisabled = (_d = backgroundDisabled !== null && backgroundDisabled !== void 0 ? backgroundDisabled : field === null || field === void 0 ? void 0 : field.backgroundDisabled) !== null && _d !== void 0 ? _d : fbbackgroundDisabled;
188
+ const txt = (_e = color !== null && color !== void 0 ? color : field === null || field === void 0 ? void 0 : field.color) !== null && _e !== void 0 ? _e : fbcolor;
189
+ const txtDisabled = (_f = colorDisabled !== null && colorDisabled !== void 0 ? colorDisabled : field === null || field === void 0 ? void 0 : field.colorDisabled) !== null && _f !== void 0 ? _f : fbcolorDisabled;
190
+ const br = (_g = borderRadius !== null && borderRadius !== void 0 ? borderRadius : field === null || field === void 0 ? void 0 : field.borderRadius) !== null && _g !== void 0 ? _g : fbborderRadius;
191
+ const sh = (_h = boxShadow !== null && boxShadow !== void 0 ? boxShadow : field === null || field === void 0 ? void 0 : field.boxShadow) !== null && _h !== void 0 ? _h : fbboxShadow;
192
+ const bd = (_j = borderColor !== null && borderColor !== void 0 ? borderColor : field === null || field === void 0 ? void 0 : field.borderColor) !== null && _j !== void 0 ? _j : fbborderColor;
193
+ const bdFocused = (_k = colorFocused !== null && colorFocused !== void 0 ? colorFocused : field === null || field === void 0 ? void 0 : field.colorFocused) !== null && _k !== void 0 ? _k : fbcolorFocused;
194
+ const pad = (_l = padding !== null && padding !== void 0 ? padding : field === null || field === void 0 ? void 0 : field.padding) !== null && _l !== void 0 ? _l : fbpadding;
195
+ const typo = (_o = (_m = (textVariant && theme.typography[textVariant])) !== null && _m !== void 0 ? _m : field === null || field === void 0 ? void 0 : field.typography) !== null && _o !== void 0 ? _o : theme.typography.body1;
196
+ return (_jsx(TextFieldStyled, { id: id, label: label, placeholder: placeholder, value: value, typo: typo, onChange: onChange, onBlur: handleBlur, background: bg, backgroundDisabled: bgDisabled, colorText: txt, colorFocused: bdFocused, colorDisabled: txtDisabled, borderRadius: br, boxShadow: sh, borderColor: bd, padding: pad, disabled: disabled, multiline: multiline, required: required, rows: multiline ? rows : undefined, fullWidth: true, error: Boolean(errorMessage), helperText: errorMessage || ' ', slotProps: {
190
197
  input: {
191
198
  inputProps: typeof maxLength === 'number' ? { maxLength } : undefined,
192
199
  },
@@ -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":";AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAqB,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEnE,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,aAAa,EAAE,cAAc,EAAE,WAAW,EAAE,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAiCjK,MAAM,YAAY,GAAG,CACnB,KAAa,EACb,EACE,QAAQ,EACR,eAAe,EACf,SAAS,EACT,OAAO,EACP,cAAc,EACd,QAAQ,GAIT,EACc,EAAE;IACjB,MAAM,CAAC,GAAG,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,EAAE,CAAC;IACtB,IAAI,QAAQ,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,eAAe,IAAI,mBAAmB,CAAC;IACrF,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,GAAG,SAAS;QAAE,OAAO,aAAa,SAAS,aAAa,CAAC;IAEtG,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,EAAE,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;QACvE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;YAAE,OAAO,cAAc,IAAI,kBAAkB,CAAC;IAC/D,CAAC;IAED,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC9B,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS;YAAE,OAAO,SAAS,CAAC;IACnE,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAGF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoHG;AACH,MAAM,iBAAiB,GAAqC,CAAC,EAC3D,EAAE,EACF,KAAK,EACL,UAAU,EACV,kBAAkB,EAClB,KAAK,EACL,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,SAAS,EACT,WAAW,EACX,WAAW,EACX,QAAQ,GAAG,KAAK,EAChB,KAAK,GAAG,EAAE,EACV,QAAQ,EACR,MAAM,EACN,SAAS,GAAG,KAAK,EACjB,IAAI,GAAG,CAAC,EACR,QAAQ,GAAG,KAAK,EAChB,eAAe,GAAG,mBAAmB,EACrC,SAAS,EACT,OAAO,EACP,cAAc,GAAG,kBAAkB,EACnC,QAAQ,EACR,WAAW,GAAG,MAAM,EACpB,SAAS,EACT,OAAO,EACP,WAAW,GACZ,EAAE,EAAE;;IACH,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEpD,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QACtC,IAAI,WAAW,KAAK,QAAQ,EAAE,CAAC;YAC7B,OAAO,YAAY,CAAC,KAAK,EAAE;gBACzB,QAAQ;gBACR,eAAe;gBACf,SAAS;gBACT,OAAO;gBACP,cAAc;gBACd,QAAQ;aACT,CAAC,CAAC;QACL,CAAC;QAED,IAAI,WAAW,KAAK,MAAM,IAAI,OAAO,EAAE,CAAC;YACtC,OAAO,YAAY,CAAC,KAAK,EAAE;gBACzB,QAAQ;gBACR,eAAe;gBACf,SAAS;gBACT,OAAO;gBACP,cAAc;gBACd,QAAQ;aACT,CAAC,CAAC;QACL,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC,EAAE;QACD,KAAK;QACL,QAAQ;QACR,eAAe;QACf,SAAS;QACT,OAAO;QACP,cAAc;QACd,QAAQ;QACR,WAAW;QACX,OAAO;KACR,CAAC,CAAC;IAEH,MAAM,UAAU,GAAG,CAAC,KAAyC,EAAE,EAAE;QAC/D,IAAI,CAAC,OAAO;YAAE,UAAU,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,CAAC,KAAK,CAAC,CAAC;QAChB,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,MAAM,KAAK,GAAG,MAAA,MAAA,KAAK,CAAC,gBAAgB,0CAAE,KAAK,0CAAE,KAAK,CAAC;IAEnD,MAAM,EAAE,GAAG,MAAA,UAAU,aAAV,UAAU,cAAV,UAAU,GAAI,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,UAAU,mCAAI,YAAY,CAAC;IAC3D,MAAM,UAAU,GAAG,MAAA,kBAAkB,aAAlB,kBAAkB,cAAlB,kBAAkB,GAAI,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,kBAAkB,mCAAI,oBAAoB,CAAC;IAC3F,MAAM,GAAG,GAAG,MAAA,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK,mCAAI,OAAO,CAAC;IAC7C,MAAM,WAAW,GAAG,MAAA,aAAa,aAAb,aAAa,cAAb,aAAa,GAAI,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,aAAa,mCAAI,eAAe,CAAC;IAC7E,MAAM,EAAE,GAAG,MAAA,YAAY,aAAZ,YAAY,cAAZ,YAAY,GAAI,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,YAAY,mCAAI,cAAc,CAAC;IACjE,MAAM,EAAE,GAAG,MAAA,SAAS,aAAT,SAAS,cAAT,SAAS,GAAI,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,SAAS,mCAAI,WAAW,CAAC;IACxD,MAAM,EAAE,GAAG,MAAA,WAAW,aAAX,WAAW,cAAX,WAAW,GAAI,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,WAAW,mCAAI,aAAa,CAAC;IAC9D,MAAM,SAAS,GAAG,MAAA,YAAY,aAAZ,YAAY,cAAZ,YAAY,GAAI,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,YAAY,mCAAI,cAAc,CAAC;IACxE,MAAM,GAAG,GAAG,MAAA,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,OAAO,mCAAI,SAAS,CAAC;IAEnD,MAAM,IAAI,GACR,MAAA,MAAA,CAAC,WAAW,IAAI,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,mCAC9C,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,UAAU,mCACjB,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC;IAEzB,OAAO,CACL,KAAC,eAAe,IACd,EAAE,EAAE,EAAE,EACN,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,WAAW,EACxB,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,UAAU,EAClB,UAAU,EAAE,EAAE,EACd,kBAAkB,EAAE,UAAU,EAC9B,SAAS,EAAE,GAAG,EACd,YAAY,EAAE,SAAS,EACvB,aAAa,EAAE,WAAW,EAC1B,YAAY,EAAE,EAAE,EAChB,SAAS,EAAE,EAAE,EACb,WAAW,EAAE,EAAE,EACf,OAAO,EAAE,GAAG,EACZ,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,EAClC,SAAS,QACT,KAAK,EAAE,OAAO,CAAC,YAAY,CAAC,EAC5B,UAAU,EAAE,YAAY,IAAI,GAAG,EAC/B,SAAS,EAAE;YACT,KAAK,EAAE;gBACL,UAAU,EAAE,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,SAAS;aACtE;SACF,GACD,CACH,CAAC;AACJ,CAAC,CAAC;AAEF,iBAAiB,CAAC,WAAW,GAAG,mBAAmB,CAAC;AAEpD,eAAe,iBAAiB,CAAC"}
@@ -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":""}
@@ -3,158 +3,147 @@ import { TypographyVariant } from '@mui/material/styles';
3
3
  import { SvgIconProps } from '@mui/material';
4
4
  import { ButtonProps } from '../../types/ButtonProps';
5
5
  import { FieldProps } from '@/types/FieldProps';
6
- import { ColorProps } from '../../types/ColorProps';
7
- import { BorderProps } from '../../types/BorderProps';
8
- /**
9
- * Retorno do onClick/onSubmit do componente pai.
10
- * - success: define se a ação foi bem sucedida
11
- * - message: mensagem para exibir no próprio FormLogin
12
- * - color: cor opcional para a mensagem (caso queira sobrescrever as cores padrão)
13
- */
14
- export interface ClickResult {
15
- success: boolean;
16
- message: string;
17
- color?: string;
18
- }
19
- export interface FormLoginProps extends ColorProps, BorderProps, ButtonProps, 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;
20
11
  Icon?: React.ElementType<SvgIconProps>;
21
12
  titulo?: () => React.ReactElement;
22
13
  googleButton: () => React.ReactElement;
23
- color: string;
24
- background?: string;
25
- borderRadius?: string;
26
- border?: string;
27
- boxShadow?: string;
28
- backgroundField?: string;
29
- colorField?: string;
30
- colorFocusedField?: string;
31
- borderRadiusField?: string;
32
- boxShadowField?: string;
33
- borderColorField?: string;
34
- paddingField?: string;
35
14
  textButton?: string;
36
15
  variantButton?: TypographyVariant;
37
- backgroundButton?: string;
38
- backgroundHoverButton?: string;
39
- colorButton?: string;
40
- colorHoverButton?: string;
41
- borderRadiusButton?: string;
42
- borderButton?: string;
43
- boxShadowButton?: string;
44
- widthButton?: string;
45
- heightButton?: string;
46
- paddingButton?: string;
47
- marginButton?: string;
48
- /** Cores padrão para mensagem (caso o pai não retorne color no ClickResult) */
49
- color_message_sucess: string;
50
- color_message_erro: string;
51
- color_link: string;
52
- color_separador: string;
53
- urlRecuperarConta: string;
54
- urlCriarConta: string;
16
+ colorLink?: string;
17
+ divider?: string;
55
18
  children?: React.ReactNode;
56
- /**
57
- * Evento disparado ao clicar no botão principal.
58
- * O componente pai devolve a mensagem e o sucesso/erro.
59
- */
60
19
  onClick?: (data: {
61
20
  email: string;
62
21
  password: string;
63
22
  }) => Promise<ClickResult> | ClickResult;
64
23
  }
65
24
  /**
66
- * Componente de formulário de login com suporte a autenticação via Google e login por email/senha.
67
- * Inclui validação básica de email, exibição de mensagens de erro/sucesso retornadas pelo handler `onClick`
68
- * e customização visual via props (container, campos, botão e links).
69
- *
70
- * @param {string} urlRecuperarConta URL para a página de recuperação de conta/senha. Obrigatório.
71
- * @param {string} urlCriarConta URL para a página de criação de conta. Obrigatório.
72
- * @param {React.ElementType<SvgIconProps>} [Icon] Ícone opcional (MUI SvgIcon) exibido no topo do formulário.
73
- * @param {() => React.ReactElement} [titulo] Função que retorna o conteúdo do título exibido no topo do formulário.
74
- * @param {() => React.ReactElement} googleButton Função que retorna o botão de login com Google. Obrigatório.
75
- *
76
- * @param {string} color Cor usada em alguns textos/containers auxiliares (ex.: wrapper dos links). Obrigatório.
77
- * @param {string} [background='transparent'] Cor de fundo do container principal.
78
- * @param {string} [borderRadius='0'] Raio da borda do container principal.
79
- * @param {string} [border='none'] Borda do container principal.
80
- * @param {string} [boxShadow='none'] Sombra do container principal.
81
- *
82
- * @param {string} [backgroundField='transparent'] Fundo dos campos (email/senha).
83
- * @param {string} [colorField='#000'] Cor do texto dos campos (email/senha).
84
- * @param {string} [colorFocusedField] Cor do estado focado do campo (se suportado pelos campos internos).
85
- * @param {string} [borderRadiusField='0px'] Raio da borda dos campos.
86
- * @param {string} [boxShadowField='none'] Sombra dos campos.
87
- * @param {string} [borderColorField='#ccc'] Cor da borda dos campos.
88
- * @param {string} [paddingField='4px 8px'] Espaçamento interno dos campos.
89
- *
90
- * @param {string} [textButton='Enviar'] Texto do botão principal.
91
- * @param {TypographyVariant} [variantButton='body1'] Variante do Typography usada no texto do botão.
92
- * @param {string} [backgroundButton='transparent'] Fundo do botão principal.
93
- * @param {string} [backgroundHoverButton='transparent'] Fundo do botão no hover.
94
- * @param {string} [colorButton='#000'] Cor do texto do botão.
95
- * @param {string} [colorHoverButton='#000'] Cor do texto do botão no hover.
96
- * @param {string} [borderRadiusButton='0'] Raio da borda do botão.
97
- * @param {string} [borderButton='none'] Borda do botão.
98
- * @param {string} [boxShadowButton='none'] Sombra do botão.
99
- * @param {string} [widthButton='auto'] Largura do botão.
100
- * @param {string} [heightButton='auto'] Altura do botão.
101
- * @param {string} [paddingButton='4px 24px'] Padding do botão.
102
- * @param {string} [marginButton='0'] Margem do botão.
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.
103
33
  *
104
- * @param {string} color_message_sucess Cor padrão para mensagem de sucesso (caso `onClick` não retorne `color`). Obrigatório.
105
- * @param {string} color_message_erro Cor padrão para mensagem de erro (caso `onClick` não retorne `color`). Obrigatório.
106
- * @param {string} color_link Cor aplicada nos links "Esqueceu sua senha?" e "Criar conta". Obrigatório.
107
- * @param {string} color_separador Cor da linha separadora (Divider). Obrigatório.
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.
108
42
  *
109
43
  * @param {(data: { email: string; password: string }) => Promise<ClickResult> | ClickResult} [onClick]
110
- * Handler chamado ao submeter o formulário. Recebe `{ email, password }` e deve retornar um `ClickResult`.
111
- * - Se `success` for `true`, exibe `message` com `color_message_sucess` (ou `result.color` se fornecida)
112
- * - Se `success` for `false`, exibe `message` com `color_message_erro` (ou `result.color` se fornecida)
113
- * Se não for informado, o componente exibirá a mensagem: "Nenhuma ação foi configurada para o botão.".
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.
114
119
  *
115
- * @param {React.ReactNode} [children] Conteúdo extra renderizado ao final do container (abaixo da mensagem).
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.
116
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
+
117
127
  * @example
118
128
  * ```tsx
119
- * import FormLogin from '@/components/FormLogin';
120
- * import LockOutlinedIcon from '@mui/icons-material/LockOutlined';
121
- * import { Button } from '@mui/material';
129
+ * import { FormLogin } from '@/components/FormLogin';
130
+ * import GoogleIcon from '@mui/icons-material/Google';
122
131
  *
123
- * export default function Example() {
132
+ * const Example = () => {
124
133
  * return (
125
134
  * <FormLogin
126
- * urlRecuperarConta="/recuperar"
127
- * urlCriarConta="/cadastro"
128
- * Icon={LockOutlinedIcon}
129
- * titulo={() => <h2>Entrar</h2>}
130
- * googleButton={() => <Button variant="outlined">Continuar com Google</Button>}
131
- * color="#111"
132
- * background="#fff"
133
- * borderRadius="12px"
134
- * boxShadow="0 10px 30px rgba(0,0,0,0.08)"
135
- * backgroundField="#fafafa"
136
- * borderColorField="#e0e0e0"
137
- * paddingField="10px 12px"
138
- * textButton="Acessar"
139
- * backgroundButton="#111"
140
- * backgroundHoverButton="#000"
141
- * colorButton="#fff"
142
- * colorHoverButton="#fff"
143
- * borderRadiusButton="10px"
144
- * paddingButton="10px 16px"
145
- * color_message_sucess="#1b5e20"
146
- * color_message_erro="#b71c1c"
147
- * color_link="#1976d2"
148
- * color_separador="#e0e0e0"
135
+ * urlCriarConta="/criar-conta"
136
+ * urlRecuperarConta="/recuperar-senha"
137
+ * googleButton={() => <button>Entrar com Google</button>}
149
138
  * onClick={async ({ email, password }) => {
150
- * if (email === 'teste@exemplo.com' && password === '123') {
139
+ * if (email === 'teste@teste.com' && password === '123') {
151
140
  * return { success: true, message: 'Login realizado com sucesso!' };
152
141
  * }
153
- * return { success: false, message: 'Email ou senha inválidos.' };
142
+ * return { success: false, message: 'Credenciais inválidas.' };
154
143
  * }}
155
144
  * />
156
145
  * );
157
- * }
146
+ * };
158
147
  * ```
159
148
  */
160
149
  declare const FormLogin: React.FC<FormLoginProps>;