@pipelinesolucoes/form 1.2.0-beta.2 → 1.2.0-beta.21

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 (56) hide show
  1. package/dist/components/ChipList.d.ts +9 -0
  2. package/dist/components/ChipList.js +60 -0
  3. package/dist/components/ChipList.js.map +1 -0
  4. package/dist/components/SelectField.d.ts +73 -0
  5. package/dist/components/SelectField.js +142 -0
  6. package/dist/components/SelectField.js.map +1 -0
  7. package/dist/components/TextFieldPassword.d.ts +141 -43
  8. package/dist/components/TextFieldPassword.js +160 -98
  9. package/dist/components/TextFieldPassword.js.map +1 -1
  10. package/dist/components/TextFieldValidate.d.ts +85 -38
  11. package/dist/components/TextFieldValidate.js +102 -94
  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 -94
  17. package/dist/components/login/FormLogin.js +136 -141
  18. package/dist/components/login/FormLogin.js.map +1 -1
  19. package/dist/components/login/FormPasswordRecovery.d.ts +97 -89
  20. package/dist/components/login/FormPasswordRecovery.js +131 -124
  21. package/dist/components/login/FormPasswordRecovery.js.map +1 -1
  22. package/dist/components/login/FormSignUp.d.ts +114 -100
  23. package/dist/components/login/FormSignUp.js +138 -153
  24. package/dist/components/login/FormSignUp.js.map +1 -1
  25. package/dist/components/login/StyleLogin.d.ts +14 -0
  26. package/dist/components/login/StyleLogin.js +57 -0
  27. package/dist/components/login/StyleLogin.js.map +1 -0
  28. package/dist/components/recaptcha/RecaptchaForm.d.ts +7 -13
  29. package/dist/components/recaptcha/RecaptchaForm.js +26 -25
  30. package/dist/components/recaptcha/RecaptchaForm.js.map +1 -1
  31. package/dist/constant.d.ts +11 -0
  32. package/dist/constant.js +12 -0
  33. package/dist/constant.js.map +1 -0
  34. package/dist/index.d.ts +2 -0
  35. package/dist/index.js +2 -0
  36. package/dist/index.js.map +1 -1
  37. package/dist/{components/style → style}/ButtonFormStyled.d.ts +1 -1
  38. package/dist/{components/style → style}/ButtonFormStyled.js +6 -5
  39. package/dist/style/ButtonFormStyled.js.map +1 -0
  40. package/dist/{components/style → style}/LinkFormStyled.d.ts +3 -3
  41. package/dist/style/LinkFormStyled.js +16 -0
  42. package/dist/style/LinkFormStyled.js.map +1 -0
  43. package/dist/style/TextFieldStyle.d.ts +18 -0
  44. package/dist/style/TextFieldStyle.js +60 -0
  45. package/dist/style/TextFieldStyle.js.map +1 -0
  46. package/dist/theme.js +46 -18
  47. package/dist/theme.js.map +1 -1
  48. package/dist/tsconfig.tsbuildinfo +1 -1
  49. package/dist/types/FieldProps.d.ts +1 -0
  50. package/package.json +2 -2
  51. package/dist/components/recaptcha/FormStyled.d.ts +0 -30
  52. package/dist/components/recaptcha/FormStyled.js +0 -67
  53. package/dist/components/recaptcha/FormStyled.js.map +0 -1
  54. package/dist/components/style/ButtonFormStyled.js.map +0 -1
  55. package/dist/components/style/LinkFormStyled.js +0 -15
  56. package/dist/components/style/LinkFormStyled.js.map +0 -1
