@homefile/components-v2 1.2.1 → 1.3.0

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 (35) hide show
  1. package/dist/components/animations/CloudsAnimation.js +1 -1
  2. package/dist/components/onboarding/pages/ActivateAccount.js +2 -2
  3. package/dist/components/onboarding/pages/BasePageWrapper.d.ts +2 -0
  4. package/dist/components/onboarding/pages/BasePageWrapper.js +5 -0
  5. package/dist/components/onboarding/pages/EmailValidation.js +3 -3
  6. package/dist/components/onboarding/pages/NewPassword.js +2 -2
  7. package/dist/components/onboarding/pages/ResendResetPassword.js +3 -3
  8. package/dist/components/onboarding/pages/ResetPassword.js +2 -2
  9. package/dist/components/onboarding/pages/SignIn.js +2 -2
  10. package/dist/components/onboarding/pages/SignUp.js +5 -5
  11. package/dist/components/onboarding/pages/TwoFactor.js +2 -2
  12. package/dist/components/onboarding/pages/index.d.ts +10 -9
  13. package/dist/components/onboarding/pages/index.js +10 -9
  14. package/dist/stories/onboarding/pages/NewPassword.stories.js +2 -3
  15. package/dist/stories/onboarding/pages/ResendResetPassword.stories.js +2 -3
  16. package/dist/stories/onboarding/pages/ResetPassword.stories.js +2 -3
  17. package/dist/stories/onboarding/pages/SignIn.stories.js +2 -3
  18. package/dist/stories/onboarding/pages/SignUp.stories.js +2 -3
  19. package/package.json +1 -1
  20. package/src/components/animations/CloudsAnimation.tsx +10 -9
  21. package/src/components/onboarding/pages/ActivateAccount.tsx +8 -3
  22. package/src/components/onboarding/pages/BasePageWrapper.tsx +10 -0
  23. package/src/components/onboarding/pages/EmailValidation.tsx +3 -3
  24. package/src/components/onboarding/pages/NewPassword.tsx +9 -3
  25. package/src/components/onboarding/pages/ResendResetPassword.tsx +3 -3
  26. package/src/components/onboarding/pages/ResetPassword.tsx +3 -2
  27. package/src/components/onboarding/pages/SignIn.tsx +3 -4
  28. package/src/components/onboarding/pages/SignUp.tsx +9 -8
  29. package/src/components/onboarding/pages/TwoFactor.tsx +9 -3
  30. package/src/components/onboarding/pages/index.ts +10 -9
  31. package/src/stories/onboarding/pages/NewPassword.stories.tsx +3 -4
  32. package/src/stories/onboarding/pages/ResendResetPassword.stories.tsx +3 -4
  33. package/src/stories/onboarding/pages/ResetPassword.stories.tsx +3 -4
  34. package/src/stories/onboarding/pages/SignIn.stories.tsx +3 -4
  35. package/src/stories/onboarding/pages/SignUp.stories.tsx +3 -4
@@ -69,5 +69,5 @@ export const CloudsAnimation = ({ children }) => {
69
69
  const isMobile = width < 768;
70
70
  if (isMobile)
71
71
  return _jsx(Fragment, { children: "children" });
72
- return (_jsxs(Box, { h: "100vh", w: "full", position: "relative", bgGradient: colors.skyGradient, overflow: "hidden", children: [children, _jsx(Image, { src: Cloud1, position: "absolute", w: "auto", h: "80px", top: "50px", animation: `${moveRightToLeftWithFade3} 400s linear infinite`, zIndex: "1" }), _jsx(Image, { src: Cloud2, position: "absolute", w: "auto", h: "120px", top: "80px", animation: `${moveRightToLeftWithFade3} 200s linear infinite`, zIndex: "1" }), _jsx(Image, { src: Cloud3, position: "absolute", w: "auto", h: "160px", top: "120px", animation: `${moveRightToLeftWithFade3} 130s linear infinite`, zIndex: "1" }), _jsx(Image, { src: Cloud1, position: "absolute", w: "auto", h: "100px", top: "160px", animation: `${moveRightToLeftWithFade2} 400s linear infinite`, zIndex: "1" }), _jsx(Image, { src: Cloud2, position: "absolute", w: "auto", h: "112px", top: "220px", animation: `${moveRightToLeftWithFade2} 200s linear infinite`, zIndex: "1" }), _jsx(Image, { src: Cloud3, position: "absolute", w: "auto", h: "160px", top: "300px", animation: `${moveRightToLeftWithFade2} 130s linear infinite`, zIndex: "1" }), _jsx(Image, { src: Airplane, position: "absolute", w: "auto", h: "40px", top: "85px", animation: `${moveLeftToRightAirplane} 500s cubic-bezier(1, 1, 1, 500) infinite`, zIndex: "1" }), _jsx(Image, { src: TreesCrop, position: "fixed", bottom: "0", right: "2", w: "auto", h: "80px", zIndex: "1" }), _jsx(Image, { src: TreesCrop2, position: "fixed", bottom: "0", left: "2", w: "auto", h: "80px", zIndex: "1" })] }));
72
+ return (_jsxs(Box, { minH: "100vh", w: "full", position: "relative", bgGradient: colors.skyGradient, overflowX: "hidden", overflowY: "scroll", children: [children, _jsx(Image, { src: Cloud1, position: "fixed", w: "auto", h: "80px", top: "50px", animation: `${moveRightToLeftWithFade3} 400s linear infinite`, zIndex: "1" }), _jsx(Image, { src: Cloud2, position: "fixed", w: "auto", h: "120px", top: "80px", animation: `${moveRightToLeftWithFade3} 200s linear infinite`, zIndex: "1" }), _jsx(Image, { src: Cloud3, position: "fixed", w: "auto", h: "160px", top: "120px", animation: `${moveRightToLeftWithFade3} 130s linear infinite`, zIndex: "1" }), _jsx(Image, { src: Cloud1, position: "fixed", w: "auto", h: "100px", top: "160px", animation: `${moveRightToLeftWithFade2} 400s linear infinite`, zIndex: "1" }), _jsx(Image, { src: Cloud2, position: "fixed", w: "auto", h: "112px", top: "220px", animation: `${moveRightToLeftWithFade2} 200s linear infinite`, zIndex: "1" }), _jsx(Image, { src: Cloud3, position: "fixed", w: "auto", h: "160px", top: "300px", animation: `${moveRightToLeftWithFade2} 130s linear infinite`, zIndex: "1" }), _jsx(Image, { src: Airplane, position: "fixed", w: "auto", h: "40px", top: "85px", animation: `${moveLeftToRightAirplane} 500s cubic-bezier(1, 1, 1, 500) infinite`, zIndex: "1" }), _jsx(Image, { src: TreesCrop, position: "fixed", bottom: "0", right: "2", w: "auto", h: "80px", zIndex: "1" }), _jsx(Image, { src: TreesCrop2, position: "fixed", bottom: "0", left: "2", w: "auto", h: "80px", zIndex: "1" })] }));
73
73
  };
@@ -1,11 +1,11 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { t } from 'i18next';
3
3
  import { Box, Container, Text, Center, Button } from '@chakra-ui/react';
4
- import { Logo, WelcomeHeader, ButtonLoader } from '../..';
4
+ import { Logo, WelcomeHeader, ButtonLoader, BasePageWrapper, } from '../..';
5
5
  import { useWindowDimensions } from '../../../hooks';
