afront 1.0.22 → 1.0.25

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 (47) hide show
  1. package/.babelrc +13 -13
  2. package/.env +1 -1
  3. package/LICENSE +21 -21
  4. package/README.md +94 -94
  5. package/build-prod/index.html +1 -1
  6. package/build-prod/manifest.json +25 -25
  7. package/build-prod/offline.html +1023 -1023
  8. package/build-prod/robots.txt +3 -3
  9. package/build-prod-static/index.html +1 -1
  10. package/build-prod-static/manifest.json +25 -25
  11. package/build-prod-static/offline.html +1023 -1023
  12. package/build-prod-static/robots.txt +3 -3
  13. package/install.js +415 -415
  14. package/package.json +102 -95
  15. package/server.js +40 -40
  16. package/src/ARoutes/AFRoutes.js +28 -28
  17. package/src/Api/api.config.js +266 -266
  18. package/src/Api/login.service.js +44 -44
  19. package/src/App.js +28 -28
  20. package/src/Components/Background/MeshGradient.js +18 -18
  21. package/src/Components/Footer/Footer.js +108 -108
  22. package/src/Components/Header/Header.js +149 -149
  23. package/src/Components/Loading/LoadingIndicator.js +12 -12
  24. package/src/Components/Loading/LoadingIndicator.module.css +34 -34
  25. package/src/Components/Loading/LoadingSpinner.js +27 -27
  26. package/src/Components/Loading/LoadingSpinner.module.css +100 -100
  27. package/src/Components/RequireAuth.js +29 -29
  28. package/src/LoadingFallback.js +13 -13
  29. package/src/PageNotFound.js +19 -19
  30. package/src/Pages/Home.js +50 -50
  31. package/src/Pages/Signup.js +230 -230
  32. package/src/Pages/Support.js +68 -68
  33. package/src/Routes/ARoutes.js +66 -66
  34. package/src/Routes/ARoutesStatic.js +83 -83
  35. package/src/Static/appStatic.js +16 -16
  36. package/src/Static/indexStatic.js +13 -13
  37. package/src/Style/App.module.css +11 -11
  38. package/src/Style/MeshGradient.module.css +130 -130
  39. package/src/Style/PageNotFound.module.css +37 -37
  40. package/src/Style/Style.module.css +686 -686
  41. package/src/Style/Support.module.css +185 -185
  42. package/src/Utils/LoadingContext.js +5 -5
  43. package/src/index.js +25 -25
  44. package/webpack.build-prod.js +141 -140
  45. package/webpack.dev.js +127 -127
  46. package/webpack.prod.js +148 -147
  47. package/webpack.ssr.prod.js +97 -97