@@ -1,69 +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, margin }) => {
18
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
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 : '#fff';
22
- const bgDisabled = (_d = backgroundDisabled !== null && backgroundDisabled !== void 0 ? backgroundDisabled : field === null || field === void 0 ? void 0 : field.backgroundDisabled) !== null && _d !== void 0 ? _d : "#E5E7EB";
23
- const txt = (_e = colorText !== null && colorText !== void 0 ? colorText : field === null || field === void 0 ? void 0 : field.color) !== null && _e !== void 0 ? _e : '#000';
24
- const txtDisabled = (_f = colorDisabled !== null && colorDisabled !== void 0 ? colorDisabled : field === null || field === void 0 ? void 0 : field.colorDisabled) !== null && _f !== void 0 ? _f : "#9CA3AF";
25
- const br = (_g = borderRadius !== null && borderRadius !== void 0 ? borderRadius : field === null || field === void 0 ? void 0 : field.borderRadius) !== null && _g !== void 0 ? _g : "0";
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 : '#ccc';
28
- const bdFocused = (_k = colorFocused !== null && colorFocused !== void 0 ? colorFocused : field === null || field === void 0 ? void 0 : field.colorFocused) !== null && _k !== void 0 ? _k : '#1976d2';
29
- 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'; // pode deixar undefined se quiser respeitar o default do MUI
30
- const mg = (_m = margin !== null && margin !== void 0 ? margin : field === null || field === void 0 ? void 0 : field.margin) !== null && _m !== void 0 ? _m : '0';
31
- return {
32
- // (opcional) pode manter, mas o mais importante é estilizar os slots internos:
33
- background: bg,
34
- borderRadius: br,
35
- boxShadow: sh,
36
- "& .MuiInputBase-root": {
37
- color: txt,
38
- },
39
- "& .MuiOutlinedInput-root": Object.assign(Object.assign({ borderRadius: br, boxShadow: sh }, (pad ? { padding: pad } : {})), { "& .MuiOutlinedInput-notchedOutline": {
40
- borderColor: bd,
41
- }, "&:hover .MuiOutlinedInput-notchedOutline": {
42
- borderColor: bd,
43
- }, "&.Mui-focused .MuiOutlinedInput-notchedOutline": {
44
- borderColor: bdFocused,
45
- }, "&.Mui-disabled": {
46
- background: bgDisabled,
47
- color: txtDisabled,
48
- "& .MuiOutlinedInput-notchedOutline": {
49
- borderColor: bd,
50
- },
51
- },
52
- // texto digitado quando disabled
53
- "& input.Mui-disabled": {
54
- WebkitTextFillColor: txtDisabled,
55
- } }),
56
- "& .MuiInputLabel-root": {
57
- color: txt,
58
- },
59
- "& .MuiInputLabel-root.Mui-focused": {
60
- color: bdFocused,
61
- },
62
- "& .MuiInputLabel-root.Mui-disabled": {
63
- color: txtDisabled,
64
- },
65
- };
66
- });
3
+ import { useTheme } from '@mui/material/styles';
4
+ import { TextFieldStyled } from '../style/TextFieldStyle';
5
+ import { fbbackground, fbbackgroundDisabled, fbborderColor, fbborderRadius, fbboxShadow, fbcolor, fbcolorDisabled, fbcolorFocused, fbheigth, fbpadding } from '../constant';
67
6
  const computeError = (value, { required, requiredMessage, minLength, pattern, patternMessage, validate, }) => {
68
7
  const v = value !== null && value !== void 0 ? value : '';
69
8
  if (required && v.trim().length === 0)
@@ -83,48 +22,101 @@ const computeError = (value, { required, requiredMessage, minLength, pattern, pa
83
22
  return null;
84
23
  };
85
24
  /**
86
- * Componente de campo de texto com validação, baseado no TextField do Material UI.
87
- * Permite personalização visual via `styled` e suporte a validações comuns
88
- * (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
89
35
  *
90
- * 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).
91
50
  *
92
- * @param {string} [id] Id do campo (replicado no input do MUI).
93
- * @param {string} [label] Rótulo exibido acima do campo.
94
- * @param {string} [placeholder] Placeholder exibido quando o campo está vazio.
95
- * @param {string} [value=''] Valor atual do campo (modo controlado).
96
51
  * @param {boolean} [disabled=false] Define se o campo está desabilitado.
97
52
  *
98
- * @param {string} [background='#fff'] Cor de fundo do campo.
99
- * @param {string} [backgroundDisabled='#E5E7EB'] Cor de fundo do campo quando o campo está desabilitado.
100
- * @param {string} [color='#000'] Cor do texto e do label.
101
- * @param {string} [colorFocused='#1976d2'] Cor da borda quando o campo está focado.
102
- * @param {string} [colorDisabled='#9CA3AF'] Cor do texto e do label quando o campo está focado.
103
- * @param {string} [borderColor='#ccc'] Cor da borda no estado normal e hover.
104
- * @param {string} [borderRadius='0'] Raio da borda do campo.
105
- * @param {string} [boxShadow='none'] Sombra aplicada ao campo.
106
- * @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`.
107
71
  *
108
- * @param {boolean} [multiline=false] Define se o campo é multilinha.
109
- * @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
110
102
  *
111
103
  * @param {boolean} [required=false] Indica se o campo é obrigatório.
112
- * @param {string} [requiredMessage='Campo obrigatório'] Mensagem exibida quando o campo obrigatório está vazio.
113
- * @param {number} [minLength] Número mínimo de caracteres.
114
- * @param {RegExp | string} [pattern] Expressão regular para validação do valor.
115
- * @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.
116
108
  * @param {(value: string) => string | null | undefined} [validate] Função de validação customizada.
117
- * @param {'change' | 'blur'} [showErrorOn='blur'] Momento em que o erro deve ser exibido.
118
109
  *
119
- * @param {number} [maxLength] Limite máximo de caracteres permitido no input.
110
+ * ---
111
+ * ### Eventos
112
+ *
120
113
  * @param {(event: React.ChangeEvent<HTMLInputElement>) => void} [onChange] Callback disparado ao alterar o valor.
121
114
  * @param {(event: React.FocusEvent<HTMLInputElement>) => void} [onBlur] Callback disparado ao perder o foco.
122
115
  *
116
+ * ---
117
+ *
123
118
  * @example
124
119
  * ```tsx
125
- * import React from 'react';
126
- * import TextFieldValidate from '@/components/TextFieldValidate';
127
- *
128
120
  * const Example = () => {
129
121
  * const [email, setEmail] = React.useState('');
130
122
  *
@@ -140,12 +132,14 @@ const computeError = (value, { required, requiredMessage, minLength, pattern, pa
140
132
  * showErrorOn="blur"
141
133
  * maxLength={120}
142
134
  * borderRadius="6px"
135
+ * textVariant="subtitle2"
143
136
  * />
144
137
  * );
145
138
  * };
146
139
  * ```
147
140
  */
148
- 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 }) => {
141
+ const TextFieldValidate = ({ id, label, background, backgroundFocused, 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, height, }) => {
142
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q;
149
143
  const [touched, setTouched] = React.useState(false);
150
144
  const errorMessage = React.useMemo(() => {
151
145
  if (showErrorOn === 'change') {
@@ -187,7 +181,21 @@ const TextFieldValidate = ({ id, label, background, backgroundDisabled, color, c
187
181
  onBlur(event);
188
182
  }
189
183
  };
190
- 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 bgFocused = (_d = backgroundFocused !== null && backgroundFocused !== void 0 ? backgroundFocused : field === null || field === void 0 ? void 0 : field.backgroundFocused) !== null && _d !== void 0 ? _d : bg;
188
+ const bgDisabled = (_e = backgroundDisabled !== null && backgroundDisabled !== void 0 ? backgroundDisabled : field === null || field === void 0 ? void 0 : field.backgroundDisabled) !== null && _e !== void 0 ? _e : fbbackgroundDisabled;
189
+ const txt = (_f = color !== null && color !== void 0 ? color : field === null || field === void 0 ? void 0 : field.color) !== null && _f !== void 0 ? _f : fbcolor;
190
+ const txtDisabled = (_g = colorDisabled !== null && colorDisabled !== void 0 ? colorDisabled : field === null || field === void 0 ? void 0 : field.colorDisabled) !== null && _g !== void 0 ? _g : fbcolorDisabled;
191
+ const br = (_h = borderRadius !== null && borderRadius !== void 0 ? borderRadius : field === null || field === void 0 ? void 0 : field.borderRadius) !== null && _h !== void 0 ? _h : fbborderRadius;
192
+ const sh = (_j = boxShadow !== null && boxShadow !== void 0 ? boxShadow : field === null || field === void 0 ? void 0 : field.boxShadow) !== null && _j !== void 0 ? _j : fbboxShadow;
193
+ const bd = (_k = borderColor !== null && borderColor !== void 0 ? borderColor : field === null || field === void 0 ? void 0 : field.borderColor) !== null && _k !== void 0 ? _k : fbborderColor;
194
+ const bdFocused = (_l = colorFocused !== null && colorFocused !== void 0 ? colorFocused : field === null || field === void 0 ? void 0 : field.colorFocused) !== null && _l !== void 0 ? _l : fbcolorFocused;
195
+ const pad = (_m = padding !== null && padding !== void 0 ? padding : field === null || field === void 0 ? void 0 : field.padding) !== null && _m !== void 0 ? _m : fbpadding;
196
+ const hg = multiline ? undefined : ((_o = height !== null && height !== void 0 ? height : field === null || field === void 0 ? void 0 : field.height) !== null && _o !== void 0 ? _o : fbheigth);
197
+ const typo = (_q = (_p = (textVariant && theme.typography[textVariant])) !== null && _p !== void 0 ? _p : field === null || field === void 0 ? void 0 : field.typography) !== null && _q !== void 0 ? _q : theme.typography.body1;
198
+ return (_jsx(TextFieldStyled, { id: id, label: label, placeholder: placeholder, value: value, typo: typo, onChange: onChange, onBlur: handleBlur, background: bg, backgroundFocused: bgFocused, 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, height: hg, error: Boolean(errorMessage), helperText: errorMessage || ' ', slotProps: {
191
199
  input: {
192
200
  inputProps: typeof maxLength === 'number' ? { maxLength } : undefined,
193
201
  },
@@ -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":""}
@@ -3,30 +3,18 @@ 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 { BorderProps, ColorProps } from '@pipelinesolucoes/theme';
7
- /**
8
- * Retorno do onClick/onSubmit do componente pai.
9
- * - success: define se a ação foi bem sucedida
10
- * - message: mensagem para exibir no próprio FormLogin
11
- * - color: cor opcional para a mensagem (caso queira sobrescrever as cores padrão)
12
- */
13
- export interface ClickResult {
14
- success: boolean;
15
- message: string;
16
- color?: string;
17
- }
18
- 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;
19
11
  Icon?: React.ElementType<SvgIconProps>;
20
12
  titulo?: () => React.ReactElement;
21
13
  googleButton: () => React.ReactElement;
22
14
  textButton?: string;
23
15
  variantButton?: TypographyVariant;
24
- color_message_sucess: string;
25
- color_message_erro: string;
26
- color_link: string;
27
- color_separador: string;
28
- urlRecuperarConta: string;
29
- urlCriarConta: string;
16
+ colorLink?: string;
17
+ divider?: string;
30
18
  children?: React.ReactNode;
31
19
  onClick?: (data: {
32
20
  email: string;
@@ -34,97 +22,128 @@ export interface FormLoginProps extends ColorProps, BorderProps, ButtonProps, Fi
34
22
  }) => Promise<ClickResult> | ClickResult;
35
23
  }
36
24
  /**
37
- * Componente de formulário de login com suporte a autenticação via Google e login por email/senha.
38
- * Inclui validação básica de email, exibição de mensagens de erro/sucesso retornadas pelo handler `onClick`
39
- * e customização visual via props (container, campos, botão e links).
40
- *
41
- * @param {string} urlRecuperarConta URL para a página de recuperação de conta/senha. Obrigatório.
42
- * @param {string} urlCriarConta URL para a página de criação de conta. Obrigatório.
43
- * @param {React.ElementType<SvgIconProps>} [Icon] Ícone opcional (MUI SvgIcon) exibido no topo do formulário.
44
- * @param {() => React.ReactElement} [titulo] Função que retorna o conteúdo do título exibido no topo do formulário.
45
- * @param {() => React.ReactElement} googleButton Função que retorna o botão de login com Google. Obrigatório.
46
- *
47
- * @param {string} [background='transparent'] Cor de fundo do container principal.
48
- * @param {string} [borderRadius='0'] Raio da borda do container principal.
49
- * @param {string} [border='none'] Borda do container principal.
50
- * @param {string} [boxShadow='none'] Sombra do container principal.
51
- *
52
- * @param {string} [backgroundField='transparent'] Fundo dos campos (email/senha).
53
- * @param {string} [colorField='#000'] Cor do texto dos campos (email/senha).
54
- * @param {string} [colorFocusedField] Cor do estado focado do campo (se suportado pelos campos internos).
55
- * @param {string} [borderRadiusField='0px'] Raio da borda dos campos.
56
- * @param {string} [boxShadowField='none'] Sombra dos campos.
57
- * @param {string} [borderColorField='#ccc'] Cor da borda dos campos.
58
- * @param {string} [paddingField='4px 8px'] Espaçamento interno dos campos.
59
- *
60
- * @param {string} [textButton='Enviar'] Texto do botão principal.
61
- * @param {TypographyVariant} [variantButton='body1'] Variante do Typography usada no texto do botão.
62
- * @param {string} [backgroundButton='transparent'] Fundo do botão principal.
63
- * @param {string} [backgroundHoverButton='transparent'] Fundo do botão no hover.
64
- * @param {string} [colorButton='#000'] Cor do texto do botão.
65
- * @param {string} [colorHoverButton='#000'] Cor do texto do botão no hover.
66
- * @param {string} [borderRadiusButton='0'] Raio da borda do botão.
67
- * @param {string} [borderButton='none'] Borda do botão.
68
- * @param {string} [boxShadowButton='none'] Sombra do botão.
69
- * @param {string} [widthButton='auto'] Largura do botão.
70
- * @param {string} [heightButton='auto'] Altura do botão.
71
- * @param {string} [paddingButton='4px 24px'] Padding do botão.
72
- * @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.
73
33
  *
74
- * @param {string} color_message_sucess Cor padrão para mensagem de sucesso (caso `onClick` não retorne `color`). Obrigatório.
75
- * @param {string} color_message_erro Cor padrão para mensagem de erro (caso `onClick` não retorne `color`). Obrigatório.
76
- * @param {string} color_link Cor aplicada nos links "Esqueceu sua senha?" e "Criar conta". Obrigatório.
77
- * @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.
78
42
  *
79
43
  * @param {(data: { email: string; password: string }) => Promise<ClickResult> | ClickResult} [onClick]
80
- * Handler chamado ao submeter o formulário. Recebe `{ email, password }` e deve retornar um `ClickResult`.
81
- * - Se `success` for `true`, exibe `message` com `color_message_sucess` (ou `result.color` se fornecida)
82
- * - Se `success` for `false`, exibe `message` com `color_message_erro` (ou `result.color` se fornecida)
83
- * 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.
84
119
  *
85
- * @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.
86
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
+
87
127
  * @example
88
128
  * ```tsx
89
- * import FormLogin from '@/components/FormLogin';
90
- * import LockOutlinedIcon from '@mui/icons-material/LockOutlined';
91
- * import { Button } from '@mui/material';
129
+ * import { FormLogin } from '@/components/FormLogin';
130
+ * import GoogleIcon from '@mui/icons-material/Google';
92
131
  *
93
- * export default function Example() {
132
+ * const Example = () => {
94
133
  * return (
95
134
  * <FormLogin
96
- * urlRecuperarConta="/recuperar"
97
- * urlCriarConta="/cadastro"
98
- * Icon={LockOutlinedIcon}
99
- * titulo={() => <h2>Entrar</h2>}
100
- * googleButton={() => <Button variant="outlined">Continuar com Google</Button>}
101
- * color="#111"
102
- * background="#fff"
103
- * borderRadius="12px"
104
- * boxShadow="0 10px 30px rgba(0,0,0,0.08)"
105
- * backgroundField="#fafafa"
106
- * borderColorField="#e0e0e0"
107
- * paddingField="10px 12px"
108
- * textButton="Acessar"
109
- * backgroundButton="#111"
110
- * backgroundHoverButton="#000"
111
- * colorButton="#fff"
112
- * colorHoverButton="#fff"
113
- * borderRadiusButton="10px"
114
- * paddingButton="10px 16px"
115
- * color_message_sucess="#1b5e20"
116
- * color_message_erro="#b71c1c"
117
- * color_link="#1976d2"
118
- * color_separador="#e0e0e0"
135
+ * urlCriarConta="/criar-conta"
136
+ * urlRecuperarConta="/recuperar-senha"
137
+ * googleButton={() => <button>Entrar com Google</button>}
119
138
  * onClick={async ({ email, password }) => {
120
- * if (email === 'teste@exemplo.com' && password === '123') {
139
+ * if (email === 'teste@teste.com' && password === '123') {
121
140
  * return { success: true, message: 'Login realizado com sucesso!' };
122
141
  * }
123
- * return { success: false, message: 'Email ou senha inválidos.' };
142
+ * return { success: false, message: 'Credenciais inválidas.' };
124
143
  * }}
125
144
  * />
126
145
  * );
127
- * }
146
+ * };
128
147
  * ```
129
148
  */
130
149
  declare const FormLogin: React.FC<FormLoginProps>;