@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.
- package/dist/components/NotificationSnackbar.d.ts +1 -2
- package/dist/components/NotificationSnackbar.js +1 -1
- package/dist/components/NotificationSnackbar.js.map +1 -1
- package/dist/components/SelectField.d.ts +73 -0
- package/dist/components/SelectField.js +141 -0
- package/dist/components/SelectField.js.map +1 -0
- package/dist/components/TextFieldPassword.d.ts +144 -76
- package/dist/components/TextFieldPassword.js +163 -102
- package/dist/components/TextFieldPassword.js.map +1 -1
- package/dist/components/TextFieldValidate.d.ts +88 -43
- package/dist/components/TextFieldValidate.js +100 -93
- package/dist/components/TextFieldValidate.js.map +1 -1
- package/dist/components/login/ClickResult.d.ts +11 -0
- package/dist/components/login/ClickResult.js +2 -0
- package/dist/components/login/ClickResult.js.map +1 -0
- package/dist/components/login/FormLogin.d.ts +113 -124
- package/dist/components/login/FormLogin.js +137 -124
- package/dist/components/login/FormLogin.js.map +1 -1
- package/dist/components/login/FormPasswordRecovery.d.ts +97 -110
- package/dist/components/login/FormPasswordRecovery.js +132 -105
- package/dist/components/login/FormPasswordRecovery.js.map +1 -1
- package/dist/components/login/FormSignUp.d.ts +114 -127
- package/dist/components/login/FormSignUp.js +138 -134
- package/dist/components/login/FormSignUp.js.map +1 -1
- package/dist/components/login/GoogleButton.d.ts +1 -4
- package/dist/components/login/GoogleButton.js.map +1 -1
- package/dist/components/login/StyleLogin.d.ts +14 -0
- package/dist/components/login/StyleLogin.js +57 -0
- package/dist/components/login/StyleLogin.js.map +1 -0
- package/dist/components/{FormStyled.d.ts → recaptcha/FormStyled.d.ts} +0 -7
- package/dist/components/{FormStyled.js → recaptcha/FormStyled.js} +0 -13
- package/dist/components/recaptcha/FormStyled.js.map +1 -0
- package/dist/components/recaptcha/RecaptchaForm.js +1 -1
- package/dist/components/recaptcha/RecaptchaForm.js.map +1 -1
- package/dist/constant.d.ts +9 -0
- package/dist/constant.js +10 -0
- package/dist/constant.js.map +1 -0
- package/dist/index.d.ts +1 -4
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/style/ButtonFormStyled.js +22 -0
- package/dist/style/ButtonFormStyled.js.map +1 -0
- package/dist/style/LinkFormStyled.d.ts +7 -0
- package/dist/style/LinkFormStyled.js +15 -0
- package/dist/style/LinkFormStyled.js.map +1 -0
- package/dist/style/TextFieldStyle.d.ts +16 -0
- package/dist/style/TextFieldStyle.js +57 -0
- package/dist/style/TextFieldStyle.js.map +1 -0
- package/dist/theme.js +46 -18
- package/dist/theme.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types/FieldProps.d.ts +4 -0
- package/package.json +5 -3
- package/dist/components/ButtonFormStyled.js +0 -22
- package/dist/components/ButtonFormStyled.js.map +0 -1
- package/dist/components/FormStyled.js.map +0 -1
- package/dist/types/BorderProps.d.ts +0 -6
- package/dist/types/BorderProps.js +0 -2
- package/dist/types/BorderProps.js.map +0 -1
- package/dist/types/ColorProps.d.ts +0 -9
- package/dist/types/ColorProps.js +0 -2
- package/dist/types/ColorProps.js.map +0 -1
- package/dist/types/LayoutProps.d.ts +0 -7
- package/dist/types/LayoutProps.js +0 -2
- package/dist/types/LayoutProps.js.map +0 -1
- package/dist/types/TextProps.d.ts +0 -5
- package/dist/types/TextProps.js +0 -2
- package/dist/types/TextProps.js.map +0 -1
- /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 {
|
|
4
|
-
import
|
|
5
|
-
|
|
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
|
-
*
|
|
86
|
-
*
|
|
87
|
-
*
|
|
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
|
-
*
|
|
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 {
|
|
98
|
-
* @param {
|
|
99
|
-
*
|
|
100
|
-
* @param {
|
|
101
|
-
* @param {
|
|
102
|
-
*
|
|
103
|
-
*
|
|
104
|
-
*
|
|
105
|
-
*
|
|
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 {
|
|
108
|
-
*
|
|
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
|
|
112
|
-
* @param {
|
|
113
|
-
* @param {
|
|
114
|
-
* @param {
|
|
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
|
-
*
|
|
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
|
|
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
|
-
|
|
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":";AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,
|
|
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 @@
|
|
|
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 '
|
|
7
|
-
import {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
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
|
-
|
|
38
|
-
|
|
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
|
|
67
|
-
*
|
|
68
|
-
*
|
|
69
|
-
*
|
|
70
|
-
*
|
|
71
|
-
* @param {string}
|
|
72
|
-
*
|
|
73
|
-
* @param {
|
|
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 {
|
|
105
|
-
*
|
|
106
|
-
* @param {
|
|
107
|
-
*
|
|
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
|
-
*
|
|
111
|
-
*
|
|
112
|
-
*
|
|
113
|
-
*
|
|
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 {
|
|
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
|
|
121
|
-
* import { Button } from '@mui/material';
|
|
129
|
+
* import { FormLogin } from '@/components/FormLogin';
|
|
130
|
+
* import GoogleIcon from '@mui/icons-material/Google';
|
|
122
131
|
*
|
|
123
|
-
*
|
|
132
|
+
* const Example = () => {
|
|
124
133
|
* return (
|
|
125
134
|
* <FormLogin
|
|
126
|
-
*
|
|
127
|
-
*
|
|
128
|
-
*
|
|
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@
|
|
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: '
|
|
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>;
|