diff --git a/packages/webapp/src/components/App.tsx b/packages/webapp/src/components/App.tsx
index de8263e5c..0ad264ee8 100644
--- a/packages/webapp/src/components/App.tsx
+++ b/packages/webapp/src/components/App.tsx
@@ -13,7 +13,7 @@ import AppIntlLoader from './AppIntlLoader';
import PrivateRoute from '@/components/Guards/PrivateRoute';
import GlobalErrors from '@/containers/GlobalErrors/GlobalErrors';
import DashboardPrivatePages from '@/components/Dashboard/PrivatePages';
-import Authentication from '@/components/Authentication';
+import { Authentication } from '@/containers/Authentication/Authentication';
import { SplashScreen, DashboardThemeProvider } from '../components';
import { queryConfig } from '../hooks/query/base';
diff --git a/packages/webapp/src/components/Authentication.tsx b/packages/webapp/src/components/Authentication.tsx
deleted file mode 100644
index 1a3267554..000000000
--- a/packages/webapp/src/components/Authentication.tsx
+++ /dev/null
@@ -1,62 +0,0 @@
-// @ts-nocheck
-import React from 'react';
-import { Redirect, Route, Switch, Link, useLocation } from 'react-router-dom';
-import BodyClassName from 'react-body-classname';
-import { TransitionGroup, CSSTransition } from 'react-transition-group';
-import authenticationRoutes from '@/routes/authentication';
-import { Icon, FormattedMessage as T } from '@/components';
-import { useIsAuthenticated } from '@/hooks/state';
-import '@/style/pages/Authentication/Auth.scss';
-
-function PageFade(props) {
- return ;
-}
-
-export default function AuthenticationWrapper({ ...rest }) {
- const to = { pathname: '/' };
- const location = useLocation();
- const isAuthenticated = useIsAuthenticated();
- const locationKey = location.pathname;
-
- return (
- <>
- {isAuthenticated ? (
-
- ) : (
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {authenticationRoutes.map((route, index) => (
-
- ))}
-
-
-
-
-
-
-
- )}
- >
- );
-}
diff --git a/packages/webapp/src/containers/Authentication/AuthCopyright.tsx b/packages/webapp/src/containers/Authentication/AuthCopyright.tsx
index 6fcc71fd4..3f77a44d4 100644
--- a/packages/webapp/src/containers/Authentication/AuthCopyright.tsx
+++ b/packages/webapp/src/containers/Authentication/AuthCopyright.tsx
@@ -1,20 +1,7 @@
// @ts-nocheck
import React from 'react';
-import moment from 'moment';
-import intl from 'react-intl-universal';
import { Icon } from '@/components/Icon';
export default function AuthCopyright() {
- return (
-
-
- {intl.get('all_rights_reserved', {
- pre: moment().subtract(1, 'years').year(),
- current: moment().get('year'),
- })}
-
-
-
-
- );
+ return ;
}
diff --git a/packages/webapp/src/containers/Authentication/AuthInsider.tsx b/packages/webapp/src/containers/Authentication/AuthInsider.tsx
index 9a683ab3f..cef34393c 100644
--- a/packages/webapp/src/containers/Authentication/AuthInsider.tsx
+++ b/packages/webapp/src/containers/Authentication/AuthInsider.tsx
@@ -1,6 +1,8 @@
// @ts-nocheck
import React from 'react';
+import styled from 'styled-components';
import AuthCopyright from './AuthCopyright';
+import { AuthInsiderContent, AuthInsiderCopyright } from './_components';
/**
* Authentication insider page.
@@ -9,16 +11,21 @@ export default function AuthInsider({
logo = true,
copyright = true,
children,
+ classNames,
}) {
return (
-
-
- { children }
-
+
+
+ {children}
+
-
-
+ {copyright && (
+
+
+
+ )}
+
);
}
+
+const AuthInsiderContentWrap = styled.div``;
diff --git a/packages/webapp/src/containers/Authentication/Authentication.tsx b/packages/webapp/src/containers/Authentication/Authentication.tsx
new file mode 100644
index 000000000..1fc2515e9
--- /dev/null
+++ b/packages/webapp/src/containers/Authentication/Authentication.tsx
@@ -0,0 +1,66 @@
+// @ts-nocheck
+import React from 'react';
+import { Redirect, Route, Switch, useLocation } from 'react-router-dom';
+import BodyClassName from 'react-body-classname';
+import styled from 'styled-components';
+import { TransitionGroup, CSSTransition } from 'react-transition-group';
+
+import authenticationRoutes from '@/routes/authentication';
+import { Icon, FormattedMessage as T } from '@/components';
+import { useIsAuthenticated } from '@/hooks/state';
+
+import '@/style/pages/Authentication/Auth.scss';
+
+export function Authentication() {
+ const to = { pathname: '/' };
+ const location = useLocation();
+ const isAuthenticated = useIsAuthenticated();
+ const locationKey = location.pathname;
+
+ if (isAuthenticated) {
+ return ;
+ }
+ return (
+
+
+
+
+
+
+
+
+
+
+ {authenticationRoutes.map((route, index) => (
+
+ ))}
+
+
+
+
+
+
+ );
+}
+
+const AuthPage = styled.div``;
+const AuthInsider = styled.div`
+ width: 384px;
+ margin: 0 auto;
+ margin-bottom: 40px;
+ padding-top: 80px;
+`;
+
+const AuthLogo = styled.div`
+ text-align: center;
+ margin-bottom: 40px;
+`;
diff --git a/packages/webapp/src/containers/Authentication/InviteAcceptForm.tsx b/packages/webapp/src/containers/Authentication/InviteAcceptForm.tsx
index 4d6b00799..dd2603271 100644
--- a/packages/webapp/src/containers/Authentication/InviteAcceptForm.tsx
+++ b/packages/webapp/src/containers/Authentication/InviteAcceptForm.tsx
@@ -11,6 +11,7 @@ import { useInviteAcceptContext } from './InviteAcceptProvider';
import { AppToaster } from '@/components';
import { InviteAcceptSchema } from './utils';
import InviteAcceptFormContent from './InviteAcceptFormContent';
+import { AuthInsiderCard } from './_components';
export default function InviteAcceptForm() {
const history = useHistory();
@@ -80,23 +81,13 @@ export default function InviteAcceptForm() {
};
return (
-
-
-
-
-
-
- {' '}
- {inviteValue.organization_name}
-
-
-
+
-
+
);
}
diff --git a/packages/webapp/src/containers/Authentication/InviteAcceptFormContent.tsx b/packages/webapp/src/containers/Authentication/InviteAcceptFormContent.tsx
index 9b800be76..c32823f07 100644
--- a/packages/webapp/src/containers/Authentication/InviteAcceptFormContent.tsx
+++ b/packages/webapp/src/containers/Authentication/InviteAcceptFormContent.tsx
@@ -1,13 +1,14 @@
// @ts-nocheck
import React from 'react';
import intl from 'react-intl-universal';
-import { Button, InputGroup, Intent, FormGroup } from '@blueprintjs/core';
-import { Form, ErrorMessage, FastField, useFormikContext } from 'formik';
+import { InputGroup, Intent } from '@blueprintjs/core';
+import { Form, useFormikContext } from 'formik';
import { Link } from 'react-router-dom';
-import { Col, Row, FormattedMessage as T } from '@/components';
-import { inputIntent } from '@/utils';
+
+import { Col, FFormGroup, Row, FormattedMessage as T } from '@/components';
import { useInviteAcceptContext } from './InviteAcceptProvider';
import { PasswordRevealer } from './components';
+import { AuthSubmitButton } from './_components';
/**
* Invite user form.
@@ -34,75 +35,25 @@ export default function InviteUserFormContent() {
);
}
diff --git a/packages/webapp/src/containers/Authentication/Login.tsx b/packages/webapp/src/containers/Authentication/Login.tsx
index 33a746fde..4032f2e67 100644
--- a/packages/webapp/src/containers/Authentication/Login.tsx
+++ b/packages/webapp/src/containers/Authentication/Login.tsx
@@ -1,14 +1,25 @@
// @ts-nocheck
import React from 'react';
-import { Link } from 'react-router-dom';
import { Formik } from 'formik';
-import { AppToaster as Toaster, FormattedMessage as T } from '@/components';
+import { Link } from 'react-router-dom';
+import { AppToaster as Toaster, FormattedMessage as T } from '@/components';
import AuthInsider from '@/containers/Authentication/AuthInsider';
import { useAuthLogin } from '@/hooks/query';
import LoginForm from './LoginForm';
import { LoginSchema, transformLoginErrorsToToasts } from './utils';
+import {
+ AuthFooterLinks,
+ AuthFooterLink,
+ AuthInsiderCard,
+} from './_components';
+
+const initialValues = {
+ crediential: '',
+ password: '',
+ keepLoggedIn: false
+};
/**
* Login page.
@@ -38,34 +49,32 @@ export default function Login() {
return (
-
-
-
-
-
- {/*
-
- {' '}
-
- */}
-
-
+
+
-
-
+
);
}
+
+function LoginFooterLinks() {
+ return (
+
+
+ Don't have an account? Sign up
+
+
+
+
+
+
+
+
+ );
+}
diff --git a/packages/webapp/src/containers/Authentication/LoginForm.tsx b/packages/webapp/src/containers/Authentication/LoginForm.tsx
index 22b806774..e586aab8b 100644
--- a/packages/webapp/src/containers/Authentication/LoginForm.tsx
+++ b/packages/webapp/src/containers/Authentication/LoginForm.tsx
@@ -1,89 +1,63 @@
// @ts-nocheck
-import React from 'react';
-import {
- Button,
- InputGroup,
- Intent,
- FormGroup,
- Checkbox,
-} from '@blueprintjs/core';
-import { Form, ErrorMessage, Field } from 'formik';
-import { T } from '@/components';
-import { inputIntent } from '@/utils';
-import { PasswordRevealer } from './components';
+import React, { useState } from 'react';
+import { Button, Intent } from '@blueprintjs/core';
+import { Form } from 'formik';
+import { Tooltip2 } from '@blueprintjs/popover2';
+
+import { FFormGroup, FInputGroup, FCheckbox, T } from '@/components';
+import { AuthSubmitButton } from './_components';
/**
* Login form.
*/
export default function LoginForm({ isSubmitting }) {
- const [passwordType, setPasswordType] = React.useState('password');
+ const [showPassword, setShowPassword] = useState(false);
// Handle password revealer changing.
- const handlePasswordRevealerChange = React.useCallback(
- (shown) => {
- const type = shown ? 'text' : 'password';
- setPasswordType(type);
- },
- [setPasswordType],
+ const handleLockClick = () => {
+ setShowPassword(!showPassword);
+ };
+
+ const lockButton = (
+
+
+
);
return (
-
);
}
diff --git a/packages/webapp/src/containers/Authentication/Register.tsx b/packages/webapp/src/containers/Authentication/Register.tsx
index bdbff0d47..aba50d734 100644
--- a/packages/webapp/src/containers/Authentication/Register.tsx
+++ b/packages/webapp/src/containers/Authentication/Register.tsx
@@ -11,6 +11,18 @@ import { useAuthLogin, useAuthRegister } from '@/hooks/query/authentication';
import RegisterForm from './RegisterForm';
import { RegisterSchema, transformRegisterErrorsToForm } from './utils';
+import {
+ AuthFooterLinks,
+ AuthFooterLink,
+ AuthInsiderCard,
+} from './_components';
+
+const initialValues = {
+ first_name: '',
+ last_name: '',
+ email: '',
+ password: '',
+};
/**
* Register form.
@@ -19,18 +31,6 @@ export default function RegisterUserForm() {
const { mutateAsync: authLoginMutate } = useAuthLogin();
const { mutateAsync: authRegisterMutate } = useAuthRegister();
- const initialValues = useMemo(
- () => ({
- first_name: '',
- last_name: '',
- email: '',
- phone_number: '',
- password: '',
- country: 'LY',
- }),
- [],
- );
-
const handleSubmit = (values, { setSubmitting, setErrors }) => {
authRegisterMutate(values)
.then((response) => {
@@ -66,24 +66,32 @@ export default function RegisterUserForm() {
return (
-
+
+
+
);
}
+
+function RegisterFooterLinks() {
+ return (
+
+
+ Return to Sign In
+
+
+
+
+
+
+
+
+ );
+}
diff --git a/packages/webapp/src/containers/Authentication/RegisterForm.tsx b/packages/webapp/src/containers/Authentication/RegisterForm.tsx
index 8f44056a4..6cf27f360 100644
--- a/packages/webapp/src/containers/Authentication/RegisterForm.tsx
+++ b/packages/webapp/src/containers/Authentication/RegisterForm.tsx
@@ -1,148 +1,97 @@
// @ts-nocheck
import React from 'react';
+import { Form } from 'formik';
import intl from 'react-intl-universal';
-import {
- Button,
- InputGroup,
- Intent,
- FormGroup,
- Spinner,
-} from '@blueprintjs/core';
-import { ErrorMessage, Field, Form } from 'formik';
-import { FormattedMessage as T } from '@/components';
+import { Intent, Button } from '@blueprintjs/core';
import { Link } from 'react-router-dom';
-import { Row, Col, If } from '@/components';
-import { PasswordRevealer } from './components';
-import { inputIntent } from '@/utils';
+import { Tooltip2 } from '@blueprintjs/popover2';
+import styled from 'styled-components';
+
+import {
+ FFormGroup,
+ FInputGroup,
+ Row,
+ Col,
+ FormattedMessage as T,
+} from '@/components';
+import { AuthSubmitButton, AuthenticationLoadingOverlay } from './_components';
/**
* Register form.
*/
export default function RegisterForm({ isSubmitting }) {
- const [passwordType, setPasswordType] = React.useState('password');
+ const [showPassword, setShowPassword] = React.useState(false);
// Handle password revealer changing.
- const handlePasswordRevealerChange = React.useCallback(
- (shown) => {
- const type = shown ? 'text' : 'password';
- setPasswordType(type);
- },
- [setPasswordType],
+ const handleLockClick = () => {
+ setShowPassword(!showPassword);
+ };
+
+ const lockButton = (
+
+
+
);
return (
);
}
+
+const TermsConditionsText = styled.p`
+ opacity: 0.8;
+ margin-bottom: 1.4rem;
+`;
diff --git a/packages/webapp/src/containers/Authentication/ResetPassword.tsx b/packages/webapp/src/containers/Authentication/ResetPassword.tsx
index 027f2da1b..63796bcff 100644
--- a/packages/webapp/src/containers/Authentication/ResetPassword.tsx
+++ b/packages/webapp/src/containers/Authentication/ResetPassword.tsx
@@ -4,14 +4,23 @@ import intl from 'react-intl-universal';
import { Formik } from 'formik';
import { Intent, Position } from '@blueprintjs/core';
import { Link, useParams, useHistory } from 'react-router-dom';
-import { AppToaster, FormattedMessage as T } from '@/components';
+import { AppToaster } from '@/components';
import { useAuthResetPassword } from '@/hooks/query';
-
import AuthInsider from '@/containers/Authentication/AuthInsider';
+import {
+ AuthFooterLink,
+ AuthFooterLinks,
+ AuthInsiderCard,
+} from './_components';
import ResetPasswordForm from './ResetPasswordForm';
import { ResetPasswordSchema } from './utils';
+
+const initialValues = {
+ password: '',
+ confirm_password: '',
+};
/**
* Reset password page.
*/
@@ -22,15 +31,6 @@ export default function ResetPassword() {
// Authentication reset password.
const { mutateAsync: authResetPasswordMutate } = useAuthResetPassword();
- // Initial values of the form.
- const initialValues = useMemo(
- () => ({
- password: '',
- confirm_password: '',
- }),
- [],
- );
-
// Handle the form submitting.
const handleSubmit = (values, { setSubmitting }) => {
authResetPasswordMutate([token, values])
@@ -64,24 +64,30 @@ export default function ResetPassword() {
return (
-
-
-
-
-
- {' '}
-
-
-
-
-
+
-
+
+
+
);
}
+
+function ResetPasswordFooterLinks() {
+ return (
+
+
+ Don't have an account? Sign up
+
+
+
+ Return to Sign In
+
+
+ );
+}
diff --git a/packages/webapp/src/containers/Authentication/ResetPasswordForm.tsx b/packages/webapp/src/containers/Authentication/ResetPasswordForm.tsx
index 6b0233a9f..fe7d0f5f4 100644
--- a/packages/webapp/src/containers/Authentication/ResetPasswordForm.tsx
+++ b/packages/webapp/src/containers/Authentication/ResetPasswordForm.tsx
@@ -1,9 +1,9 @@
// @ts-nocheck
import React from 'react';
-import { Button, InputGroup, Intent, FormGroup } from '@blueprintjs/core';
-import { Form, ErrorMessage, FastField } from 'formik';
-import { FormattedMessage as T } from '@/components';
-import { inputIntent } from '@/utils';
+import { Intent } from '@blueprintjs/core';
+import { Form } from 'formik';
+import { FFormGroup, FInputGroup, FormattedMessage as T } from '@/components';
+import { AuthSubmitButton } from './_components';
/**
* Reset password form.
@@ -11,54 +11,23 @@ import { inputIntent } from '@/utils';
export default function ResetPasswordForm({ isSubmitting }) {
return (
);
}
diff --git a/packages/webapp/src/containers/Authentication/SendResetPassword.tsx b/packages/webapp/src/containers/Authentication/SendResetPassword.tsx
index dd2a67a50..8bf07809f 100644
--- a/packages/webapp/src/containers/Authentication/SendResetPassword.tsx
+++ b/packages/webapp/src/containers/Authentication/SendResetPassword.tsx
@@ -5,33 +5,32 @@ import { Formik } from 'formik';
import { Link, useHistory } from 'react-router-dom';
import { Intent } from '@blueprintjs/core';
-import { AppToaster, FormattedMessage as T } from '@/components';
+import { AppToaster } from '@/components';
import { useAuthSendResetPassword } from '@/hooks/query';
import SendResetPasswordForm from './SendResetPasswordForm';
+import {
+ AuthFooterLink,
+ AuthFooterLinks,
+ AuthInsiderCard,
+} from './_components';
import {
SendResetPasswordSchema,
transformSendResetPassErrorsToToasts,
} from './utils';
-
import AuthInsider from '@/containers/Authentication/AuthInsider';
+const initialValues = {
+ crediential: '',
+};
+
/**
* Send reset password page.
*/
export default function SendResetPassword({ requestSendResetPassword }) {
const history = useHistory();
-
const { mutateAsync: sendResetPasswordMutate } = useAuthSendResetPassword();
- // Initial values.
- const initialValues = useMemo(
- () => ({
- crediential: '',
- }),
- [],
- );
-
// Handle form submitting.
const handleSubmit = (values, { setSubmitting }) => {
sendResetPasswordMutate({ email: values.crediential })
@@ -61,28 +60,30 @@ export default function SendResetPassword({ requestSendResetPassword }) {
return (
-
+
+
+
);
}
+
+function SendResetPasswordFooterLinks() {
+ return (
+
+
+ Don't have an account? Sign up
+
+
+
+ Return to Sign In
+
+
+ );
+}
diff --git a/packages/webapp/src/containers/Authentication/SendResetPasswordForm.tsx b/packages/webapp/src/containers/Authentication/SendResetPasswordForm.tsx
index d8439e971..29e878af0 100644
--- a/packages/webapp/src/containers/Authentication/SendResetPasswordForm.tsx
+++ b/packages/webapp/src/containers/Authentication/SendResetPasswordForm.tsx
@@ -1,43 +1,44 @@
// @ts-nocheck
import React from 'react';
-import { Button, InputGroup, Intent, FormGroup } from '@blueprintjs/core';
-import { Form, ErrorMessage, FastField } from 'formik';
-import { FormattedMessage as T } from '@/components';
-import { inputIntent } from '@/utils';
+import { Intent } from '@blueprintjs/core';
+import { Form } from 'formik';
+import styled from 'styled-components';
+
+import { FInputGroup, FFormGroup, FormattedMessage as T } from '@/components';
+import { AuthSubmitButton } from './_components';
/**
* Send reset password form.
*/
export default function SendResetPasswordForm({ isSubmitting }) {
return (
-
);
}
+
+const TopParagraph = styled.p`
+ margin-bottom: 1.6rem;
+ opacity: 0.8;
+`;
diff --git a/packages/webapp/src/containers/Authentication/_components.tsx b/packages/webapp/src/containers/Authentication/_components.tsx
new file mode 100644
index 000000000..7010fc4bf
--- /dev/null
+++ b/packages/webapp/src/containers/Authentication/_components.tsx
@@ -0,0 +1,69 @@
+import React from 'react';
+import styled from 'styled-components';
+import { Spinner } from '@blueprintjs/core';
+import { Button } from '@blueprintjs/core';
+
+export function AuthenticationLoadingOverlay() {
+ return (
+
+
+
+ );
+}
+
+const AuthOverlayRoot = styled.div`
+ position: absolute;
+ top: 0;
+ left: 0;
+ bottom: 0;
+ right: 0;
+ background: rgba(252, 253, 255, 0.5);
+ display: flex;
+ justify-content: center;
+`;
+
+export const AuthInsiderContent = styled.div`
+ position: relative;
+`;
+export const AuthInsiderCard = styled.div`
+ border: 1px solid #d5d5d5;
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
+ padding: 26px 22px;
+ background: #ffff;
+ border-radius: 3px;
+`;
+
+export const AuthInsiderCopyright = styled.div`
+ text-align: center;
+ font-size: 12px;
+ color: #666;
+ margin-top: 1.2rem;
+
+ .bp3-icon-bigcapital {
+ svg {
+ path {
+ fill: #a3a3a3;
+ }
+ }
+ }
+`;
+
+export const AuthFooterLinks = styled.div`
+ display: flex;
+ flex-direction: column;
+ gap: 10px;
+ padding-left: 1.2rem;
+ padding-right: 1.2rem;
+ margin-top: 1rem;
+`;
+
+export const AuthFooterLink = styled.p`
+ color: #666;
+ margin: 0;
+`;
+
+export const AuthSubmitButton = styled(Button)`
+ background-color: #0052cc;
+ min-height: 45px;
+ margin-top: 20px;
+`;
diff --git a/packages/webapp/src/containers/Authentication/components.tsx b/packages/webapp/src/containers/Authentication/components.tsx
index a9e36dbb0..50edd06f2 100644
--- a/packages/webapp/src/containers/Authentication/components.tsx
+++ b/packages/webapp/src/containers/Authentication/components.tsx
@@ -16,15 +16,9 @@ export function PasswordRevealer({ defaultShown = false, onChange }) {
{' '}
-
-
-
{' '}
-
-
-
);
diff --git a/packages/webapp/src/lang/en/index.json b/packages/webapp/src/lang/en/index.json
index db8dbaf6c..37ee4c817 100644
--- a/packages/webapp/src/lang/en/index.json
+++ b/packages/webapp/src/lang/en/index.json
@@ -31,7 +31,7 @@
"phone_number": "Phone Number",
"you_email_address_is": "You email address is",
"you_will_use_this_address_to_sign_in_to_bigcapital": "You will use this address to sign in to Bigcapital.",
- "signing_in_or_creating": "By signing in or creating an account, you agree with our
Terms & Conditions and Privacy Statement ",
+ "signing_in_or_creating": "By signing in or creating an account, you agree with our Terms & Conditions and Privacy Statement ",
"and": "And",
"create_account": "Create Account",
"success": "Success",
diff --git a/packages/webapp/src/style/pages/Authentication/Auth.scss b/packages/webapp/src/style/pages/Authentication/Auth.scss
index 7a5a376d2..15cecf753 100644
--- a/packages/webapp/src/style/pages/Authentication/Auth.scss
+++ b/packages/webapp/src/style/pages/Authentication/Auth.scss
@@ -1,224 +1,32 @@
-
body.authentication {
background-color: #fcfdff;
}
-.authentication-insider {
- width: 384px;
- margin: 0 auto;
- margin-bottom: 40px;
- padding-top: 80px;
-
- &__logo-section {
- text-align: center;
- margin-bottom: 60px;
- }
-
- &__content {
- position: relative;
- }
-
- &__footer {
- .auth-copyright {
- text-align: center;
- font-size: 12px;
- color: #666;
-
- .bp3-icon-bigcapital {
- margin-top: 9px;
-
- svg {
- path {
- fill: #a3a3a3;
- }
- }
- }
- }
- }
-}
-
-
-.authTransition{
-
+.authTransition {
&-enter {
opacity: 0;
}
-
+
&-enter-active {
opacity: 1;
transition: opacity 250ms ease-in-out;
}
-
+
&-enter-done {
opacity: 1;
}
-
+
&-exit {
opacity: 1;
}
-
+
&-exit-active {
opacity: 0.5;
transition: opacity 250ms ease-in-out;
}
+
&-exit-active {
opacity: 0;
display: none;
}
-
-}
-
-
-.authentication-page {
- &__goto-bigcapital {
- position: fixed;
- margin-top: 30px;
- margin-left: 30px;
- color: #777;
- }
-
- .bp3-input {
- min-height: 40px;
- }
- .bp3-form-group {
- margin-bottom: 25px;
- }
-
- .bp3-form-group.has-password-revealer {
- .bp3-label {
- display: flex;
- justify-content: space-between;
- }
-
- .password-revealer {
- .text {
- font-size: 12px;
- }
- }
- }
-
- .bp3-button.bp3-fill.bp3-intent-primary {
- font-size: 16px;
- }
-
- &__label-section {
- margin-bottom: 30px;
- color: #555;
-
- h3 {
- font-weight: 500;
- font-size: 22px;
- color: #2d2b43;
- margin: 0 0 12px;
- }
-
- a {
- text-decoration: underline;
- color: #0040bd;
- }
- }
-
- &__form-wrapper {
- width: 100%;
- margin: 0 auto;
- }
-
- &__footer-links {
- padding: 9px;
- border-top: 1px solid #ddd;
- border-bottom: 1px solid #ddd;
- text-align: center;
- margin-bottom: 1.2rem;
-
- a {
- color: #0052cc;
- }
- }
-
- &__loading-overlay {
- position: absolute;
- top: 0;
- left: 0;
- bottom: 0;
- right: 0;
- background: rgba(252, 253, 255, 0.5);
- display: flex;
- justify-content: center;
- }
-
- &__submit-button-wrap {
- margin: 0px 0px 24px 0px;
-
- .bp3-button {
- background-color: #0052cc;
- min-height: 45px;
- }
- }
-
- // Login Form
- // ------------------------------
- .login-form {
- // width: 690px;
- // margin: 0px auto;
- // padding: 85px 50px;
-
- .checkbox {
- &--remember-me {
- margin: -6px 0 26px 0px;
- font-size: 14px;
- }
- }
- }
-
- // Register form
- // ----------------------------
- .register-form {
-
- &__agreement-section {
- margin-top: -10px;
-
- p {
- font-size: 13px;
- margin-top: -10px;
- margin-bottom: 24px;
- line-height: 1.65;
- }
- }
-
- &__submit-button-wrap {
- margin: 25px 0px 25px 0px;
-
- .bp3-button {
- min-height: 45px;
- background-color: #0052cc;
- }
- }
- }
-
- // Send reset password
- // ----------------------------
- .send-reset-password {
- .form-group--crediential {
- margin-bottom: 36px;
- }
- }
-
- // Invite form.
- // ----------------
- .invite-form {
-
- &__statement-section {
- margin-top: -10px;
-
- p {
- font-size: 14px;
- margin-bottom: 20px;
- line-height: 1.65;
- }
- }
-
- .authentication-page__loading-overlay {
- background: rgba(252, 253, 255, 0.9);
- }
- }
-}
+}
\ No newline at end of file