@@ -1,27 +1,27 @@
1
- import React from "react";
2
- import * as styles from "./LoadingSpinner.module.css";
3
-
4
- const LoadingSpinner = ({ size }) => {
5
- const scaleFactor = size / 80;
6
- return (
7
- <div
8
- style={{ transform: `scale(${scaleFactor})` }}
9
- className={styles.ldsSpinner}
10
- >
11
- <div></div>
12
- <div></div>
13
- <div></div>
14
- <div></div>
15
- <div></div>
16
- <div></div>
17
- <div></div>
18
- <div></div>
19
- <div></div>
20
- <div></div>
21
- <div></div>
22
- <div></div>
23
- </div>
24
- );
25
- };
26
-
27
- export default LoadingSpinner;
1
+ import React from "react";
2
+ import * as styles from "./LoadingSpinner.module.css";
3
+
4
+ const LoadingSpinner = ({ size }) => {
5
+ const scaleFactor = size / 80;
6
+ return (
7
+ <div
8
+ style={{ transform: `scale(${scaleFactor})` }}
9
+ className={styles.ldsSpinner}
10
+ >
11
+ <div></div>
12
+ <div></div>
13
+ <div></div>
14
+ <div></div>
15
+ <div></div>
16
+ <div></div>
17
+ <div></div>
18
+ <div></div>
19
+ <div></div>
20
+ <div></div>
21
+ <div></div>
22
+ <div></div>
23
+ </div>
24
+ );
25
+ };
26
+
27
+ export default LoadingSpinner;
@@ -1,100 +1,100 @@
1
- .ldsSpinner,
2
- .ldsSpinner div,
3
- .ldsSpinner div:after {
4
- box-sizing: border-box;
5
- }
6
-
7
- .ldsSpinner {
8
- color: currentColor;
9
- display: inline-block;
10
- position: relative;
11
- width: 80px;
12
- height: 80px;
13
- }
14
-
15
- .ldsSpinner div {
16
- transform-origin: 40px 40px;
17
- animation: ldsSpinner 1.2s linear infinite;
18
- }
19
-
20
- .ldsSpinner div:after {
21
- content: " ";
22
- display: block;
23
- position: absolute;
24
- top: 3.2px;
25
- left: 36.8px;
26
- width: 6.4px;
27
- height: 17.6px;
28
- border-radius: 20%;
29
- background: currentColor;
30
- }
31
-
32
- .ldsSpinner div:nth-child(1) {
33
- transform: rotate(0deg);
34
- animation-delay: -1.1s;
35
- }
36
-
37
- .ldsSpinner div:nth-child(2) {
38
- transform: rotate(30deg);
39
- animation-delay: -1s;
40
- }
41
-
42
- .ldsSpinner div:nth-child(3) {
43
- transform: rotate(60deg);
44
- animation-delay: -0.9s;
45
- }
46
-
47
- .ldsSpinner div:nth-child(4) {
48
- transform: rotate(90deg);
49
- animation-delay: -0.8s;
50
- }
51
-
52
- .ldsSpinner div:nth-child(5) {
53
- transform: rotate(120deg);
54
- animation-delay: -0.7s;
55
- }
56
-
57
- .ldsSpinner div:nth-child(6) {
58
- transform: rotate(150deg);
59
- animation-delay: -0.6s;
60
- }
61
-
62
- .ldsSpinner div:nth-child(7) {
63
- transform: rotate(180deg);
64
- animation-delay: -0.5s;
65
- }
66
-
67
- .ldsSpinner div:nth-child(8) {
68
- transform: rotate(210deg);
69
- animation-delay: -0.4s;
70
- }
71
-
72
- .ldsSpinner div:nth-child(9) {
73
- transform: rotate(240deg);
74
- animation-delay: -0.3s;
75
- }
76
-
77
- .ldsSpinner div:nth-child(10) {
78
- transform: rotate(270deg);
79
- animation-delay: -0.2s;
80
- }
81
-
82
- .ldsSpinner div:nth-child(11) {
83
- transform: rotate(300deg);
84
- animation-delay: -0.1s;
85
- }
86
-
87
- .ldsSpinner div:nth-child(12) {
88
- transform: rotate(330deg);
89
- animation-delay: 0s;
90
- }
91
-
92
- @keyframes ldsSpinner {
93
- 0% {
94
- opacity: 1;
95
- }
96
-
97
- 100% {
98
- opacity: 0;
99
- }
100
- }
1
+ .ldsSpinner,
2
+ .ldsSpinner div,
3
+ .ldsSpinner div:after {
4
+ box-sizing: border-box;
5
+ }
6
+
7
+ .ldsSpinner {
8
+ color: currentColor;
9
+ display: inline-block;
10
+ position: relative;
11
+ width: 80px;
12
+ height: 80px;
13
+ }
14
+
15
+ .ldsSpinner div {
16
+ transform-origin: 40px 40px;
17
+ animation: ldsSpinner 1.2s linear infinite;
18
+ }
19
+
20
+ .ldsSpinner div:after {
21
+ content: " ";
22
+ display: block;
23
+ position: absolute;
24
+ top: 3.2px;
25
+ left: 36.8px;
26
+ width: 6.4px;
27
+ height: 17.6px;
28
+ border-radius: 20%;
29
+ background: currentColor;
30
+ }
31
+
32
+ .ldsSpinner div:nth-child(1) {
33
+ transform: rotate(0deg);
34
+ animation-delay: -1.1s;
35
+ }
36
+
37
+ .ldsSpinner div:nth-child(2) {
38
+ transform: rotate(30deg);
39
+ animation-delay: -1s;
40
+ }
41
+
42
+ .ldsSpinner div:nth-child(3) {
43
+ transform: rotate(60deg);
44
+ animation-delay: -0.9s;
45
+ }
46
+
47
+ .ldsSpinner div:nth-child(4) {
48
+ transform: rotate(90deg);
49
+ animation-delay: -0.8s;
50
+ }
51
+
52
+ .ldsSpinner div:nth-child(5) {
53
+ transform: rotate(120deg);
54
+ animation-delay: -0.7s;
55
+ }
56
+
57
+ .ldsSpinner div:nth-child(6) {
58
+ transform: rotate(150deg);
59
+ animation-delay: -0.6s;
60
+ }
61
+
62
+ .ldsSpinner div:nth-child(7) {
63
+ transform: rotate(180deg);
64
+ animation-delay: -0.5s;
65
+ }
66
+
67
+ .ldsSpinner div:nth-child(8) {
68
+ transform: rotate(210deg);
69
+ animation-delay: -0.4s;
70
+ }
71
+
72
+ .ldsSpinner div:nth-child(9) {
73
+ transform: rotate(240deg);
74
+ animation-delay: -0.3s;
75
+ }
76
+
77
+ .ldsSpinner div:nth-child(10) {
78
+ transform: rotate(270deg);
79
+ animation-delay: -0.2s;
80
+ }
81
+
82
+ .ldsSpinner div:nth-child(11) {
83
+ transform: rotate(300deg);
84
+ animation-delay: -0.1s;
85
+ }
86
+
87
+ .ldsSpinner div:nth-child(12) {
88
+ transform: rotate(330deg);
89
+ animation-delay: 0s;
90
+ }
91
+
92
+ @keyframes ldsSpinner {
93
+ 0% {
94
+ opacity: 1;
95
+ }
96
+
97
+ 100% {
98
+ opacity: 0;
99
+ }
100
+ }
@@ -1,30 +1,30 @@
1
- import React, { useEffect, useState } from "react";
2
- import { Navigate, Outlet, useLocation } from "react-router";
3
- import auth from "../Api/login.service";
4
-
5
- export default function RequireAuth({ children }) {
6
- const location = useLocation();
7
- const [status, setStatus] = useState("checking");
8
-
9
- useEffect(() => {
10
- let mounted = true;
11
- (async () => {
12
- try {
13
- const res = await auth.getCurrentUser();
14
- if (mounted && res?.data?.user) setStatus("authed");
15
- else if (mounted) setStatus("unauth");
16
- } catch (e) {
17
- if (mounted) setStatus("unauth");
18
- }
19
- })();
20
- return () => {
21
- mounted = false;
22
- };
23
- }, []);
24
-
25
- if (status === "checking") return null;
26
- if (status === "unauth")
27
- return <Navigate to="/login" state={{ from: location }} replace />;
28
- // If children are provided, render them; otherwise render nested routes via Outlet
29
- return children ? children : <Outlet />;
1
+ import React, { useEffect, useState } from "react";
2
+ import { Navigate, Outlet, useLocation } from "react-router";
3
+ import auth from "../Api/login.service";
4
+
5
+ export default function RequireAuth({ children }) {
6
+ const location = useLocation();
7
+ const [status, setStatus] = useState("checking");
8
+
9
+ useEffect(() => {
10
+ let mounted = true;
11
+ (async () => {
12
+ try {
13
+ const res = await auth.getCurrentUser();
14
+ if (mounted && res?.data?.user) setStatus("authed");
15
+ else if (mounted) setStatus("unauth");
16
+ } catch (e) {
17
+ if (mounted) setStatus("unauth");
18
+ }
19
+ })();
20
+ return () => {
21
+ mounted = false;
22
+ };
23
+ }, []);
24
+
25
+ if (status === "checking") return null;
26
+ if (status === "unauth")
27
+ return <Navigate to="/login" state={{ from: location }} replace />;
28
+ // If children are provided, render them; otherwise render nested routes via Outlet
29
+ return children ? children : <Outlet />;
30
30
  }
@@ -1,13 +1,13 @@
1
- import React from "react";
2
- import * as appStyles from "./Style/App.module.css";
3
- import logo from "../dev/logo512.png";
4
-
5
- const LoadingFallback = () => {
6
- return (
7
- <div className={appStyles.loadingContainer}>
8
- <img src={logo} alt="Loading..." className={appStyles.loadingLogo} />
9
- </div>
10
- );
11
- };
12
-
13
- export default LoadingFallback;
1
+ import React from "react";
2
+ import * as appStyles from "./Style/App.module.css";
3
+ import logo from "../dev/logo512.png";
4
+
5
+ const LoadingFallback = () => {
6
+ return (
7
+ <div className={appStyles.loadingContainer}>
8
+ <img src={logo} alt="Loading..." className={appStyles.loadingLogo} />
9
+ </div>
10
+ );
11
+ };
12
+
13
+ export default LoadingFallback;
@@ -1,20 +1,20 @@
1
- import React from "react";
2
- import * as styles from "./Style/PageNotFound.module.css";
3
-
4
- const PageNotFound = () => {
5
- return (
6
- <div className={styles.pageNotFoundContainer}>
7
- <h2 className={styles.heading}>
8
- Oops! The page you're looking for doesn't exist.
9
- </h2>
10
- <p className={styles.subText}>
11
- It seems you’ve taken a wrong turn. Let’s get you back on track!
12
- </p>
13
- <a href="/" className={styles.homeLink}>
14
- Go to Homepage
15
- </a>
16
- </div>
17
- );
18
- };
19
-
1
+ import React from "react";
2
+ import * as styles from "./Style/PageNotFound.module.css";
3
+
4
+ const PageNotFound = () => {
5
+ return (
6
+ <div className={styles.pageNotFoundContainer}>
7
+ <h2 className={styles.heading}>
8
+ Oops! The page you're looking for doesn't exist.
9
+ </h2>
10
+ <p className={styles.subText}>
11
+ It seems you’ve taken a wrong turn. Let’s get you back on track!
12
+ </p>
13
+ <a href="/" className={styles.homeLink}>
14
+ Go to Homepage
15
+ </a>
16
+ </div>
17
+ );
18
+ };
19
+
20
20
  export default PageNotFound;
package/src/Pages/Home.js CHANGED
@@ -1,50 +1,50 @@
1
- import React from "react";
2
- import MeshGradient from "../Components/Background/MeshGradient";
3
- import tensorlabLogo from "../Assets/images/afront.png";
4
- import arrowright from "../Assets/images/arrow-right.svg";
5
- import HeadTags from "asggen-headtags";
6
- import * as styles from "../Style/Style.module.css";
7
-
8
- const Home = ({ context }) => {
9
- const title = "AFront by Asggen Inc.";
10
- const description = "Home for all AFront products and services.";
11
- const keywords = "Home, Afront, help";
12
- HeadTags({ title, description, keywords, context });
13
-
14
- return (
15
- <MeshGradient>
16
- <main>
17
- <section className={styles.section}>
18
- <div className={`${styles.container} ${styles.bannerColumn}`}>
19
- <img
20
- className={styles.bannerImage}
21
- src={tensorlabLogo}
22
- alt="banner"
23
- />
24
- <div className={styles.bannerInner}>
25
- <h1 className={styles.headingXl}>
26
- Empower Your Front-End with AFront
27
- </h1>
28
- <p className={styles.paragraph}>
29
- AFront streamlines front-end development with robust tools and
30
- <b> seamless server-side rendering (SSSR)</b>. Build dynamic,
31
- high-performance web experiences effortlessly.
32
- </p>
33
- <div>
34
- <a
35
- href="/"
36
- className={`${styles.btnDarken} ${styles.menuBlock}`}
37
- >
38
- Get Started{" "}
39
- <img className={styles.btnDarkenArrow} src={arrowright} />
40
- </a>
41
- </div>
42
- </div>
43
- </div>
44
- </section>
45
- </main>
46
- </MeshGradient>
47
- );
48
- };
49
-
50
- export default Home;
1
+ import React from "react";
2
+ import MeshGradient from "../Components/Background/MeshGradient";
3
+ import tensorlabLogo from "../Assets/images/afront.png";
4
+ import arrowright from "../Assets/images/arrow-right.svg";
5
+ import HeadTags from "asggen-headtags";
6
+ import * as styles from "../Style/Style.module.css";
7
+
8
+ const Home = ({ context }) => {
9
+ const title = "AFront by Asggen Inc.";
10
+ const description = "Home for all AFront products and services.";
11
+ const keywords = "Home, Afront, help";
12
+ HeadTags({ title, description, keywords, context });
13
+
14
+ return (
15
+ <MeshGradient>
16
+ <main>
17
+ <section className={styles.section}>
18
+ <div className={`${styles.container} ${styles.bannerColumn}`}>
19
+ <img
20
+ className={styles.bannerImage}
21
+ src={tensorlabLogo}
22
+ alt="banner"
23
+ />
24
+ <div className={styles.bannerInner}>
25
+ <h1 className={styles.headingXl}>
26
+ Empower Your Front-End with AFront
27
+ </h1>
28
+ <p className={styles.paragraph}>
29
+ AFront streamlines front-end development with robust tools and
30
+ <b> seamless server-side rendering (SSSR)</b>. Build dynamic,
31
+ high-performance web experiences effortlessly.
32
+ </p>
33
+ <div>
34
+ <a
35
+ href="/"
36
+ className={`${styles.btnDarken} ${styles.menuBlock}`}
37
+ >
38
+ Get Started{" "}
39
+ <img className={styles.btnDarkenArrow} src={arrowright} />
40
+ </a>
41
+ </div>
42
+ </div>
43
+ </div>
44
+ </section>
45
+ </main>
46
+ </MeshGradient>
47
+ );
48
+ };
49
+
50
+ export default Home;