6
6
  export const ActivateAccount = ({ name, isLoading = false, handleActivateBt, }) => {
7
7
  const { windowDimensions: { width }, } = useWindowDimensions();
8
- return (_jsx(Box, { w: "container.full", zIndex: "2", position: "relative", children: _jsxs(Container, { size: "validation", boxShadow: "lg", children: [_jsx(Container, { variant: "secondary", children: _jsx(Logo, {}) }), _jsxs(Box, { px: ['container.sm', 'container.lg'], children: [_jsx(WelcomeHeader, { description: t('registration.instruction'), greeting: t('welcome.greeting'), name: name }), _jsx(Center, { children: _jsx(Button, { onClick: handleActivateBt, isLoading: isLoading, spinner: _jsx(ButtonLoader, {}), size: "onboarding", children: width < 400
8
+ return (_jsx(BasePageWrapper, { children: _jsxs(Container, { size: "validation", boxShadow: "lg", children: [_jsx(Container, { variant: "secondary", children: _jsx(Logo, {}) }), _jsxs(Box, { px: ['container.sm', 'container.lg'], children: [_jsx(WelcomeHeader, { description: t('registration.instruction'), greeting: t('welcome.greeting'), name: name }), _jsx(Center, { children: _jsx(Button, { onClick: handleActivateBt, isLoading: isLoading, spinner: _jsx(ButtonLoader, {}), size: "onboarding", children: width < 400
9
9
  ? t('registration.activateBtShort')
10
10
  : t('registration.activateBt') }) }), _jsx(Text, { variant: "info", mt: "8", children: t('welcome.signature') })] }), _jsx(Container, { variant: "tertiary", mt: "8", children: _jsx(Center, { h: "12", px: "4", children: _jsx(Text, { variant: "label", children: t('registration.notReply') }) }) })] }) }));
11
11
  };
@@ -0,0 +1,2 @@
1
+ import { PropsWithChildren } from 'react';
2
+ export declare const BasePageWrapper: ({ children }: PropsWithChildren) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,5 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { Box } from '@chakra-ui/react';
3
+ export const BasePageWrapper = ({ children }) => {
4
+ return (_jsx(Box, { w: "container.full", zIndex: "2", position: "relative", mt: "onboarding.top", children: children }));
5
+ };
@@ -1,8 +1,8 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { t } from 'i18next';
3
- import { Box, chakra, Container, Text, Image, Center, Button, } from '@chakra-ui/react';
4
- import { Logo, ButtonLoader } from '../..';
3
+ import { chakra, Container, Text, Image, Center, Button, } from '@chakra-ui/react';
4
+ import { Logo, ButtonLoader, BasePageWrapper } from '../..';
5
5
  import { Confirmation } from '../../../assets/images';
6
6
  export const EmailValidation = ({ email, isLoading = false, handleResendBt, }) => {
7
- return (_jsx(Box, { w: "container.full", zIndex: "2", position: "relative", children: _jsxs(Container, { size: "validation", boxShadow: "lg", children: [_jsxs(Container, { variant: "secondary", children: [_jsx(Logo, {}), _jsxs(Text, { variant: "title", textAlign: "center", px: ['container.sm', 'container.xl'], pb: 6, minH: "6rem", children: [_jsx(chakra.span, { color: "gray.3", children: t('validation.title1') }), _jsx(chakra.span, { color: "blue.2", children: email }), _jsx(chakra.span, { color: "gray.3", children: t('validation.title2') })] }), _jsx(Center, { children: _jsx(Image, { src: Confirmation, alt: "Activate account", h: ['100px', '145px'], w: "auto" }) })] }), _jsx(Text, { variant: "info", px: ['container.md', 'container.lg'], py: "2rem", textAlign: "center", children: t('validation.alert1') }), _jsx(Center, { children: _jsx(Button, { mb: 10, mx: 4, variant: "secondary", onClick: handleResendBt, isLoading: isLoading, spinner: _jsx(ButtonLoader, { isOutlined: true }), size: "onboarding", children: t('validation.resendBt') }) })] }) }));
7
+ return (_jsx(BasePageWrapper, { children: _jsxs(Container, { size: "validation", boxShadow: "lg", children: [_jsxs(Container, { variant: "secondary", children: [_jsx(Logo, {}), _jsxs(Text, { variant: "title", textAlign: "center", px: ['container.sm', 'container.xl'], pb: 6, minH: "6rem", children: [_jsx(chakra.span, { color: "gray.3", children: t('validation.title1') }), _jsx(chakra.span, { color: "blue.2", children: email }), _jsx(chakra.span, { color: "gray.3", children: t('validation.title2') })] }), _jsx(Center, { children: _jsx(Image, { src: Confirmation, alt: "Activate account", h: ['100px', '145px'], w: "auto" }) })] }), _jsx(Text, { variant: "info", px: ['container.md', 'container.lg'], py: "2rem", textAlign: "center", children: t('validation.alert1') }), _jsx(Center, { children: _jsx(Button, { mb: 10, mx: 4, variant: "secondary", onClick: handleResendBt, isLoading: isLoading, spinner: _jsx(ButtonLoader, { isOutlined: true }), size: "onboarding", children: t('validation.resendBt') }) })] }) }));
8
8
  };
@@ -1,12 +1,12 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { t } from 'i18next';
3
3
  import { Box, Button, Text, Container, Stack, chakra } from '@chakra-ui/react';
4
- import { Logo, Footer, ButtonLoader, PasswordInput } from '../..';
4
+ import { Logo, Footer, ButtonLoader, PasswordInput, BasePageWrapper, } from '../..';
5
5
  import { isValidPassword, passwordMatch } from '../../../utils';
6
6
  import { useNewPassword } from '../../../hooks';
7
7
  export const NewPassword = ({ isLoading, handleReset, userEmail, }) => {
8
8
  const { inputs, handleInputChange, handleSubmit, isValidated } = useNewPassword(handleReset);
9
- return (_jsxs(Box, { w: "container.full", zIndex: "2", position: "relative", children: [_jsxs(Container, { size: "onboarding", boxShadow: "lg", children: [_jsx(Logo, {}), _jsx(Container, { variant: "ghost", mt: 4, mb: 6, children: _jsxs(Text, { variant: "title", textAlign: "center", px: [10, 0], noOfLines: [2, 1], children: [_jsx(chakra.span, { color: "gray.3", children: t('welcome.greeting2') }), _jsx(chakra.span, { color: "blue.2", children: userEmail }), _jsx(chakra.span, { color: "gray.3", children: "," })] }) }), _jsx(Box, { px: ['container.sm', 'container.md', 'container.lg'], pb: "container.lg", mb: 6, children: _jsxs(Stack, { spacing: 8, children: [_jsx(Text, { textAlign: "center", variant: "info", children: t('newPassword.title') }), _jsxs(Stack, { spacing: 3, children: [_jsx(PasswordInput, { errorMessage: !isValidPassword(inputs.password)
9
+ return (_jsxs(BasePageWrapper, { children: [_jsxs(Container, { size: "onboarding", boxShadow: "lg", children: [_jsx(Logo, {}), _jsx(Container, { variant: "ghost", mt: 4, mb: 6, children: _jsxs(Text, { variant: "title", textAlign: "center", px: [10, 0], noOfLines: [2, 1], children: [_jsx(chakra.span, { color: "gray.3", children: t('welcome.greeting2') }), _jsx(chakra.span, { color: "blue.2", children: userEmail }), _jsx(chakra.span, { color: "gray.3", children: "," })] }) }), _jsx(Box, { px: ['container.sm', 'container.md', 'container.lg'], pb: "container.lg", mb: 6, children: _jsxs(Stack, { spacing: 8, children: [_jsx(Text, { textAlign: "center", variant: "info", children: t('newPassword.title') }), _jsxs(Stack, { spacing: 3, children: [_jsx(PasswordInput, { errorMessage: !isValidPassword(inputs.password)
10
10
  ? t('forms.errorPasswordLength')
11
11
  : t('forms.errorPasswordMatch'), hasError: isValidated &&
12
12
  (!isValidPassword(inputs.password) ||
@@ -1,8 +1,8 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { t } from 'i18next';
3
- import { Box, chakra, Container, Text, Image, Center, Button, } from '@chakra-ui/react';
4
- import { ButtonLoader, Logo } from '../..';
3
+ import { chakra, Container, Text, Image, Center, Button, } from '@chakra-ui/react';
4
+ import { BasePageWrapper, ButtonLoader, Logo } from '../..';
5
5
  import { ResendPassword } from '../../../assets/images';
6
6
  export const ResendResetPassword = ({ email, isLoading = false, handleResendBt, }) => {
7
- return (_jsx(Box, { w: "container.full", zIndex: "2", position: "relative", children: _jsxs(Container, { size: "validation", boxShadow: "lg", children: [_jsxs(Container, { variant: "secondary", children: [_jsx(Logo, {}), _jsxs(Text, { variant: "title", textAlign: "center", px: ['container.sm', 'container.xl'], pb: 6, minH: "6rem", children: [_jsx(chakra.span, { color: "gray.3", children: t('validation.title1') }), _jsx(chakra.span, { color: "blue.2", children: email }), _jsx(Text, { variant: "title", children: t('validation.title3') })] }), _jsx(Center, { children: _jsx(Image, { src: ResendPassword, alt: "Activate account", h: ['100px', '145px'], w: "auto" }) })] }), _jsx(Text, { variant: "info", px: ['container.md', 'container.lg'], py: "2rem", textAlign: "center", children: t('validation.alert1') }), _jsx(Center, { children: _jsx(Button, { mb: 10, mx: 4, variant: "secondary", onClick: handleResendBt, isLoading: isLoading, spinner: _jsx(ButtonLoader, { isOutlined: true }), size: "onboarding", children: t('validation.resendResetBt') }) })] }) }));
7
+ return (_jsx(BasePageWrapper, { children: _jsxs(Container, { size: "validation", boxShadow: "lg", children: [_jsxs(Container, { variant: "secondary", children: [_jsx(Logo, {}), _jsxs(Text, { variant: "title", textAlign: "center", px: ['container.sm', 'container.xl'], pb: 6, minH: "6rem", children: [_jsx(chakra.span, { color: "gray.3", children: t('validation.title1') }), _jsx(chakra.span, { color: "blue.2", children: email }), _jsx(Text, { variant: "title", children: t('validation.title3') })] }), _jsx(Center, { children: _jsx(Image, { src: ResendPassword, alt: "Activate account", h: ['100px', '145px'], w: "auto" }) })] }), _jsx(Text, { variant: "info", px: ['container.md', 'container.lg'], py: "2rem", textAlign: "center", children: t('validation.alert1') }), _jsx(Center, { children: _jsx(Button, { mb: 10, mx: 4, variant: "secondary", onClick: handleResendBt, isLoading: isLoading, spinner: _jsx(ButtonLoader, { isOutlined: true }), size: "onboarding", children: t('validation.resendResetBt') }) })] }) }));
8
8
  };
@@ -1,7 +1,7 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { t } from 'i18next';
3
3
  import { Box, Button, Text, Container, Stack } from '@chakra-ui/react';
4
- import { Logo, Footer, PageTitle, CardFooter, TextInput, ButtonLoader, } from '../..';
4
+ import { Logo, Footer, PageTitle, CardFooter, TextInput, ButtonLoader, BasePageWrapper, } from '../..';
5
5
  import { isEmptyField, isValidEmail } from '../../../utils';
6
6
  import { useResetPassword } from '../../../hooks';
7
7
  export const ResetPassword = ({ isLoading, handleReset, handleSignIn, resetError, }) => {
@@ -9,7 +9,7 @@ export const ResetPassword = ({ isLoading, handleReset, handleSignIn, resetError
9
9
  const resetErrorType = resetError
10
10
  ? t('forms.errorEmailNotActivated')
11
11
  : t('forms.errorEmail');
12
- return (_jsxs(Box, { w: "container.full", zIndex: "2", position: "relative", children: [_jsxs(Container, { size: "onboarding", boxShadow: "lg", children: [_jsx(Logo, {}), _jsx(PageTitle, { title: t('reset.title') }), _jsx(Box, { px: ['container.sm', 'container.md', 'container.lg'], mb: 6, children: _jsxs(Stack, { spacing: 8, children: [_jsx(Text, { textAlign: "center", variant: "info", children: t('reset.instruction') }), _jsx(Stack, { spacing: 3, children: _jsx(TextInput, { autoCapitalize: "none", autoCorrect: "off", errorMessage: isEmptyField(inputs.email)
12
+ return (_jsxs(BasePageWrapper, { children: [_jsxs(Container, { size: "onboarding", boxShadow: "lg", children: [_jsx(Logo, {}), _jsx(PageTitle, { title: t('reset.title') }), _jsx(Box, { px: ['container.sm', 'container.md', 'container.lg'], mb: 6, children: _jsxs(Stack, { spacing: 8, children: [_jsx(Text, { textAlign: "center", variant: "info", children: t('reset.instruction') }), _jsx(Stack, { spacing: 3, children: _jsx(TextInput, { autoCapitalize: "none", autoCorrect: "off", errorMessage: isEmptyField(inputs.email)
13
13
  ? t('forms.email') + ' ' + t('forms.required')
14
14
  : resetErrorType, hasError: isValidated &&
15
15
  (resetError ||
@@ -10,12 +10,12 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
10
10
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
11
11
  import { t } from 'i18next';
12
12
  import { Box, Button, Center, Container, Stack } from '@chakra-ui/react';
13
- import { Logo, Footer, PageTitle, CardFooter, PasswordInput, TextInput, ButtonLoader, } from '../..';
13
+ import { Logo, Footer, PageTitle, CardFooter, PasswordInput, TextInput, ButtonLoader, BasePageWrapper, } from '../..';
14
14
  import { isEmptyField } from '../../../utils';
15
15
  import { useSignIn } from '../../../hooks';
16
16
  export const SignIn = ({ isLoading, handleForgotPassword, handleSignIn, handleSignUp, loginError, values = { email: '', password: '' }, }) => {
17
17
  const { inputs, handleInputChange, isValidated, setIsValidated } = useSignIn(values);
18
- return (_jsxs(Box, { w: "container.full", mt: "onboarding.top", zIndex: "2", position: "relative", children: [_jsxs(Container, { size: "onboarding", boxShadow: "lg", children: [_jsx(Logo, {}), _jsx(PageTitle, { title: t('signin.title') }), _jsx(Box, { px: ['container.sm', 'container.md', 'container.lg'], mb: 6, children: _jsxs(Stack, { spacing: 8, children: [_jsxs(Stack, { spacing: "base", as: "form", children: [_jsx(TextInput, { autoCapitalize: "none", autoCorrect: "off", autoComplete: "username", errorMessage: loginError
18
+ return (_jsxs(BasePageWrapper, { children: [_jsxs(Container, { size: "onboarding", boxShadow: "lg", children: [_jsx(Logo, {}), _jsx(PageTitle, { title: t('signin.title') }), _jsx(Box, { px: ['container.sm', 'container.md', 'container.lg'], mb: 6, children: _jsxs(Stack, { spacing: 8, children: [_jsxs(Stack, { spacing: "base", as: "form", children: [_jsx(TextInput, { autoCapitalize: "none", autoCorrect: "off", autoComplete: "username", errorMessage: loginError
19
19
  ? t('forms.errorLogin')
20
20
  : t('forms.email') + ' ' + t('forms.required'), hasError: isValidated && (loginError || isEmptyField(inputs.email)), id: "email", placeholder: t('forms.email'), value: values.email || inputs.email, handleChange: (event) => {
21
21
  values.email = event.target.value;
@@ -1,7 +1,7 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { t } from 'i18next';
3
3
  import { Box, Button, Center, Container, Stack, Text } from '@chakra-ui/react';
4
- import { Logo, Footer, CardFooter, PageTitle, PasswordInput, TextInput, ButtonLoader, } from '../..';
4
+ import { Logo, Footer, CardFooter, PageTitle, PasswordInput, TextInput, ButtonLoader, BasePageWrapper, } from '../..';
5
5
  import { isEmptyField, isValidEmail, isValidPassword, passwordMatch, } from '../../../utils';
6
6
  import { useSignUp } from '../../../hooks';
7
7
  export const SignUp = ({ isLoading, handleCreateAccount, handleSignIn, showPromoCode, signupError, values = {
@@ -17,10 +17,10 @@ export const SignUp = ({ isLoading, handleCreateAccount, handleSignIn, showPromo
17
17
  handleCreateAccount,
18
18
  values,
19
19
  });
20
- return (_jsxs(Box, { w: "container.full", mt: "onboarding.top", zIndex: "2", position: "relative", children: [_jsxs(Container, { size: "onboarding", boxShadow: "lg", children: [_jsx(Logo, {}), _jsx(PageTitle, { title: t('signup.title') }), _jsx(Box, { px: ['container.sm', 'container.md', 'container.lg'], mb: 6, children: _jsxs(Stack, { spacing: "base", as: "form", children: [_jsx(TextInput, { errorMessage: t('forms.firstName') + ' ' + t('forms.required'), hasError: isValidated && isEmptyField(inputs.firstName), id: "firstName", placeholder: t('forms.firstName'), value: inputs.firstName, handleChange: handleInputChange, autoComplete: 'given-name' }), _jsx(TextInput, { errorMessage: t('forms.lastName') + ' ' + t('forms.required'), hasError: isValidated && isEmptyField(inputs.lastName), id: "lastName", placeholder: t('forms.lastName'), value: inputs.lastName, handleChange: handleInputChange, autoComplete: 'family-name' }), _jsx(TextInput, { autoCapitalize: "none", autoCorrect: "off", errorMessage: t('forms.email') + ' ' + t('forms.required'), hasError: isValidated &&
21
- (isEmptyField(inputs.email) || !isValidEmail(inputs.email)), id: "email", placeholder: t('forms.email'), value: inputs.email, handleChange: handleInputChange, autoComplete: 'email' }), showPromoCode && (_jsx(TextInput, { autoCapitalize: "none", autoCorrect: "off", id: "promoCode", placeholder: t('forms.promoCode'), value: (_a = inputs.promoCode) !== null && _a !== void 0 ? _a : '', handleChange: handleInputChange, autoComplete: 'off' })), _jsx(Text, { textAlign: "center", variant: "caption", children: t('signup.subtitle') }), _jsx(PasswordInput, { errorMessage: passwordErrorMessage(values.password), hasError: isValidated &&
20
+ return (_jsxs(BasePageWrapper, { children: [_jsxs(Container, { size: "onboarding", boxShadow: "lg", children: [_jsx(Logo, {}), _jsx(PageTitle, { title: t('signup.title') }), _jsx(Box, { px: ['container.sm', 'container.md', 'container.lg'], mb: 6, children: _jsxs(Stack, { spacing: "base", as: "form", children: [_jsx(TextInput, { errorMessage: t('forms.firstName') + ' ' + t('forms.required'), hasError: isValidated && isEmptyField(inputs.firstName), id: "firstName", placeholder: t('forms.firstName'), value: inputs.firstName, handleChange: handleInputChange, autoComplete: "given-name" }), _jsx(TextInput, { errorMessage: t('forms.lastName') + ' ' + t('forms.required'), hasError: isValidated && isEmptyField(inputs.lastName), id: "lastName", placeholder: t('forms.lastName'), value: inputs.lastName, handleChange: handleInputChange, autoComplete: "family-name" }), _jsx(TextInput, { autoCapitalize: "none", autoCorrect: "off", errorMessage: t('forms.email') + ' ' + t('forms.required'), hasError: isValidated &&
21
+ (isEmptyField(inputs.email) || !isValidEmail(inputs.email)), id: "email", placeholder: t('forms.email'), value: inputs.email, handleChange: handleInputChange, autoComplete: "email" }), showPromoCode && (_jsx(TextInput, { autoCapitalize: "none", autoCorrect: "off", id: "promoCode", placeholder: t('forms.promoCode'), value: (_a = inputs.promoCode) !== null && _a !== void 0 ? _a : '', handleChange: handleInputChange, autoComplete: "off" })), _jsx(Text, { textAlign: "center", variant: "caption", children: t('signup.subtitle') }), _jsx(PasswordInput, { errorMessage: passwordErrorMessage(values.password), hasError: isValidated &&
22
22
  (!isValidPassword(inputs.password) ||
23
- !passwordMatch(inputs.password, inputs.confirmPassword)), id: "password", placeholder: t('forms.password'), value: (_b = inputs.password) !== null && _b !== void 0 ? _b : '', handleChange: (event) => handleInputChange(event), autoComplete: 'new-password' }), _jsx(PasswordInput, { errorMessage: passwordErrorMessage(inputs.confirmPassword), hasError: isValidated &&
23
+ !passwordMatch(inputs.password, inputs.confirmPassword)), id: "password", placeholder: t('forms.password'), value: (_b = inputs.password) !== null && _b !== void 0 ? _b : '', handleChange: (event) => handleInputChange(event), autoComplete: "new-password" }), _jsx(PasswordInput, { errorMessage: passwordErrorMessage(inputs.confirmPassword), hasError: isValidated &&
24
24
  (!isValidPassword(inputs.confirmPassword) ||
25
- !passwordMatch(inputs.password, inputs.confirmPassword)), id: "confirmPassword", placeholder: t('forms.passwordConfirm'), value: (_c = inputs.confirmPassword) !== null && _c !== void 0 ? _c : '', handleChange: (event) => handleInputChange(event), autoComplete: 'new-password' }), _jsx(Center, { px: ['container.sm', 'container.md', 'container.lg'], h: "4rem", children: _jsxs(Text, { textAlign: "center", variant: "info", w: "100%", children: [t('signup.terms'), _jsx("a", { target: "_blank", href: t('footer.termsUrl'), children: t('footer.termsLink') })] }) }), _jsx(Button, { isLoading: isLoading, spinner: _jsx(ButtonLoader, {}), onClick: handleSubmit, children: t('signup.signupBt') })] }) }), _jsx(CardFooter, { title: t('signup.signin'), buttonLabel: t('signup.signinBt'), handleButtonClick: handleSignIn })] }), _jsx(Footer, {})] }));
25
+ !passwordMatch(inputs.password, inputs.confirmPassword)), id: "confirmPassword", placeholder: t('forms.passwordConfirm'), value: (_c = inputs.confirmPassword) !== null && _c !== void 0 ? _c : '', handleChange: (event) => handleInputChange(event), autoComplete: "new-password" }), _jsx(Center, { px: ['container.sm', 'container.md', 'container.lg'], h: "4rem", children: _jsxs(Text, { textAlign: "center", variant: "info", w: "100%", children: [t('signup.terms'), _jsx("a", { target: "_blank", href: t('footer.termsUrl'), children: t('footer.termsLink') })] }) }), _jsx(Button, { isLoading: isLoading, spinner: _jsx(ButtonLoader, {}), onClick: handleSubmit, children: t('signup.signupBt') })] }) }), _jsx(CardFooter, { title: t('signup.signin'), buttonLabel: t('signup.signinBt'), handleButtonClick: handleSignIn })] }), _jsx(Footer, {})] }));
26
26
  };
@@ -1,10 +1,10 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { t } from 'i18next';
3
3
  import { Box, Button, Text, Container, Stack, Center } from '@chakra-ui/react';
4
- import { Logo, Footer, ButtonLoader, TextInput } from '../..';
4
+ import { Logo, Footer, ButtonLoader, TextInput, BasePageWrapper, } from '../..';
5
5
  import { isEmptyField } from '../../../utils';
6
6
  import { useTwoFactor } from '../../../hooks';
7
7
  export const TwoFactor = ({ handleReset, handleResend, isLoading, twoFactorMethod, }) => {
8
8
  const { code, handleInputChange, handleSubmit, isValidated } = useTwoFactor(handleReset);
9
- return (_jsxs(Box, { w: "container.full", zIndex: "2", position: "relative", children: [_jsxs(Container, { size: "onboarding", boxShadow: "lg", children: [_jsx(Logo, {}), _jsxs(Stack, { my: "6", children: [_jsx(Text, { variant: "title", textAlign: "center", px: "10", children: t('reset.2FA.title') }), _jsxs(Text, { fontFamily: "secondary", textAlign: "center", px: ['10', '20'], children: [twoFactorMethod === 'email' && t('reset.2FA.subtitleEmail'), twoFactorMethod === 'sms' && t('reset.2FA.subtitleSms')] })] }), _jsx(Box, { px: ['container.sm', 'container.md', 'container.lg'], pb: "container.md", mb: "6", children: _jsxs(Stack, { spacing: "4", children: [_jsx(TextInput, { errorMessage: t('forms.code') + ' ' + t('forms.required'), hasError: isValidated && isEmptyField(code), id: "code", placeholder: t('reset.2FA.placeholder'), value: code, handleChange: handleInputChange }), _jsx(Button, { isLoading: isLoading, spinner: _jsx(ButtonLoader, {}), onClick: handleSubmit, children: t('forms.submit') }), _jsx(Center, { children: _jsx(Button, { onClick: handleResend, variant: "text", children: t('reset.2FA.resend') }) })] }) })] }), _jsx(Footer, {})] }));
9
+ return (_jsxs(BasePageWrapper, { children: [_jsxs(Container, { size: "onboarding", boxShadow: "lg", children: [_jsx(Logo, {}), _jsxs(Stack, { my: "6", children: [_jsx(Text, { variant: "title", textAlign: "center", px: "10", children: t('reset.2FA.title') }), _jsxs(Text, { fontFamily: "secondary", textAlign: "center", px: ['10', '20'], children: [twoFactorMethod === 'email' && t('reset.2FA.subtitleEmail'), twoFactorMethod === 'sms' && t('reset.2FA.subtitleSms')] })] }), _jsx(Box, { px: ['container.sm', 'container.md', 'container.lg'], pb: "container.md", mb: "6", children: _jsxs(Stack, { spacing: "4", children: [_jsx(TextInput, { errorMessage: t('forms.code') + ' ' + t('forms.required'), hasError: isValidated && isEmptyField(code), id: "code", placeholder: t('reset.2FA.placeholder'), value: code, handleChange: handleInputChange }), _jsx(Button, { isLoading: isLoading, spinner: _jsx(ButtonLoader, {}), onClick: handleSubmit, children: t('forms.submit') }), _jsx(Center, { children: _jsx(Button, { onClick: handleResend, variant: "text", children: t('reset.2FA.resend') }) })] }) })] }), _jsx(Footer, {})] }));
10
10
  };
@@ -1,9 +1,10 @@
1
- export * from "./ActivateAccount";
2
- export * from "./EmailValidation";
3
- export * from "./ResetPassword";
4
- export * from "./SignIn";
5
- export * from "./SignUp";
6
- export * from "./Welcome";
7
- export * from "./NewPassword";
8
- export * from "./ResendResetPassword";
9
- export * from "./TwoFactor";
1
+ export * from './ActivateAccount';
2
+ export * from './BasePageWrapper';
3
+ export * from './EmailValidation';
4
+ export * from './ResetPassword';
5
+ export * from './SignIn';
6
+ export * from './SignUp';
7
+ export * from './Welcome';
8
+ export * from './NewPassword';
9
+ export * from './ResendResetPassword';
10
+ export * from './TwoFactor';
@@ -1,9 +1,10 @@
1
- export * from "./ActivateAccount";
2
- export * from "./EmailValidation";
3
- export * from "./ResetPassword";
4
- export * from "./SignIn";
5
- export * from "./SignUp";
6
- export * from "./Welcome";
7
- export * from "./NewPassword";
8
- export * from "./ResendResetPassword";
9
- export * from "./TwoFactor";
1
+ export * from './ActivateAccount';
2
+ export * from './BasePageWrapper';
3
+ export * from './EmailValidation';
4
+ export * from './ResetPassword';
5
+ export * from './SignIn';
6
+ export * from './SignUp';
7
+ export * from './Welcome';
8
+ export * from './NewPassword';
9
+ export * from './ResendResetPassword';
10
+ export * from './TwoFactor';
@@ -1,12 +1,11 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
- import { Box } from '@chakra-ui/react';
3
- import { NewPassword } from '../../../components';
2
+ import { NewPassword, CloudsAnimation } from '../../../components';
4
3
  export default {
5
4
  title: 'Pages/Onboarding',
6
5
  component: NewPassword,
7
6
  };
8
7
  export const NewPasswordPage = (args) => {
9
- return (_jsx(Box, { p: "base", children: _jsx(NewPassword, Object.assign({}, args)) }));
8
+ return (_jsx(CloudsAnimation, { children: _jsx(NewPassword, Object.assign({}, args)) }));
10
9
  };
11
10
  NewPasswordPage.args = {
12
11
  isLoading: true,
@@ -1,12 +1,11 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
- import { Box } from '@chakra-ui/react';
3
- import { ResendResetPassword } from '../../../components';
2
+ import { ResendResetPassword, CloudsAnimation } from '../../../components';
4
3
  export default {
5
4
  title: 'Pages/Onboarding',
6
5
  component: ResendResetPassword,
7
6
  };
8
7
  export const ResendResetPasswordPage = (args) => {
9
- return (_jsx(Box, { p: "base", children: _jsx(ResendResetPassword, Object.assign({}, args)) }));
8
+ return (_jsx(CloudsAnimation, { children: _jsx(ResendResetPassword, Object.assign({}, args)) }));
10
9
  };
11
10
  ResendResetPasswordPage.args = {
12
11
  email: 'user@user.com.br',
@@ -1,12 +1,11 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
- import { Box } from '@chakra-ui/react';
3
- import { ResetPassword } from '../../../components';
2
+ import { ResetPassword, CloudsAnimation } from '../../../components';
4
3
  export default {
5
4
  title: 'Pages/Onboarding',
6
5
  component: ResetPassword,
7
6
  };
8
7
  export const ResetPasswordPage = (args) => {
9
- return (_jsx(Box, { p: "base", children: _jsx(ResetPassword, Object.assign({}, args)) }));
8
+ return (_jsx(CloudsAnimation, { children: _jsx(ResetPassword, Object.assign({}, args)) }));
10
9
  };
11
10
  ResetPasswordPage.args = {
12
11
  isLoading: false,
@@ -1,11 +1,10 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
- import { Box } from '@chakra-ui/react';
3
- import { SignIn } from '../../../components';
2
+ import { SignIn, CloudsAnimation } from '../../../components';
4
3
  export default {
5
4
  title: 'Pages/Onboarding',
6
5
  component: SignIn,
7
6
  decorators: [
8
- (Story) => (_jsx(Box, { p: "base", children: _jsx(Story, {}) })),
7
+ (Story) => (_jsx(CloudsAnimation, { children: _jsx(Story, {}) })),
9
8
  ],
10
9
  };
11
10
  export const SignInPage = (args) => {
@@ -1,12 +1,11 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
- import { Box } from '@chakra-ui/react';
3
- import { SignUp } from '../../../components';
2
+ import { CloudsAnimation, SignUp } from '../../../components';
4
3
  export default {
5
4
  title: 'Pages/Onboarding',
6
5
  component: SignUp,
7
6
  };
8
7
  export const SignUpPage = (args) => {
9
- return (_jsx(Box, { p: "base", children: _jsx(SignUp, Object.assign({}, args)) }));
8
+ return (_jsx(CloudsAnimation, { children: _jsx(SignUp, Object.assign({}, args)) }));
10
9
  };
11
10
  const valuesFilled = {
12
11
  email: 'user@user.com',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@homefile/components-v2",
3
- "version": "1.2.1",
3
+ "version": "1.3.0",
4
4
  "author": "Homefile",
5
5
  "license": "UNLICENSED",
6
6
  "typings": "dist/index.d.ts",
@@ -84,16 +84,17 @@ export const CloudsAnimation = ({ children }: PropsWithChildren<{}>) => {
84
84
  if (isMobile) return <Fragment>children</Fragment>
85
85
  return (
86
86
  <Box
87
- h="100vh"
87
+ minH="100vh"
88
88
  w="full"
89
89
  position="relative"
90
90
  bgGradient={colors.skyGradient}
91
- overflow="hidden"
91
+ overflowX="hidden"
92
+ overflowY="scroll"
92
93
  >
93
94
  {children}
94
95
  <Image
95
96
  src={Cloud1}
96
- position="absolute"
97
+ position="fixed"
97
98
  w="auto"
98
99
  h="80px"
99
100
  top="50px"
@@ -102,7 +103,7 @@ export const CloudsAnimation = ({ children }: PropsWithChildren<{}>) => {
102
103
  />
103
104
  <Image
104
105
  src={Cloud2}
105
- position="absolute"
106
+ position="fixed"
106
107
  w="auto"
107
108
  h="120px"
108
109
  top="80px"
@@ -111,7 +112,7 @@ export const CloudsAnimation = ({ children }: PropsWithChildren<{}>) => {
111
112
  />
112
113
  <Image
113
114
  src={Cloud3}
114
- position="absolute"
115
+ position="fixed"
115
116
  w="auto"
116
117
  h="160px"
117
118
  top="120px"
@@ -120,7 +121,7 @@ export const CloudsAnimation = ({ children }: PropsWithChildren<{}>) => {
120
121
  />
121
122
  <Image
122
123
  src={Cloud1}
123
- position="absolute"
124
+ position="fixed"
124
125
  w="auto"
125
126
  h="100px"
126
127
  top="160px"
@@ -129,7 +130,7 @@ export const CloudsAnimation = ({ children }: PropsWithChildren<{}>) => {
129
130
  />
130
131
  <Image
131
132
  src={Cloud2}
132
- position="absolute"
133
+ position="fixed"
133
134
  w="auto"
134
135
  h="112px"
135
136
  top="220px"
@@ -138,7 +139,7 @@ export const CloudsAnimation = ({ children }: PropsWithChildren<{}>) => {
138
139
  />
139
140
  <Image
140
141
  src={Cloud3}
141
- position="absolute"
142
+ position="fixed"
142
143
  w="auto"
143
144
  h="160px"
144
145
  top="300px"
@@ -147,7 +148,7 @@ export const CloudsAnimation = ({ children }: PropsWithChildren<{}>) => {
147
148
  />
148
149
  <Image
149
150
  src={Airplane}
150
- position="absolute"
151
+ position="fixed"
151
152
  w="auto"
152
153
  h="40px"
153
154
  top="85px"
@@ -1,6 +1,11 @@
1
1
  import { t } from 'i18next'
2
2
  import { Box, Container, Text, Center, Button } from '@chakra-ui/react'
3
- import { Logo, WelcomeHeader, ButtonLoader } from '@/components'
3
+ import {
4
+ Logo,
5
+ WelcomeHeader,
6
+ ButtonLoader,
7
+ BasePageWrapper,
8
+ } from '@/components'
4
9
  import { ActivateAccountI } from '@/interfaces'
5
10
  import { useWindowDimensions } from '@/hooks'
6
11
 
@@ -14,7 +19,7 @@ export const ActivateAccount = ({
14
19
  } = useWindowDimensions()
15
20
 
16
21
  return (
17
- <Box w="container.full" zIndex="2" position="relative">
22
+ <BasePageWrapper>
18
23
  <Container size="validation" boxShadow="lg">
19
24
  <Container variant="secondary">
20
25
  <Logo />
@@ -47,6 +52,6 @@ export const ActivateAccount = ({
47
52
  </Center>
48
53
  </Container>
49
54
  </Container>
50
- </Box>
55
+ </BasePageWrapper>
51
56
  )
52
57
  }
@@ -0,0 +1,10 @@
1
+ import { Box } from '@chakra-ui/react'
2
+ import { PropsWithChildren } from 'react'
3
+
4
+ export const BasePageWrapper = ({ children }: PropsWithChildren) => {
5
+ return (
6
+ <Box w="container.full" zIndex="2" position="relative" mt="onboarding.top">
7
+ {children}
8
+ </Box>
9
+ )
10
+ }
@@ -8,7 +8,7 @@ import {
8
8
  Center,
9
9
  Button,
10
10
  } from '@chakra-ui/react'
11
- import { Logo, ButtonLoader } from '@/components'
11
+ import { Logo, ButtonLoader, BasePageWrapper } from '@/components'
12
12
  import { EmailValidationI } from '@/interfaces'
13
13
  import { Confirmation } from '@/assets/images'
14
14
 
@@ -18,7 +18,7 @@ export const EmailValidation = ({
18
18
  handleResendBt,
19
19
  }: EmailValidationI) => {
20
20
  return (
21
- <Box w="container.full" zIndex="2" position="relative">
21
+ <BasePageWrapper>
22
22
  <Container size="validation" boxShadow="lg">
23
23
  <Container variant="secondary">
24
24
  <Logo />
@@ -64,6 +64,6 @@ export const EmailValidation = ({
64
64
  </Button>
65
65
  </Center>
66
66
  </Container>
67
- </Box>
67
+ </BasePageWrapper>
68
68
  )
69
69
  }
@@ -1,6 +1,12 @@
1
1
  import { t } from 'i18next'
2
2
  import { Box, Button, Text, Container, Stack, chakra } from '@chakra-ui/react'
3
- import { Logo, Footer, ButtonLoader, PasswordInput } from '@/components'
3
+ import {
4
+ Logo,
5
+ Footer,
6
+ ButtonLoader,
7
+ PasswordInput,
8
+ BasePageWrapper,
9
+ } from '@/components'
4
10
  import { isValidPassword, passwordMatch } from '@/utils'
5
11
  import { useNewPassword } from '@/hooks'
6
12
  import { NewPasswordI } from '@/interfaces'
@@ -13,7 +19,7 @@ export const NewPassword = ({
13
19
  const { inputs, handleInputChange, handleSubmit, isValidated } =
14
20
  useNewPassword(handleReset)
15
21
  return (
16
- <Box w="container.full" zIndex="2" position="relative">
22
+ <BasePageWrapper>
17
23
  <Container size="onboarding" boxShadow="lg">
18
24
  <Logo />
19
25
  <Container variant="ghost" mt={4} mb={6}>
@@ -82,6 +88,6 @@ export const NewPassword = ({
82
88
  </Box>
83
89
  </Container>
84
90
  <Footer />
85
- </Box>
91
+ </BasePageWrapper>
86
92
  )
87
93
  }
@@ -8,7 +8,7 @@ import {
8
8
  Center,
9
9
  Button,
10
10
  } from '@chakra-ui/react'
11
- import { ButtonLoader, Logo } from '@/components'
11
+ import { BasePageWrapper, ButtonLoader, Logo } from '@/components'
12
12
  import { EmailValidationI } from '@/interfaces'
13
13
  import { ResendPassword } from '@/assets/images'
14
14
 
@@ -18,7 +18,7 @@ export const ResendResetPassword = ({
18
18
  handleResendBt,
19
19
  }: EmailValidationI) => {
20
20
  return (
21
- <Box w="container.full" zIndex="2" position="relative">
21
+ <BasePageWrapper>
22
22
  <Container size="validation" boxShadow="lg">
23
23
  <Container variant="secondary">
24
24
  <Logo />
@@ -65,6 +65,6 @@ export const ResendResetPassword = ({
65
65
  </Button>
66
66
  </Center>
67
67
  </Container>
68
- </Box>
68
+ </BasePageWrapper>
69
69
  )
70
70
  }
@@ -7,6 +7,7 @@ import {
7
7
  CardFooter,
8
8
  TextInput,
9
9
  ButtonLoader,
10
+ BasePageWrapper,
10
11
  } from '@/components'
11
12
  import { isEmptyField, isValidEmail } from '@/utils'
12
13
  import { ResetPasswordI } from '@/interfaces'
@@ -25,7 +26,7 @@ export const ResetPassword = ({
25
26
  ? t('forms.errorEmailNotActivated')
26
27
  : t('forms.errorEmail')
27
28
  return (
28
- <Box w="container.full" zIndex="2" position="relative">
29
+ <BasePageWrapper>
29
30
  <Container size="onboarding" boxShadow="lg">
30
31
  <Logo />
31
32
  <PageTitle title={t('reset.title')} />
@@ -72,6 +73,6 @@ export const ResetPassword = ({
72
73
  />
73
74
  </Container>
74
75
  <Footer />
75
- </Box>
76
+ </BasePageWrapper>
76
77
  )
77
78
  }
@@ -8,6 +8,7 @@ import {
8
8
  PasswordInput,
9
9
  TextInput,
10
10
  ButtonLoader,
11
+ BasePageWrapper,
11
12
  } from '@/components'
12
13
  import { isEmptyField } from '@/utils'
13
14
  import { SignInI } from '@/interfaces'
@@ -25,14 +26,13 @@ export const SignIn = ({
25
26
  useSignIn(values)
26
27
 
27
28
  return (
28
- <Box w="container.full" mt="onboarding.top" zIndex="2" position="relative">
29
+ <BasePageWrapper>
29
30
  <Container size="onboarding" boxShadow="lg">
30
31
  <Logo />
31
32
  <PageTitle title={t('signin.title')} />
32
33
  <Box px={['container.sm', 'container.md', 'container.lg']} mb={6}>
33
34
  <Stack spacing={8}>
34
35
  <Stack spacing="base" as="form">
35
-
36
36
  <TextInput
37
37
  autoCapitalize="none"
38
38
  autoCorrect="off"
@@ -71,7 +71,6 @@ export const SignIn = ({
71
71
  handleInputChange(event)
72
72
  }}
73
73
  />
74
-
75
74
  </Stack>
76
75
  <Stack spacing={4}>
77
76
  <Button
@@ -104,6 +103,6 @@ export const SignIn = ({
104
103
  />
105
104
  </Container>
106
105
  <Footer />
107
- </Box>
106
+ </BasePageWrapper>
108
107
  )
109
108
  }
@@ -8,6 +8,7 @@ import {
8
8
  PasswordInput,
9
9
  TextInput,
10
10
  ButtonLoader,
11
+ BasePageWrapper,
11
12
  } from '@/components'
12
13
  import { SignUpI } from '@/interfaces'
13
14
  import {
@@ -45,7 +46,7 @@ export const SignUp = ({
45
46
  })
46
47
 
47
48
  return (
48
- <Box w="container.full" mt="onboarding.top" zIndex="2" position="relative">
49
+ <BasePageWrapper>
49
50
  <Container size="onboarding" boxShadow="lg">
50
51
  <Logo />
51
52
  <PageTitle title={t('signup.title')} />
@@ -58,7 +59,7 @@ export const SignUp = ({
58
59
  placeholder={t('forms.firstName')}
59
60
  value={inputs.firstName}
60
61
  handleChange={handleInputChange}
61
- autoComplete='given-name'
62
+ autoComplete="given-name"
62
63
  />
63
64
  <TextInput
64
65
  errorMessage={t('forms.lastName') + ' ' + t('forms.required')}
@@ -67,7 +68,7 @@ export const SignUp = ({
67
68
  placeholder={t('forms.lastName')}
68
69
  value={inputs.lastName}
69
70
  handleChange={handleInputChange}
70
- autoComplete='family-name'
71
+ autoComplete="family-name"
71
72
  />
72
73
  <TextInput
73
74
  autoCapitalize="none"
@@ -81,7 +82,7 @@ export const SignUp = ({
81
82
  placeholder={t('forms.email')}
82
83
  value={inputs.email}
83
84
  handleChange={handleInputChange}
84
- autoComplete='email'
85
+ autoComplete="email"
85
86
  />
86
87
  {showPromoCode && (
87
88
  <TextInput
@@ -91,7 +92,7 @@ export const SignUp = ({
91
92
  placeholder={t('forms.promoCode')}
92
93
  value={inputs.promoCode ?? ''}
93
94
  handleChange={handleInputChange}
94
- autoComplete='off'
95
+ autoComplete="off"
95
96
  />
96
97
  )}
97
98
  <Text textAlign="center" variant="caption">
@@ -108,7 +109,7 @@ export const SignUp = ({
108
109
  placeholder={t('forms.password')}
109
110
  value={inputs.password ?? ''}
110
111
  handleChange={(event) => handleInputChange(event)}
111
- autoComplete='new-password'
112
+ autoComplete="new-password"
112
113
  />
113
114
  <PasswordInput
114
115
  errorMessage={passwordErrorMessage(inputs.confirmPassword)}
@@ -121,7 +122,7 @@ export const SignUp = ({
121
122
  placeholder={t('forms.passwordConfirm')}
122
123
  value={inputs.confirmPassword ?? ''}
123
124
  handleChange={(event) => handleInputChange(event)}
124
- autoComplete='new-password'
125
+ autoComplete="new-password"
125
126
  />
126
127
  <Center
127
128
  px={['container.sm', 'container.md', 'container.lg']}
@@ -150,6 +151,6 @@ export const SignUp = ({
150
151
  />
151
152
  </Container>
152
153
  <Footer />
153
- </Box>
154
+ </BasePageWrapper>
154
155
  )
155
156
  }
@@ -1,6 +1,12 @@
1
1
  import { t } from 'i18next'
2
2
  import { Box, Button, Text, Container, Stack, Center } from '@chakra-ui/react'
3
- import { Logo, Footer, ButtonLoader, TextInput } from '@/components'
3
+ import {
4
+ Logo,
5
+ Footer,
6
+ ButtonLoader,
7
+ TextInput,
8
+ BasePageWrapper,
9
+ } from '@/components'
4
10
  import { isEmptyField } from '@/utils'
5
11
  import { TwoFactorI } from '@/interfaces'
6
12
  import { useTwoFactor } from '@/hooks'
@@ -15,7 +21,7 @@ export const TwoFactor = ({
15
21
  useTwoFactor(handleReset)
16
22
 
17
23
  return (
18
- <Box w="container.full" zIndex="2" position="relative">
24
+ <BasePageWrapper>
19
25
  <Container size="onboarding" boxShadow="lg">
20
26
  <Logo />
21
27
  <Stack my="6">
@@ -58,6 +64,6 @@ export const TwoFactor = ({
58
64
  </Box>
59
65
  </Container>
60
66
  <Footer />
61
- </Box>
67
+ </BasePageWrapper>
62
68
  )
63
69
  }
@@ -1,9 +1,10 @@
1
- export * from "./ActivateAccount"
2
- export * from "./EmailValidation"
3
- export * from "./ResetPassword"
4
- export * from "./SignIn"
5
- export * from "./SignUp"
6
- export * from "./Welcome"
7
- export * from "./NewPassword"
8
- export * from "./ResendResetPassword"
9
- export * from "./TwoFactor"
1
+ export * from './ActivateAccount'
2
+ export * from './BasePageWrapper'
3
+ export * from './EmailValidation'
4
+ export * from './ResetPassword'
5
+ export * from './SignIn'
6
+ export * from './SignUp'
7
+ export * from './Welcome'
8
+ export * from './NewPassword'
9
+ export * from './ResendResetPassword'
10
+ export * from './TwoFactor'
@@ -1,6 +1,5 @@
1
1
  import { Meta } from '@storybook/react'
2
- import { Box } from '@chakra-ui/react'
3
- import { NewPassword } from '@/components'
2
+ import { NewPassword, CloudsAnimation } from '@/components'
4
3
  import { NewPasswordI } from '@/interfaces'
5
4
 
6
5
  export default {
@@ -10,9 +9,9 @@ export default {
10
9
 
11
10
  export const NewPasswordPage = (args: NewPasswordI) => {
12
11
  return (
13
- <Box p="base">
12
+ <CloudsAnimation>
14
13
  <NewPassword {...args} />
15
- </Box>
14
+ </CloudsAnimation>
16
15
  )
17
16
  }
18
17
 
@@ -1,6 +1,5 @@
1
1
  import { Meta } from '@storybook/react'
2
- import { Box } from '@chakra-ui/react'
3
- import { ResendResetPassword } from '@/components'
2
+ import { ResendResetPassword, CloudsAnimation } from '@/components'
4
3
  import { EmailValidationI } from '@/interfaces'
5
4
 
6
5
  export default {
@@ -10,9 +9,9 @@ export default {
10
9
 
11
10
  export const ResendResetPasswordPage = (args: EmailValidationI) => {
12
11
  return (
13
- <Box p="base">
12
+ <CloudsAnimation>
14
13
  <ResendResetPassword {...args} />
15
- </Box>
14
+ </CloudsAnimation>
16
15
  )
17
16
  }
18
17
 
@@ -1,6 +1,5 @@
1
1
  import { Meta } from '@storybook/react'
2
- import { Box } from '@chakra-ui/react'
3
- import { ResetPassword } from '@/components'
2
+ import { ResetPassword, CloudsAnimation } from '@/components'
4
3
  import { ResetPasswordI } from '@/interfaces'
5
4
 
6
5
  export default {
@@ -10,9 +9,9 @@ export default {
10
9
 
11
10
  export const ResetPasswordPage = (args: ResetPasswordI) => {
12
11
  return (
13
- <Box p="base">
12
+ <CloudsAnimation>
14
13
  <ResetPassword {...args} />
15
- </Box>
14
+ </CloudsAnimation>
16
15
  )
17
16
  }
18
17
 
@@ -1,6 +1,5 @@
1
1
  import { Meta } from '@storybook/react'
2
- import { Box } from '@chakra-ui/react'
3
- import { SignIn } from '@/components'
2
+ import { SignIn, CloudsAnimation } from '@/components'
4
3
  import { SignInI } from '@/interfaces'
5
4
 
6
5
  export default {
@@ -8,9 +7,9 @@ export default {
8
7
  component: SignIn,
9
8
  decorators: [
10
9
  (Story) => (
11
- <Box p="base">
10
+ <CloudsAnimation>
12
11
  <Story />
13
- </Box>
12
+ </CloudsAnimation>
14
13
  ),
15
14
  ],
16
15
  } as Meta
@@ -1,6 +1,5 @@
1
1
  import { Meta } from '@storybook/react'
2
- import { Box } from '@chakra-ui/react'
3
- import { SignUp } from '@/components'
2
+ import { CloudsAnimation, SignUp } from '@/components'
4
3
  import { SignUpI } from '@/interfaces'
5
4
 
6
5
  export default {
@@ -10,9 +9,9 @@ export default {
10
9
 
11
10
  export const SignUpPage = (args: SignUpI) => {
12
11
  return (
13
- <Box p="base">
12
+ <CloudsAnimation>
14
13
  <SignUp {...args} />
15
- </Box>
14
+ </CloudsAnimation>
16
15
  )
17
16
  }
18
17