@pplancq/react-template 2.7.5 → 2.7.7
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/CHANGELOG.md +24 -0
- package/package.json +18 -18
- package/build/favicon.ico +0 -0
- package/build/index.html +0 -14
- package/build/static/css/async/298.b42a11a2.css +0 -2
- package/build/static/css/async/298.b42a11a2.css.map +0 -1
- package/build/static/image/logo.5e2cdf12.png +0 -0
- package/build/static/image/templatePlugins.3443b11e.png +0 -0
- package/build/static/js/async/298.a46326b9.js +0 -2
- package/build/static/js/async/298.a46326b9.js.map +0 -1
- package/build/static/js/async/935.84d26993.js +0 -5
- package/build/static/js/async/935.84d26993.js.map +0 -1
- package/build/static/js/async/lib-react.e7800c9e.js +0 -3
- package/build/static/js/async/lib-react.e7800c9e.js.LICENSE.txt +0 -49
- package/build/static/js/async/lib-react.e7800c9e.js.map +0 -1
- package/build/static/js/async/lib-router.3451e29e.js +0 -6
- package/build/static/js/async/lib-router.3451e29e.js.LICENSE.txt +0 -10
- package/build/static/js/async/lib-router.3451e29e.js.map +0 -1
- package/build/static/js/index.f5336170.js +0 -2
- package/build/static/js/index.f5336170.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,27 @@
|
|
|
1
|
+
## @pplancq/react-template [2.7.7](https://github.com/pplancq/dev-tools/compare/@pplancq/react-template@2.7.6...@pplancq/react-template@2.7.7) (2025-11-17)
|
|
2
|
+
|
|
3
|
+
### Bug Fixes
|
|
4
|
+
|
|
5
|
+
* **deps:** update dependency @tanstack/react-query to ^5.90.8 ([69037f1](https://github.com/pplancq/dev-tools/commit/69037f12fc8e9449b0fa8d221a8f29993808b39e))
|
|
6
|
+
* **deps:** update dependency react-hook-form to ^7.66.0 ([2c002cc](https://github.com/pplancq/dev-tools/commit/2c002ccbb400e1f162f04ea981f5c05f341f2b21))
|
|
7
|
+
* **deps:** update dependency react-router to ^7.9.6 ([b37fa54](https://github.com/pplancq/dev-tools/commit/b37fa54e85eefd758a38d11df444aa501d682272))
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
### Dependencies
|
|
11
|
+
|
|
12
|
+
* **@pplancq/eslint-config:** upgraded to 5.0.13
|
|
13
|
+
|
|
14
|
+
## @pplancq/react-template [2.7.6](https://github.com/pplancq/dev-tools/compare/@pplancq/react-template@2.7.5...@pplancq/react-template@2.7.6) (2025-11-03)
|
|
15
|
+
|
|
16
|
+
### Bug Fixes
|
|
17
|
+
|
|
18
|
+
* **deps:** update dependency react-router to ^7.9.5 ([8aaa4ce](https://github.com/pplancq/dev-tools/commit/8aaa4ce0cc689a4b1444e2c17ec66b4797bd9ab3))
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
### Dependencies
|
|
22
|
+
|
|
23
|
+
* **@pplancq/eslint-config:** upgraded to 5.0.12
|
|
24
|
+
|
|
1
25
|
## @pplancq/react-template [2.7.5](https://github.com/pplancq/dev-tools/compare/@pplancq/react-template@2.7.4...@pplancq/react-template@2.7.5) (2025-10-20)
|
|
2
26
|
|
|
3
27
|
### Bug Fixes
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pplancq/react-template",
|
|
3
|
-
"version": "2.7.
|
|
3
|
+
"version": "2.7.7",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "react template",
|
|
6
6
|
"author": "pplancq <paul.plancq@outlook.fr>",
|
|
@@ -49,12 +49,12 @@
|
|
|
49
49
|
],
|
|
50
50
|
"dependencies": {
|
|
51
51
|
"@hookform/resolvers": "^5.2.2",
|
|
52
|
-
"@tanstack/react-query": "^5.90.
|
|
52
|
+
"@tanstack/react-query": "^5.90.8",
|
|
53
53
|
"@tanstack/react-query-devtools": "^5.90.2",
|
|
54
54
|
"react": "^19.2.0",
|
|
55
55
|
"react-dom": "^19.2.0",
|
|
56
|
-
"react-hook-form": "^7.
|
|
57
|
-
"react-router": "^7.9.
|
|
56
|
+
"react-hook-form": "^7.66.0",
|
|
57
|
+
"react-router": "^7.9.6",
|
|
58
58
|
"yup": "^1.7.1"
|
|
59
59
|
},
|
|
60
60
|
"devDependencies": {
|
|
@@ -67,26 +67,26 @@
|
|
|
67
67
|
"@pplancq/postcss-config": "*",
|
|
68
68
|
"@pplancq/prettier-config": "*",
|
|
69
69
|
"@pplancq/stylelint-config": "*",
|
|
70
|
-
"@rsbuild/core": "^1.
|
|
70
|
+
"@rsbuild/core": "^1.6.6",
|
|
71
71
|
"@rsbuild/plugin-eslint": "^1.1.2",
|
|
72
|
-
"@rsbuild/plugin-react": "^1.4.
|
|
72
|
+
"@rsbuild/plugin-react": "^1.4.2",
|
|
73
73
|
"@rsbuild/plugin-sass": "^1.4.0",
|
|
74
74
|
"@testing-library/jest-dom": "^6.9.1",
|
|
75
75
|
"@testing-library/react": "^16.3.0",
|
|
76
76
|
"@testing-library/user-event": "^14.6.1",
|
|
77
|
-
"@types/react": "^19.2.
|
|
78
|
-
"@types/react-dom": "^19.2.
|
|
79
|
-
"@vitejs/plugin-react-swc": "^4.
|
|
80
|
-
"@vitest/coverage-v8": "^
|
|
77
|
+
"@types/react": "^19.2.4",
|
|
78
|
+
"@types/react-dom": "^19.2.3",
|
|
79
|
+
"@vitejs/plugin-react-swc": "^4.2.2",
|
|
80
|
+
"@vitest/coverage-v8": "^4.0.8",
|
|
81
81
|
"concurrently": "^9.2.1",
|
|
82
|
-
"eslint": "^9.
|
|
82
|
+
"eslint": "^9.39.1",
|
|
83
83
|
"eslint-plugin-prettier": "^5.5.4",
|
|
84
84
|
"husky": "^9.1.7",
|
|
85
|
-
"jsdom": "^27.
|
|
86
|
-
"lint-staged": "^16.2.
|
|
85
|
+
"jsdom": "^27.2.0",
|
|
86
|
+
"lint-staged": "^16.2.6",
|
|
87
87
|
"monocart-coverage-reports": "^2.12.9",
|
|
88
|
-
"msw": "^2.
|
|
89
|
-
"nodemon": "^3.1.
|
|
88
|
+
"msw": "^2.12.1",
|
|
89
|
+
"nodemon": "^3.1.11",
|
|
90
90
|
"prettier": "^3.6.2",
|
|
91
91
|
"stylelint": "^16.25.0",
|
|
92
92
|
"stylelint-prettier": "^5.0.3",
|
|
@@ -95,15 +95,15 @@
|
|
|
95
95
|
"typescript": "^5.9.3",
|
|
96
96
|
"vite-plugin-svgr": "^4.5.0",
|
|
97
97
|
"vite-tsconfig-paths": "^5.1.4",
|
|
98
|
-
"vitest": "^
|
|
98
|
+
"vitest": "^4.0.8",
|
|
99
99
|
"vitest-axe": "^1.0.0-pre.5",
|
|
100
|
-
"vitest-sonar-reporter": "^
|
|
100
|
+
"vitest-sonar-reporter": "^3.0.0"
|
|
101
101
|
},
|
|
102
102
|
"engines": {
|
|
103
103
|
"node": ">=20.12.2"
|
|
104
104
|
},
|
|
105
105
|
"volta": {
|
|
106
|
-
"node": "
|
|
106
|
+
"node": "24.11.1",
|
|
107
107
|
"npm": "11.6.2"
|
|
108
108
|
},
|
|
109
109
|
"browserslist": {
|
package/build/favicon.ico
DELETED
|
Binary file
|
package/build/index.html
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
<!doctype html>
|
|
2
|
-
<html lang="fr">
|
|
3
|
-
<head>
|
|
4
|
-
<meta charset="utf-8" />
|
|
5
|
-
<link rel="icon" href="/favicon.ico" />
|
|
6
|
-
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
7
|
-
<meta name="description" content="Web site created using react-template" />
|
|
8
|
-
<title>React App</title>
|
|
9
|
-
<script defer src="/static/js/index.f5336170.js"></script></head>
|
|
10
|
-
<body>
|
|
11
|
-
<noscript>You need to enable JavaScript to run this app.</noscript>
|
|
12
|
-
<app-react></app-react>
|
|
13
|
-
</body>
|
|
14
|
-
</html>
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
.inputContainerStyle-e61k6Y{flex-direction:row;justify-content:space-between;align-items:center;display:flex}.hasInputError-bm34IF,.inputStyle-EpqMP3{margin:10px;padding:10px}.hasInputError-bm34IF{border:1px solid red;border-radius:2px}.hasInputError-bm34IF:focus{border:2px solid red;outline:none!important}.errorsStyle-BTMgyz{color:red;font-size:x-small}.inputStyle-clnJD_{margin-top:16px}.buttonsStyle-t0Ion8{flex-direction:row;justify-content:space-between;padding-right:8px;display:flex}.container-rRq210{padding:32px}.fieldsetStyle-Lw5XyN{margin-top:24px}.title-lh51m7{letter-spacing:4px;text-align:center;color:#00008f;padding-top:16px;font-size:20px}.lineStyle-EGpetz{width:20%}.paragraph-VqMLbv{padding-top:16px}.profileSectionStyle-pP80nu{flex-flow:wrap;justify-content:space-around;align-items:center;padding-top:16px;padding-bottom:16px;display:flex}.foo-kNDTdQ{flex:1 0 calc(1vw - 1px)}.container-KjbT9R{flex-direction:column;justify-content:center;align-items:center;padding-top:32px;display:flex}.bigTitleStyle-MEaibM{letter-spacing:1px;text-align:center;text-transform:uppercase;color:#00008f;font-family:sans-serif;font-size:40px;font-weight:400}.bigTitleStyle-MEaibM span{grid-template-columns:1fr -webkit-max-content 1fr;letter-spacing:2px;text-transform:uppercase;word-spacing:1px;color:#444;grid-template-rows:27px 0;grid-template-columns:1fr max-content 1fr;align-items:center;gap:20px;margin-top:5px;font-family:Raleway,sans-serif;font-size:15px;font-weight:500;display:grid}.bigTitleStyle-MEaibM span:before{content:"";background-color:#f8f8f8;border-top:1px solid #ccc;border-bottom:1px solid #ccc;height:5px;display:block}.bigTitleStyle-MEaibM span:after{content:" ";background-color:#f8f8f8;border-top:1px solid #ccc;border-bottom:1px solid #ccc;height:5px;display:block}.imagePlace-dZZ8DU{width:30%}@media screen and (max-width:900px){.imagePlace-dZZ8DU{width:50%}}.paragraphContainer-UGR2cN{width:100%;padding-bottom:32px}.titleStyle-IdFjRs{letter-spacing:0;margin-left:8px;padding-bottom:10px;font-size:20px;font-weight:500;line-height:1.5em;position:relative}.titleStyle-IdFjRs:before{content:"";background-color:#111;width:55px;height:5px;position:absolute;bottom:0;left:0}.titleStyle-IdFjRs:after{content:"";background-color:#333;width:95%;max-width:255px;height:1px;position:absolute;bottom:2px;left:0}.boldText-Wmbpty{font-weight:700}.centredText-ifHaPP{text-align:center}.paragraphStyle-JnnHMT{padding:12px;font-family:sans-serif;font-size:16px}.demoStyle-tNSKZB{justify-content:flex-end;display:flex}.a-v7QGRz{letter-spacing:4px;text-transform:uppercase;color:#00008f;text-decoration:none}.a-v7QGRz:hover{color:#000}table,th,td{border:1px solid #000;padding:6px;font-family:sans-serif}.tableWrapper-Z9PKSv{margin:16px;overflow:auto}table{width:100%}.highlight-WZdOfT{color:#00008f;font-weight:700}.infoSection-V9FGkM{background-color:#f5f5f5;border-radius:8px;margin:16px 16px 20px;padding:16px;box-shadow:0 4px 8px #0000001a}.infoSection-V9FGkM:hover{background-color:#d3d3d3}ul{margin:0;padding:0;list-style-type:none}li{margin-bottom:10px;font-family:sans-serif}code{background-color:#f8f9fa;border-radius:4px;padding:2px 5px;font-family:Courier New,monospace;font-size:14px}.container-GibmFC{padding:32px}.fieldsetStyle-wCVDoC{border:1px solid #000;margin-top:24px;padding:16px}.title-SCdRWZ{letter-spacing:4px;text-align:center;color:#00008f;padding-top:16px;font-size:20px}.tableWrapper-WEdXkz{overflow:auto}.dataTitle-DCFFzi{letter-spacing:4px;text-align:center;color:#00008f;padding-top:16px;padding-bottom:16px;font-size:20px}.lineStyle-g_JMj7{width:20%}.paragraph-jb5qk4{padding-top:16px}.logoStyle-TISKYc{height:100%}.container-S6n7UD{width:auto;padding:16px}.navList-kjfmYH{padding:0;list-style:none}.navList-kjfmYH li{margin:20px;display:inline}@media screen and (max-width:900px){.navList-kjfmYH li{display:none}}.a-gY6usd{letter-spacing:4px;text-transform:uppercase;color:#fff;text-decoration:none}.container-CRUfyl{flex-direction:row;align-items:center;width:auto;padding:8px;display:flex}footer{letter-spacing:4px;text-align:center;text-transform:uppercase;color:#fff;background-color:#00008f;flex-grow:0;flex-shrink:0;width:100%}header{background-color:#00008f;flex-direction:row;flex-grow:0;flex-shrink:0;justify-content:space-between;align-items:center;display:flex}@media screen and (max-width:900px){header{justify-content:center;align-items:center;display:flex}}main{flex-grow:1}.mainTemplateStyle-DiBkvW{flex-direction:column;min-height:100%;display:flex}.root-pWd0uB{flex-direction:column;justify-content:center;align-items:center;width:100%;padding-top:15%;display:flex}div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,form,label,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,html,body,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{vertical-align:baseline;font:inherit;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;border:0;margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;font-size:100%}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:none}table{border-spacing:0;border-collapse:collapse}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}body,html{height:100%}
|
|
2
|
-
/*# sourceMappingURL=298.b42a11a2.css.map*/
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"static/css/async/298.b42a11a2.css","sources":["webpack://@pplancq/react-template/./home/runner/work/dev-tools/dev-tools/packages/react-template/src/ui/atoms/Input/Input.module.scss","webpack://@pplancq/react-template/./src/ui/atoms/Input/Input.module.scss","webpack://@pplancq/react-template/./home/runner/work/dev-tools/dev-tools/packages/react-template/src/forms/ProfileForm/ProfileForm.module.scss","webpack://@pplancq/react-template/./src/forms/ProfileForm/ProfileForm.module.scss","webpack://@pplancq/react-template/./home/runner/work/dev-tools/dev-tools/packages/react-template/src/pages/Demo/ReactHookFormDemo/ReactHookFormDemo.module.css","webpack://@pplancq/react-template/./src/pages/Demo/ReactHookFormDemo/ReactHookFormDemo.module.css","webpack://@pplancq/react-template/./home/runner/work/dev-tools/dev-tools/packages/react-template/src/pages/Demo/Demo.module.scss","webpack://@pplancq/react-template/./src/pages/Demo/Demo.module.scss","webpack://@pplancq/react-template/./home/runner/work/dev-tools/dev-tools/packages/react-template/src/pages/Demo/ReactQueryDemo/ReactQueryDemo.module.scss","webpack://@pplancq/react-template/./src/pages/Demo/ReactQueryDemo/ReactQueryDemo.module.scss","webpack://@pplancq/react-template/./home/runner/work/dev-tools/dev-tools/packages/react-template/src/ui/atoms/Logo/Logo.module.css","webpack://@pplancq/react-template/./home/runner/work/dev-tools/dev-tools/packages/react-template/src/components/Footer/Footer.module.css","webpack://@pplancq/react-template/./home/runner/work/dev-tools/dev-tools/packages/react-template/src/ui/molecules/Navigation/Navigation.module.css","webpack://@pplancq/react-template/./src/ui/molecules/Navigation/Navigation.module.css","webpack://@pplancq/react-template/./home/runner/work/dev-tools/dev-tools/packages/react-template/src/components/Header/Header.module.css","webpack://@pplancq/react-template/./home/runner/work/dev-tools/dev-tools/packages/react-template/src/ui/organisms/Footer/Footer.module.css","webpack://@pplancq/react-template/./home/runner/work/dev-tools/dev-tools/packages/react-template/src/ui/organisms/Header/Header.module.css","webpack://@pplancq/react-template/./src/ui/organisms/Header/Header.module.css","webpack://@pplancq/react-template/./home/runner/work/dev-tools/dev-tools/packages/react-template/src/ui/organisms/MainContent/MainContent.module.css","webpack://@pplancq/react-template/./home/runner/work/dev-tools/dev-tools/packages/react-template/src/ui/templates/MainTemplate/MainTemplate.module.css","webpack://@pplancq/react-template/./home/runner/work/dev-tools/dev-tools/packages/react-template/src/pages/UnexpectedError/UnexpectedError.module.css","webpack://@pplancq/react-template/./home/runner/work/dev-tools/dev-tools/packages/react-template/src/assets/css/reset.css","webpack://@pplancq/react-template/./src/assets/css/reset.css","webpack://@pplancq/react-template/./home/runner/work/dev-tools/dev-tools/packages/react-template/src/assets/css/mainBody.css"],"sourcesContent":[".inputContainerStyle{display:flex;flex-direction:row;align-items:center;justify-content:space-between}.hasInputError,.inputStyle{margin:10px;padding:10px}.hasInputError{border:1px solid red;border-radius:2px}.hasInputError:focus{border:2px solid red;outline:none !important}.errorsStyle{font-size:x-small;color:red}",".inputContainerStyle {\n flex-direction: row;\n justify-content: space-between;\n align-items: center;\n display: flex;\n}\n\n.hasInputError, .inputStyle {\n margin: 10px;\n padding: 10px;\n}\n\n.hasInputError {\n border: 1px solid red;\n border-radius: 2px;\n}\n\n.hasInputError:focus {\n border: 2px solid red;\n outline: none !important;\n}\n\n.errorsStyle {\n color: red;\n font-size: x-small;\n}\n",".inputStyle{margin-top:16px}.buttonsStyle{display:flex;padding-right:8px;flex-direction:row;justify-content:space-between}",".inputStyle {\n margin-top: 16px;\n}\n\n.buttonsStyle {\n flex-direction: row;\n justify-content: space-between;\n padding-right: 8px;\n display: flex;\n}\n",".container {\n padding: 32px;\n}\n\n.fieldsetStyle {\n margin-top: 24px;\n}\n\n.title {\n padding-top: 16px;\n font-size: 20px;\n letter-spacing: 4px;\n text-align: center;\n color: #00008f;\n}\n\n.lineStyle {\n width: 20%;\n}\n\n.paragraph {\n padding-top: 16px;\n}\n\n.profileSectionStyle {\n display: flex;\n padding-top: 16px;\n padding-bottom: 16px;\n flex-flow: row wrap;\n align-items: center;\n justify-content: space-around;\n}\n",".container {\n padding: 32px;\n}\n\n.fieldsetStyle {\n margin-top: 24px;\n}\n\n.title {\n letter-spacing: 4px;\n text-align: center;\n color: #00008f;\n padding-top: 16px;\n font-size: 20px;\n}\n\n.lineStyle {\n width: 20%;\n}\n\n.paragraph {\n padding-top: 16px;\n}\n\n.profileSectionStyle {\n flex-flow: wrap;\n justify-content: space-around;\n align-items: center;\n padding-top: 16px;\n padding-bottom: 16px;\n display: flex;\n}\n",".foo{flex-grow:1;flex-shrink:0;flex-basis:calc(1vw - 1px)}.container{display:flex;padding-top:32px;flex-direction:column;align-items:center;justify-content:center}.bigTitleStyle{font-family:sans-serif;font-size:40px;font-weight:400;letter-spacing:1px;text-align:center;text-transform:uppercase;color:#00008f}.bigTitleStyle span{display:grid;margin-top:5px;grid-template-columns:1fr -webkit-max-content 1fr;grid-template-columns:1fr max-content 1fr;grid-template-rows:27px 0;align-items:center;gap:20px;font-family:Raleway,sans-serif;font-size:15px;font-weight:500;letter-spacing:2px;text-transform:uppercase;word-spacing:1px;color:#444}.bigTitleStyle span::before{display:block;height:5px;border-top:1px solid #ccc;border-bottom:1px solid #ccc;background-color:#f8f8f8;content:\"\"}.bigTitleStyle span::after{display:block;height:5px;border-top:1px solid #ccc;border-bottom:1px solid #ccc;background-color:#f8f8f8;content:\" \"}.imagePlace{width:30%}@media screen and (width <= 900px){.imagePlace{width:50%}}.paragraphContainer{width:100%;padding-bottom:32px}.titleStyle{position:relative;margin-left:8px;padding-bottom:10px;font-size:20px;font-weight:500;letter-spacing:0;line-height:1.5em}.titleStyle::before{position:absolute;bottom:0;left:0;width:55px;height:5px;background-color:#111;content:\"\"}.titleStyle::after{position:absolute;bottom:2px;left:0;width:95%;max-width:255px;height:1px;background-color:#333;content:\"\"}.boldText{font-weight:bold}.centredText{text-align:center}.paragraphStyle{padding:12px;font-family:sans-serif;font-size:16px}.demoStyle{display:flex;justify-content:flex-end}.a{letter-spacing:4px;text-decoration:none;text-transform:uppercase;color:#00008f}.a:hover{color:#000}table,th,td{padding:6px;border:1px solid #000;font-family:sans-serif}.tableWrapper{margin:16px;overflow:auto}table{width:100%}.highlight{font-weight:bold;color:#00008f}.infoSection{margin:16px;margin-bottom:20px;padding:16px;border-radius:8px;background-color:#f5f5f5;box-shadow:0 4px 8px rgba(0,0,0,.1)}.infoSection:hover{background-color:#d3d3d3}ul{margin:0;padding:0;list-style-type:none}li{margin-bottom:10px;font-family:sans-serif}code{padding:2px 5px;border-radius:4px;font-family:\"Courier New\",monospace;font-size:14px;background-color:#f8f9fa}",".foo {\n flex: 1 0 calc(1vw - 1px);\n}\n\n.container {\n flex-direction: column;\n justify-content: center;\n align-items: center;\n padding-top: 32px;\n display: flex;\n}\n\n.bigTitleStyle {\n letter-spacing: 1px;\n text-align: center;\n text-transform: uppercase;\n color: #00008f;\n font-family: sans-serif;\n font-size: 40px;\n font-weight: 400;\n}\n\n.bigTitleStyle span {\n grid-template-columns: 1fr -webkit-max-content 1fr;\n letter-spacing: 2px;\n text-transform: uppercase;\n word-spacing: 1px;\n color: #444;\n grid-template-rows: 27px 0;\n grid-template-columns: 1fr max-content 1fr;\n align-items: center;\n gap: 20px;\n margin-top: 5px;\n font-family: Raleway, sans-serif;\n font-size: 15px;\n font-weight: 500;\n display: grid;\n}\n\n.bigTitleStyle span:before {\n content: \"\";\n background-color: #f8f8f8;\n border-top: 1px solid #ccc;\n border-bottom: 1px solid #ccc;\n height: 5px;\n display: block;\n}\n\n.bigTitleStyle span:after {\n content: \" \";\n background-color: #f8f8f8;\n border-top: 1px solid #ccc;\n border-bottom: 1px solid #ccc;\n height: 5px;\n display: block;\n}\n\n.imagePlace {\n width: 30%;\n}\n\n@media screen and (max-width: 900px) {\n .imagePlace {\n width: 50%;\n }\n}\n\n.paragraphContainer {\n width: 100%;\n padding-bottom: 32px;\n}\n\n.titleStyle {\n letter-spacing: 0;\n margin-left: 8px;\n padding-bottom: 10px;\n font-size: 20px;\n font-weight: 500;\n line-height: 1.5em;\n position: relative;\n}\n\n.titleStyle:before {\n content: \"\";\n background-color: #111;\n width: 55px;\n height: 5px;\n position: absolute;\n bottom: 0;\n left: 0;\n}\n\n.titleStyle:after {\n content: \"\";\n background-color: #333;\n width: 95%;\n max-width: 255px;\n height: 1px;\n position: absolute;\n bottom: 2px;\n left: 0;\n}\n\n.boldText {\n font-weight: bold;\n}\n\n.centredText {\n text-align: center;\n}\n\n.paragraphStyle {\n padding: 12px;\n font-family: sans-serif;\n font-size: 16px;\n}\n\n.demoStyle {\n justify-content: flex-end;\n display: flex;\n}\n\n.a {\n letter-spacing: 4px;\n text-transform: uppercase;\n color: #00008f;\n text-decoration: none;\n}\n\n.a:hover {\n color: #000;\n}\n\ntable, th, td {\n border: 1px solid #000;\n padding: 6px;\n font-family: sans-serif;\n}\n\n.tableWrapper {\n margin: 16px;\n overflow: auto;\n}\n\ntable {\n width: 100%;\n}\n\n.highlight {\n color: #00008f;\n font-weight: bold;\n}\n\n.infoSection {\n background-color: #f5f5f5;\n border-radius: 8px;\n margin: 16px 16px 20px;\n padding: 16px;\n box-shadow: 0 4px 8px #0000001a;\n}\n\n.infoSection:hover {\n background-color: #d3d3d3;\n}\n\nul {\n margin: 0;\n padding: 0;\n list-style-type: none;\n}\n\nli {\n margin-bottom: 10px;\n font-family: sans-serif;\n}\n\ncode {\n background-color: #f8f9fa;\n border-radius: 4px;\n padding: 2px 5px;\n font-family: Courier New, monospace;\n font-size: 14px;\n}\n",".container{padding:32px}.fieldsetStyle{margin-top:24px;padding:16px;border:1px solid #000}.title{padding-top:16px;font-size:20px;letter-spacing:4px;text-align:center;color:#00008f}.tableWrapper{overflow:auto}.dataTitle{padding-top:16px;padding-bottom:16px;font-size:20px;letter-spacing:4px;text-align:center;color:#00008f}.lineStyle{width:20%}.paragraph{padding-top:16px}",".container {\n padding: 32px;\n}\n\n.fieldsetStyle {\n border: 1px solid #000;\n margin-top: 24px;\n padding: 16px;\n}\n\n.title {\n letter-spacing: 4px;\n text-align: center;\n color: #00008f;\n padding-top: 16px;\n font-size: 20px;\n}\n\n.tableWrapper {\n overflow: auto;\n}\n\n.dataTitle {\n letter-spacing: 4px;\n text-align: center;\n color: #00008f;\n padding-top: 16px;\n padding-bottom: 16px;\n font-size: 20px;\n}\n\n.lineStyle {\n width: 20%;\n}\n\n.paragraph {\n padding-top: 16px;\n}\n",".logoStyle {\n height: 100%;\n}\n",".container {\n width: auto;\n padding: 16px;\n}\n",".navList {\n padding: 0;\n list-style: none;\n}\n\n.navList li {\n display: inline;\n margin: 20px;\n}\n\n@media screen and (width <= 900px) {\n .navList li {\n display: none;\n }\n}\n\n.a {\n letter-spacing: 4px;\n text-decoration: none;\n text-transform: uppercase;\n color: white;\n}\n",".navList {\n padding: 0;\n list-style: none;\n}\n\n.navList li {\n margin: 20px;\n display: inline;\n}\n\n@media screen and (max-width: 900px) {\n .navList li {\n display: none;\n }\n}\n\n.a {\n letter-spacing: 4px;\n text-transform: uppercase;\n color: #fff;\n text-decoration: none;\n}\n",".container {\n display: flex;\n width: auto;\n padding: 8px;\n flex-direction: row;\n align-items: center;\n}\n","footer {\n width: 100%;\n flex-grow: 0;\n flex-shrink: 0;\n letter-spacing: 4px;\n text-align: center;\n text-transform: uppercase;\n color: white;\n background-color: #00008f;\n}\n","header {\n display: flex;\n flex-direction: row;\n flex-grow: 0;\n flex-shrink: 0;\n align-items: center;\n justify-content: space-between;\n background-color: #00008f;\n}\n\n@media screen and (width <= 900px) {\n header {\n display: flex;\n align-items: center;\n justify-content: center;\n }\n}\n","header {\n background-color: #00008f;\n flex-direction: row;\n flex-grow: 0;\n flex-shrink: 0;\n justify-content: space-between;\n align-items: center;\n display: flex;\n}\n\n@media screen and (max-width: 900px) {\n header {\n justify-content: center;\n align-items: center;\n display: flex;\n }\n}\n","main {\n flex-grow: 1;\n}\n",".mainTemplateStyle {\n display: flex;\n min-height: 100%;\n flex-direction: column;\n}\n",".root {\n display: flex;\n width: 100%;\n padding-top: 15%;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n}\n","div,\nspan,\napplet,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\npre,\na,\nabbr,\nacronym,\naddress,\nbig,\ncite,\ncode,\ndel,\ndfn,\nem,\nimg,\nins,\nkbd,\nq,\ns,\nsamp,\nsmall,\nstrike,\nstrong,\nsub,\nsup,\ntt,\nvar,\nb,\nu,\ni,\ncenter,\ndl,\ndt,\ndd,\nol,\nul,\nli,\nform,\nlabel,\ntable,\ncaption,\ntbody,\ntfoot,\nthead,\ntr,\nth,\ntd,\narticle,\naside,\ncanvas,\ndetails,\nembed,\nfigure,\nfigcaption,\nfooter,\nheader,\nhtml,\nbody,\nhgroup,\nmenu,\nnav,\noutput,\nruby,\nsection,\nsummary,\ntime,\nmark,\naudio,\nvideo {\n margin: 0;\n padding: 0;\n border: 0;\n vertical-align: baseline;\n font: inherit;\n font-family:\n -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Fira Sans', 'Droid Sans',\n 'Helvetica Neue', sans-serif;\n font-size: 100%;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n/* HTML5 display-role reset for older browsers */\narticle,\naside,\ndetails,\nfigcaption,\nfigure,\nfooter,\nheader,\nhgroup,\nmenu,\nnav,\nsection {\n display: block;\n}\n\nol,\nul {\n list-style: none;\n}\n\nblockquote,\nq {\n quotes: none;\n}\n\nblockquote::before,\nblockquote::after,\nq::before,\nq::after {\n content: none;\n}\n\ntable {\n border-spacing: 0;\n border-collapse: collapse;\n}\n\ncode {\n font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New', monospace;\n}\n","div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, form, label, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, html, body, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video {\n vertical-align: baseline;\n font: inherit;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n border: 0;\n margin: 0;\n padding: 0;\n font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen, Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, sans-serif;\n font-size: 100%;\n}\n\narticle, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {\n display: block;\n}\n\nol, ul {\n list-style: none;\n}\n\nblockquote, q {\n quotes: none;\n}\n\nblockquote:before, blockquote:after, q:before, q:after {\n content: none;\n}\n\ntable {\n border-spacing: 0;\n border-collapse: collapse;\n}\n\ncode {\n font-family: source-code-pro, Menlo, Monaco, Consolas, Courier New, monospace;\n}\n","body,\nhtml {\n height: 100%;\n}\n"],"names":[],"mappings":"AADA,6GCQA,kEAKA,6DAKA,wEAKA,gDCvBA,mCCKA,qGCLA,+BCKA,sCAIA,iGAQA,4BAIA,mCAIA,6ICzBA,qCCKA,gHAQA,wJAUA,+UAiBA,sJASA,sJASA,6BAIA,oCACE,8BAKF,0DAKA,2IAUA,mHAUA,mIAWA,iCAIA,sCAIA,0EAMA,wDAKA,yFAOA,2BAIA,qEAMA,+CAKA,iBAIA,gDAKA,iIAQA,mDAIA,2CAMA,6CAKA,iHCjLA,+BCKA,yEAMA,iGAQA,mCAIA,yHASA,4BAIA,mCCpCA,8BCAA,0CCAA,0CCMA,8CAKA,oCACE,iCAKF,sFCjBA,4FCAA,8ICAA,2ICWA,oCACE,+DCZF,iBCAA,6ECAA,qHCAA,oqBCaA,4FAIA,sBAIA,yBAIA,iEAIA,gDAKA,6EClCA"}
|
|
Binary file
|
|
Binary file
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_pplancq_react_template=self.webpackChunk_pplancq_react_template||[]).push([["298"],{276:function(e,s,a){let t;a.d(s,{default:()=>ei});var l,r=a(438),i=a(85);let n=new(a(450)).E;var c=a(212),d=a(13),o=a(858),h=a(817);let m=e=>{let{children:s,client:a}=e;return(0,i.jsxs)(o.Ht,{client:a,children:[s,(0,i.jsx)(h.E,{initialIsOpen:!1})]})};var j=a(31),x=a(945),p=a(41);let u=(0,p.forwardRef)((e,s)=>{var{label:a,hasError:t,helperText:l}=e,r=(0,d._)(e,["label","hasError","helperText"]);let n=(0,p.useId)();return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)("div",{className:"inputContainerStyle-e61k6Y",children:[(0,i.jsxs)("label",{htmlFor:n,children:[a," "]}),(0,i.jsx)("input",(0,x._)((0,c._)({id:n,ref:s},r),{className:t?"hasInputError-bm34IF":"inputStyle-EpqMP3"}))]}),t?(0,i.jsx)("p",{role:"alert",className:"errorsStyle-BTMgyz",children:l}):null]})});u.displayName="Input";var N=a(64);let f=e=>{var s,{name:a,label:t}=e,l=(0,d._)(e,["name","label"]);let{register:r,formState:{errors:n}}=(0,N.xW)();return(0,i.jsx)(u,(0,x._)((0,c._)({label:t},r(a),l),{hasError:!!n[a],helperText:null==(s=n[a])?void 0:s.message}))};var g=a(135),y=a(313);let v="inputStyle-clnJD_",b=y.Ik().shape({mail:y.Yj().email("Check the mail pattern").required("This field is required"),firstName:y.Yj().required("This field is required"),lastName:y.Yj().required("This field is required")}),S=e=>{let{onSubmit:s,resetForm:a}=e,t=(0,N.mN)({resolver:(0,g.t)(b)});return(0,i.jsx)(N.Op,(0,x._)((0,c._)({},t),{children:(0,i.jsxs)("form",{onSubmit:t.handleSubmit(s),children:[(0,i.jsxs)("p",{children:["The form is being submited ",t.formState.submitCount," times"]}),(0,i.jsx)(f,{label:"E-mail",type:"email",name:"mail",placeholder:"Exemple@gmail.com"}),(0,i.jsx)(f,{label:"First Name",name:"firstName",placeholder:"First Name"}),(0,i.jsx)(f,{label:"Last Name",name:"lastName",placeholder:"Last Name"}),(0,i.jsxs)("div",{className:"buttonsStyle-t0Ion8",children:[(0,i.jsx)("input",{type:"submit",className:v}),t.formState.isSubmitted?(0,i.jsx)("input",{type:"button",className:v,value:"Reset",onClick:()=>{t.reset(),a()}}):null]})]})}))},R={container:"container-rRq210",fieldsetStyle:"fieldsetStyle-Lw5XyN",title:"title-lh51m7",lineStyle:"lineStyle-EGpetz",paragraph:"paragraph-VqMLbv",profileSectionStyle:"profileSectionStyle-pP80nu"},k={path:"ReactHookFormDemo",element:(0,i.jsx)(()=>{let[e,s]=(0,p.useState)();return(0,i.jsxs)("div",{className:R.container,children:[(0,i.jsx)("h1",{className:R.title,children:"React Hook Form"}),(0,i.jsx)("hr",{className:R.lineStyle,color:"#00008f"}),(0,i.jsxs)("fieldset",{className:R.fieldsetStyle,children:[(0,i.jsx)("legend",{className:R.subTitle,children:"React Hook Form Example"}),(0,i.jsx)("p",{className:R.paragraph,children:"React Hook Form is a React library that simplifies form management in a React application using hooks. It provides a lightweight and efficient approach for handling form state, data validation, and handling form-related events."}),(0,i.jsxs)("div",{className:R.profileSectionStyle,children:[(0,i.jsxs)("fieldset",{children:[(0,i.jsx)("legend",{children:"Formulaire"}),(0,i.jsx)(S,{onSubmit:e=>{s((0,c._)({},e))},resetForm:()=>{s(void 0)}})]}),e?(0,i.jsxs)("fieldset",{children:[(0,i.jsx)("legend",{children:"R\xe9sultat"}),(0,i.jsxs)("p",{children:["E-mail: ",e.mail," "]}),(0,i.jsxs)("p",{children:["First-name: ",e.firstName," "]}),(0,i.jsxs)("p",{children:["Last-name: ",e.lastName," "]})]}):null]})]})]})},{})},E=a.p+"static/image/templatePlugins.3443b11e.png",_=e=>{var{className:s}=e,a=(0,d._)(e,["className"]);return(0,i.jsx)(j.k2,(0,x._)((0,c._)({},a),{className:[s].filter(Boolean).join(" ")}))},F="paragraphContainer-UGR2cN",w="titleStyle-IdFjRs",T="boldText-Wmbpty",C="centredText-ifHaPP",D="paragraphStyle-JnnHMT",M="demoStyle-tNSKZB",q="a-v7QGRz",I="highlight-WZdOfT",A="infoSection-V9FGkM",H=async e=>{var s,a;let{path:t,method:l="GET",data:r,headers:i=[]}=e,n=new Headers(i);r&&n.append("content-type","application/json");let d=await fetch(t,(0,x._)((0,c._)({method:l},r&&{body:JSON.stringify(r)}),{headers:n})),o=await d.text();if(!d.ok){let e=Error(o);throw e.code=d.status,e.contentType=null!=(s=d.headers.get("content-type"))?s:"plain/text",e}return(null!=(a=d.headers.get("content-type"))?a:"").includes("json")?JSON.parse(o):o},P=async()=>(await H({path:"https://jsonplaceholder.typicode.com/users"})).map(e=>(0,x._)((0,c._)({},e),{username:e.username.toUpperCase(),email:e.email.toLowerCase()}));var W=a(570);let z="dataTitle-DCFFzi",L={path:"ReactQueryDemo",element:(0,i.jsx)(()=>{let{result:e,isLoading:s,isError:a}=(()=>{let{data:e=[],isLoading:s,isError:a}=(0,W.I)({queryKey:["dataWithDelay"],queryFn:P});return{result:e,isLoading:s,isError:a}})();return a?(0,i.jsx)("div",{children:"Error fetching data"}):(0,i.jsxs)("div",{className:"container-GibmFC",children:[(0,i.jsx)("h1",{className:"title-SCdRWZ",children:"React Query"}),(0,i.jsx)("hr",{className:"lineStyle-g_JMj7",color:"#00008f"}),(0,i.jsxs)("div",{className:"fieldsetStyle-wCVDoC",children:[(0,i.jsx)("p",{className:"paragraph-jb5qk4",children:"React Query is a popular library for data management in React applications. It simplifies data query management, caching, data invalidation, and loading state handling."}),s?(0,i.jsx)("h1",{className:z,children:"Loading..."}):(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("h1",{className:z,children:"React Query Data Fetched"}),(0,i.jsx)("div",{className:"tableWrapper-WEdXkz",children:(0,i.jsxs)("table",{children:[(0,i.jsx)("thead",{children:(0,i.jsxs)("tr",{children:[(0,i.jsx)("th",{children:"ID"}),(0,i.jsx)("th",{children:"Name"}),(0,i.jsx)("th",{children:"Username"}),(0,i.jsx)("th",{children:"Email"}),(0,i.jsx)("th",{children:"Website"})]})}),(0,i.jsx)("tbody",{children:null==e?void 0:e.map(e=>(0,i.jsxs)("tr",{children:[(0,i.jsx)("td",{children:e.id}),(0,i.jsx)("td",{children:e.name}),(0,i.jsx)("td",{children:e.username}),(0,i.jsx)("td",{children:e.email}),(0,i.jsx)("td",{children:e.website})]},e.id))})]})})]})]})]})},{})},O={children:[{index:!0,element:(0,i.jsx)(()=>(0,i.jsxs)("div",{className:"container-KjbT9R",children:[(0,i.jsxs)("div",{className:"bigTitleStyle-MEaibM",children:["Welcome to Your React Starter Kit ",(0,i.jsx)("span",{children:"Welcome"})]}),(0,i.jsx)("div",{className:"foo-kNDTdQ",children:"FlexBlug"}),(0,i.jsxs)("div",{className:F,children:[(0,i.jsx)("h1",{className:w,children:"Overview"}),(0,i.jsx)("div",{className:A,children:(0,i.jsxs)("span",{className:C,children:[(0,i.jsxs)("p",{className:D,children:[(0,i.jsx)("span",{className:I,children:"Congratulations"})," on starting your project with our"," ",(0,i.jsx)("span",{className:I,children:"React Starter Kit!"})," This kit is designed to jumpstart your development with a well-organized project structure and pre-configured tools."]}),(0,i.jsx)("p",{className:D,children:"Below, you'll find an overview of the key features, tools, and architecture used in this starter kit."})]})})]}),(0,i.jsx)("img",{src:E,alt:"template",className:"imagePlace-dZZ8DU"}),(0,i.jsxs)("div",{className:F,children:[(0,i.jsx)("h1",{className:w,children:"Objective"}),(0,i.jsxs)("div",{className:A,children:[(0,i.jsxs)("p",{className:D,children:["The goal of this ",(0,i.jsx)("span",{className:T,children:"starter kit"})," is to enable you to quickly start a new project with all the necessary tools."]}),(0,i.jsxs)("p",{className:D,children:["Additionally, this ",(0,i.jsx)("span",{className:T,children:"starter kit"})," offers a robust set of options for structuring your ",(0,i.jsx)("span",{className:T,children:"React application"}),", providing flexibility to adapt to various project architectures."]}),(0,i.jsxs)("p",{className:D,children:["It has been thoughtfully designed not only to expedite the initial setup but also to streamline the implementation of ",(0,i.jsx)("span",{className:I,children:"Micro-Frontends"}),", making it a versatile solution for projects of different scales. (for more details check the"," ",(0,i.jsx)("span",{className:I,children:"README.md"})," file)"]})]})]}),(0,i.jsxs)("div",{className:F,children:[(0,i.jsx)("h1",{className:w,children:"Features"}),(0,i.jsx)("div",{className:A,children:(0,i.jsxs)("p",{className:D,children:[(0,i.jsx)("span",{className:T,children:"React: "}),"A JavaScript library for building user interfaces."]})}),(0,i.jsx)("div",{className:A,children:(0,i.jsxs)("p",{className:D,children:[(0,i.jsx)("span",{className:T,children:"TypeScript: "}),"A superset of JavaScript that adds static typing."]})}),(0,i.jsxs)("div",{className:A,children:[(0,i.jsxs)("p",{className:D,children:[(0,i.jsx)("span",{className:T,children:"React Query: "}),"A library for managing, caching, and updating server state in React applications. (for more details check the"," ",(0,i.jsx)("span",{className:I,children:"README.md"})," file under the"," ",(0,i.jsx)("span",{className:T,children:"hooks"})," folder)"]}),(0,i.jsx)("div",{className:M,children:(0,i.jsx)(_,{to:"/reactQueryDemo",className:q,children:"Run Demo"})})]}),(0,i.jsxs)("div",{className:A,children:[(0,i.jsxs)("p",{className:D,children:[(0,i.jsx)("span",{className:T,children:"React Hook Form: "}),"A library for managing forms with React hooks. (for more details check the ",(0,i.jsx)("span",{className:I,children:"README.md"})," file under the"," ",(0,i.jsx)("span",{className:T,children:"forms"})," folder)"]}),(0,i.jsx)("div",{className:M,children:(0,i.jsx)(_,{to:"/reactHookFormDemo",className:q,children:"Run Demo"})})]}),(0,i.jsx)("div",{className:A,children:(0,i.jsxs)("p",{className:D,children:[(0,i.jsx)("span",{className:T,children:"React Router: "}),"A declarative routing solution for React. (for more details check the ",(0,i.jsx)("span",{className:I,children:"README.md"})," file under the"," ",(0,i.jsx)("span",{className:T,children:"routing"})," folder)"]})}),(0,i.jsx)("div",{className:A,children:(0,i.jsxs)("p",{className:D,children:[(0,i.jsx)("span",{className:T,children:"...and more: "}),"Explore the"," ",(0,i.jsx)("span",{className:I,children:"Package.json"})," file to see additional dependencies."]})})]}),(0,i.jsxs)("div",{className:F,children:[(0,i.jsx)("h1",{className:w,children:"Project Structure"}),(0,i.jsx)("div",{className:A,children:(0,i.jsx)("div",{className:"tableWrapper-Z9PKSv",children:(0,i.jsxs)("table",{children:[(0,i.jsx)("thead",{children:(0,i.jsxs)("tr",{children:[(0,i.jsx)("th",{children:"Folder"}),(0,i.jsx)("th",{children:"Description"})]})}),(0,i.jsxs)("tbody",{children:[(0,i.jsxs)("tr",{children:[(0,i.jsx)("td",{children:(0,i.jsx)("span",{className:T,children:"api"})}),(0,i.jsx)("td",{children:"Place your API-related code here."})]}),(0,i.jsxs)("tr",{children:[(0,i.jsx)("td",{children:(0,i.jsx)("span",{className:T,children:"assets"})}),(0,i.jsx)("td",{children:"Store your static assets (images, fonts, etc.) in this directory."})]}),(0,i.jsxs)("tr",{children:[(0,i.jsx)("td",{children:(0,i.jsx)("span",{className:T,children:"components"})}),(0,i.jsx)("td",{children:"Reusable React components go here."})]}),(0,i.jsxs)("tr",{children:[(0,i.jsx)("td",{children:(0,i.jsx)("span",{className:T,children:"config"})}),(0,i.jsx)("td",{children:"Configuration files and environment variables are managed here."})]}),(0,i.jsxs)("tr",{children:[(0,i.jsx)("td",{children:(0,i.jsx)("span",{className:T,children:"forms"})}),(0,i.jsx)("td",{children:"Define your forms using React Hook Form."})]}),(0,i.jsxs)("tr",{children:[(0,i.jsx)("td",{children:(0,i.jsx)("span",{className:T,children:"hooks"})}),(0,i.jsx)("td",{children:"Custom React hooks to share logic across components."})]}),(0,i.jsxs)("tr",{children:[(0,i.jsx)("td",{children:(0,i.jsx)("span",{className:T,children:"pages"})}),(0,i.jsx)("td",{children:"React components that represent individual pages or views."})]}),(0,i.jsxs)("tr",{children:[(0,i.jsx)("td",{children:(0,i.jsx)("span",{className:T,children:"providers"})}),(0,i.jsx)("td",{children:"React context providers for state management."})]}),(0,i.jsxs)("tr",{children:[(0,i.jsx)("td",{children:(0,i.jsx)("span",{className:T,children:"routing"})}),(0,i.jsx)("td",{children:"Configure your application routes here."})]}),(0,i.jsxs)("tr",{children:[(0,i.jsx)("td",{children:(0,i.jsx)("span",{className:T,children:"types"})}),(0,i.jsx)("td",{children:"TypeScript type definitions."})]}),(0,i.jsxs)("tr",{children:[(0,i.jsx)("td",{children:(0,i.jsx)("span",{className:T,children:"ui"})}),(0,i.jsx)("td",{children:"Presentational components and styles."})]}),(0,i.jsxs)("tr",{children:[(0,i.jsx)("td",{children:(0,i.jsx)("span",{className:T,children:"utils"})}),(0,i.jsx)("td",{children:"General utility functions."})]})]})]})})})]}),(0,i.jsxs)("div",{className:F,children:[(0,i.jsx)("h1",{className:w,children:"Additional Information"}),(0,i.jsx)("div",{className:A,children:(0,i.jsxs)("ul",{children:[(0,i.jsxs)("li",{children:["- Customize the project configuration in the ",(0,i.jsx)("code",{children:"config"})," directory."]}),(0,i.jsxs)("li",{children:["- Explore the ",(0,i.jsx)("code",{children:"utils"})," directory for utility functions."]}),(0,i.jsx)("li",{children:"- Leverage React Query for efficient data fetching."}),(0,i.jsx)("li",{children:"- Take advantage of React Hook Form for managing forms seamlessly."}),(0,i.jsxs)("li",{children:["- Refer to the ",(0,i.jsx)("code",{children:"types"})," directory for TypeScript type definitions."]})]})}),(0,i.jsx)("div",{className:A,children:(0,i.jsx)("span",{className:C,children:(0,i.jsxs)("p",{className:D,children:["Our project is organized into various folders, each containing its own"," ",(0,i.jsx)("span",{className:I,children:"README.md"})," file with specific details, instructions, and additional information. This documentation will guide you through setting up the environment, understanding the project structure, and using the available components and features. For more details, check the ",(0,i.jsx)("span",{className:I,children:"README.md"})," file in"," ",(0,i.jsx)("span",{className:T,children:"each folder of the project"}),"."]})})}),(0,i.jsx)("div",{className:A,children:(0,i.jsx)("span",{className:C,children:(0,i.jsxs)("p",{className:D,children:["Feel free to explore and modify the structure to suit your project's needs."," ",(0,i.jsx)("span",{className:T,children:"Happy coding!"})]})})})]})]}),{})},L,k]},Q=a.p+"static/image/logo.5e2cdf12.png",Y=e=>{let{src:s,alt:a,size:t="80px"}=e;return(0,i.jsx)("img",{className:"logoStyle-TISKYc",style:{width:t},src:s,alt:a})},B=()=>(0,i.jsxs)("div",{className:"container-S6n7UD",children:[(0,i.jsx)("hr",{}),(0,i.jsx)(j.N_,{to:"/",children:(0,i.jsx)(Y,{size:"50px",src:Q,alt:"logo"})})]}),G=e=>{let{links:s}=e,a=(0,p.useId)();return(0,i.jsx)("nav",{children:(0,i.jsx)("ul",{className:"navList-kjfmYH",children:s.map(e=>(0,i.jsx)("li",{children:(0,i.jsx)(_,{to:e.url,className:"a-gY6usd",children:e.label})},"".concat(a," ").concat(e.label," ").concat(e.url)))})})},J=()=>(0,i.jsxs)("div",{className:"container-CRUfyl",children:[(0,i.jsx)(j.N_,{to:"/",children:(0,i.jsx)(Y,{size:"50px",src:Q,alt:"logo"})}),(0,i.jsx)(G,{links:[{label:"Demo",url:"/"}]})]}),K={},U=e=>{let{footerContent:s}=e;return(0,i.jsx)("footer",{className:K.footer,children:s})},Z={},V=e=>{let{leftComponents:s,rightComponents:a}=e;return(0,i.jsxs)("header",{className:Z.header,children:[s,a]})},X={},$=e=>{let{children:s}=e;return(0,i.jsx)("main",{className:X.main,children:s})},ee=e=>{let{headerProps:s,footerProps:a,children:t}=e;return(0,i.jsxs)("div",{className:"mainTemplateStyle-DiBkvW",children:[(0,i.jsx)(V,(0,c._)({},s)),(0,i.jsx)($,{children:t}),(0,i.jsx)(U,(0,c._)({},a))]})},es=[{path:"/",element:(0,i.jsx)(()=>(0,i.jsx)(ee,{headerProps:{leftComponents:(0,i.jsx)(J,{})},footerProps:{footerContent:(0,i.jsx)(B,{})},children:(0,i.jsx)(j.sv,{})}),{}),children:[O],errorElement:(0,i.jsx)(()=>{let e=(0,j.r5)();return(0,i.jsxs)("div",{className:"root-pWd0uB",children:[(0,i.jsx)(j.N_,{to:"/",children:(0,i.jsx)(Y,{src:Q,alt:"logo"})}),(0,i.jsx)("h1",{children:"Oops!"}),(0,i.jsx)("p",{children:"Sorry, an unexpected error has occurred."}),(0,i.jsx)("p",{children:(0,i.jsx)("i",{children:(null==e?void 0:e.message)||(null==e?void 0:e.statusText)})})]})},{})}],ea=function(){let{basename:e}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return(0,j.Ys)(es,{basename:e})},et=(l=j.pg,(t=e=>{var{queryClient:s}=e,a=(0,d._)(e,["queryClient"]);return(0,i.jsx)(m,{client:s,children:(0,i.jsx)(l,(0,c._)({},a))})}).displayName="withProvider(".concat(l.displayName||l.name,")"),t),el=e=>{let{basename:s}=e,a=ea({basename:s});return(0,i.jsx)(et,{queryClient:n,router:a})};var er=a(873);class ei extends HTMLElement{connectedCallback(){var e;this.isMounted=!0,this.root.render((0,i.jsx)(p.StrictMode,{children:(0,i.jsx)(el,{basename:null!=(e=this.getAttribute("basename"))?e:""})}))}disconnectedCallback(){this.isMounted=!1,queueMicrotask(()=>{this.isMounted||this.root.unmount()})}constructor(){super(),(0,r._)(this,"root",void 0),(0,r._)(this,"isMounted",!1),this.root=(0,er.createRoot)(this)}}}}]);
|
|
2
|
-
//# sourceMappingURL=298.a46326b9.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"static/js/async/298.a46326b9.js","sources":["webpack://@pplancq/react-template/./src/providers/withProviders/withProviders.tsx","webpack://@pplancq/react-template/./src/config/queryClientConfig.ts","webpack://@pplancq/react-template/./src/providers/QueryClientProvider/QueryClientProvider.tsx","webpack://@pplancq/react-template/./src/ui/atoms/Input/Input.module.scss?d6c2","webpack://@pplancq/react-template/./src/ui/atoms/Input/Input.tsx","webpack://@pplancq/react-template/./src/components/TextInput/TextInput.tsx","webpack://@pplancq/react-template/./src/forms/ProfileForm/ProfileForm.module.scss?8dac","webpack://@pplancq/react-template/./src/forms/ProfileForm/ProfileForm.tsx","webpack://@pplancq/react-template/./src/pages/Demo/ReactHookFormDemo/ReactHookFormDemo.module.css?fe72","webpack://@pplancq/react-template/./src/pages/Demo/ReactHookFormDemo/routes.tsx","webpack://@pplancq/react-template/./src/pages/Demo/ReactHookFormDemo/ReactHookFormDemo.tsx","webpack://@pplancq/react-template/./src/ui/atoms/NavLink/NavLink.tsx","webpack://@pplancq/react-template/./src/pages/Demo/Demo.module.scss?8874","webpack://@pplancq/react-template/./src/api/fetchApi.ts","webpack://@pplancq/react-template/./src/api/demoApi.ts","webpack://@pplancq/react-template/./src/pages/Demo/ReactQueryDemo/ReactQueryDemo.module.scss?a042","webpack://@pplancq/react-template/./src/pages/Demo/ReactQueryDemo/routes.tsx","webpack://@pplancq/react-template/./src/pages/Demo/ReactQueryDemo/ReactQueryDemo.tsx","webpack://@pplancq/react-template/./src/hooks/api/useDemoApi.ts","webpack://@pplancq/react-template/./src/hooks/api/queryKey.ts","webpack://@pplancq/react-template/./src/pages/Demo/routes.tsx","webpack://@pplancq/react-template/./src/pages/Demo/Demo.tsx","webpack://@pplancq/react-template/./src/routing/appRoutes.ts","webpack://@pplancq/react-template/./src/ui/atoms/Logo/Logo.tsx","webpack://@pplancq/react-template/./src/ui/atoms/Logo/Logo.module.css","webpack://@pplancq/react-template/./src/components/Footer/Footer.tsx","webpack://@pplancq/react-template/./src/components/Footer/Footer.module.css","webpack://@pplancq/react-template/./src/ui/molecules/Navigation/Navigation.tsx","webpack://@pplancq/react-template/./src/ui/molecules/Navigation/Navigation.module.css?66b7","webpack://@pplancq/react-template/./src/components/Header/Header.tsx","webpack://@pplancq/react-template/./src/components/Header/Header.module.css","webpack://@pplancq/react-template/./src/ui/organisms/Footer/Footer.module.css","webpack://@pplancq/react-template/./src/ui/organisms/Footer/Footer.tsx","webpack://@pplancq/react-template/./src/ui/organisms/Header/Header.module.css?89e8","webpack://@pplancq/react-template/./src/ui/organisms/Header/Header.tsx","webpack://@pplancq/react-template/./src/ui/organisms/MainContent/MainContent.module.css","webpack://@pplancq/react-template/./src/ui/organisms/MainContent/MainContent.tsx","webpack://@pplancq/react-template/./src/ui/templates/MainTemplate/MainTemplate.tsx","webpack://@pplancq/react-template/./src/ui/templates/MainTemplate/MainTemplate.module.css","webpack://@pplancq/react-template/./src/routing/routes.tsx","webpack://@pplancq/react-template/./src/pages/Layout/Layout.tsx","webpack://@pplancq/react-template/./src/pages/UnexpectedError/UnexpectedError.tsx","webpack://@pplancq/react-template/./src/pages/UnexpectedError/UnexpectedError.module.css","webpack://@pplancq/react-template/./src/routing/routerFactory.ts","webpack://@pplancq/react-template/./src/components/App/App.tsx","webpack://@pplancq/react-template/./src/bootstrap.tsx"],"sourcesContent":["import { QueryClientProvider } from '@Front/providers/QueryClientProvider';\nimport type { ComponentProps, ComponentType } from 'react';\n\ntype WithRootProps = {\n queryClient: ComponentProps<typeof QueryClientProvider>['client'];\n};\n\nexport const withProvider = <P extends object>(Component: ComponentType<P>) => {\n const WithProvider = ({ queryClient, ...props }: P & WithRootProps) => (\n <QueryClientProvider client={queryClient}>\n <Component {...(props as P)} />\n </QueryClientProvider>\n );\n\n WithProvider.displayName = `withProvider(${Component.displayName || Component.name})`;\n\n return WithProvider;\n};\n","import { QueryClient } from '@tanstack/react-query';\n\nexport const queryClient = new QueryClient();\n","import { type QueryClient, QueryClientProvider as ReactQueryClientProvider } from '@tanstack/react-query';\nimport { ReactQueryDevtools } from '@tanstack/react-query-devtools';\nimport type { PropsWithChildren } from 'react';\n\ntype ClientProviderProps = {\n client: QueryClient;\n};\n\nexport const QueryClientProvider = ({ children, client }: PropsWithChildren<ClientProviderProps>) => {\n return (\n <ReactQueryClientProvider client={client}>\n {children}\n <ReactQueryDevtools initialIsOpen={false} />\n </ReactQueryClientProvider>\n );\n};\n","// extracted by css-extract-rspack-plugin\nexport default {\"inputContainerStyle\":\"inputContainerStyle-e61k6Y\",\"hasInputError\":\"hasInputError-bm34IF\",\"inputStyle\":\"inputStyle-EpqMP3\",\"errorsStyle\":\"errorsStyle-BTMgyz\"};","import { forwardRef, InputHTMLAttributes, useId } from 'react';\nimport classes from './Input.module.scss';\n\ninterface InputProps extends InputHTMLAttributes<HTMLInputElement> {\n label: string;\n hasError?: boolean;\n helperText?: string;\n}\n\nexport const Input = forwardRef<HTMLInputElement, InputProps>(({ label, hasError, helperText, ...rest }, ref) => {\n const id = useId();\n return (\n <>\n <div className={classes.inputContainerStyle}>\n <label htmlFor={id}>{label} </label>\n <input id={id} ref={ref} {...rest} className={hasError ? classes.hasInputError : classes.inputStyle} />\n </div>\n {hasError ? (\n <p role=\"alert\" className={classes.errorsStyle}>\n {helperText}\n </p>\n ) : null}\n </>\n );\n});\n\nInput.displayName = 'Input';\n","import { Input } from '@Front/ui/atoms/Input';\nimport { InputHTMLAttributes } from 'react';\nimport { FieldError, useFormContext } from 'react-hook-form';\n\ninterface TextInputProps extends InputHTMLAttributes<HTMLInputElement> {\n name: string;\n label: string;\n}\n\nexport const TextInput = ({ name, label, ...rest }: TextInputProps) => {\n const {\n register,\n formState: { errors },\n } = useFormContext();\n return (\n <Input\n label={label}\n {...register(name)}\n {...rest}\n hasError={!!errors[name]}\n helperText={(errors[name] as FieldError)?.message}\n />\n );\n};\n","// extracted by css-extract-rspack-plugin\nexport default {\"inputStyle\":\"inputStyle-clnJD_\",\"buttonsStyle\":\"buttonsStyle-t0Ion8\"};","import { TextInput } from '@Front/components/TextInput';\nimport { ProfileType } from '@Front/types/profileTypes';\nimport { yupResolver } from '@hookform/resolvers/yup';\nimport { FormProvider, SubmitHandler, useForm } from 'react-hook-form';\nimport * as yup from 'yup';\nimport classes from './ProfileForm.module.scss';\n\ntype ProfileFormProps = {\n onSubmit: SubmitHandler<ProfileType>;\n resetForm: () => void;\n};\n\nconst schema = yup.object().shape({\n mail: yup.string().email('Check the mail pattern').required('This field is required'),\n firstName: yup.string().required('This field is required'),\n lastName: yup.string().required('This field is required'),\n});\n\nexport const ProfileForm = ({ onSubmit, resetForm }: ProfileFormProps) => {\n const methods = useForm<ProfileType>({\n resolver: yupResolver(schema),\n });\n\n return (\n <FormProvider {...methods}>\n <form onSubmit={methods.handleSubmit(onSubmit)}>\n <p>The form is being submited {methods.formState.submitCount} times</p>\n <TextInput label=\"E-mail\" type=\"email\" name=\"mail\" placeholder=\"Exemple@gmail.com\" />\n\n <TextInput label=\"First Name\" name=\"firstName\" placeholder=\"First Name\" />\n\n <TextInput label=\"Last Name\" name=\"lastName\" placeholder=\"Last Name\" />\n\n <div className={classes.buttonsStyle}>\n <input type=\"submit\" className={classes.inputStyle} />\n {methods.formState.isSubmitted ? (\n <input\n type=\"button\"\n className={classes.inputStyle}\n value=\"Reset\"\n onClick={() => {\n methods.reset();\n resetForm();\n }}\n />\n ) : null}\n </div>\n </form>\n </FormProvider>\n );\n};\n","// extracted by css-extract-rspack-plugin\nexport default {\"container\":\"container-rRq210\",\"fieldsetStyle\":\"fieldsetStyle-Lw5XyN\",\"title\":\"title-lh51m7\",\"lineStyle\":\"lineStyle-EGpetz\",\"paragraph\":\"paragraph-VqMLbv\",\"profileSectionStyle\":\"profileSectionStyle-pP80nu\"};","import { RouteObject } from 'react-router';\nimport { ReactHookFormDemo } from './ReactHookFormDemo';\n\nexport const reactHookFormDemoRoutes: RouteObject = {\n path: 'ReactHookFormDemo',\n element: <ReactHookFormDemo />,\n};\n","import { ProfileForm } from '@Front/forms/ProfileForm';\nimport { ProfileType } from '@Front/types/profileTypes';\nimport { useState } from 'react';\n\nimport classes from './ReactHookFormDemo.module.css';\n\nexport const ReactHookFormDemo = () => {\n const [profileData, setProfileData] = useState<ProfileType>();\n\n const onSubmit = (data: ProfileType) => {\n setProfileData({ ...data });\n };\n\n const resetForm = () => {\n setProfileData(undefined);\n };\n\n return (\n <div className={classes.container}>\n <h1 className={classes.title}>React Hook Form</h1>\n <hr className={classes.lineStyle} color=\"#00008f\" />\n\n <fieldset className={classes.fieldsetStyle}>\n <legend className={classes.subTitle}>React Hook Form Example</legend>\n <p className={classes.paragraph}>\n React Hook Form is a React library that simplifies form management in a React application using hooks. It\n provides a lightweight and efficient approach for handling form state, data validation, and handling\n form-related events.\n </p>\n <div className={classes.profileSectionStyle}>\n <fieldset>\n <legend>Formulaire</legend>\n <ProfileForm onSubmit={onSubmit} resetForm={resetForm} />\n </fieldset>\n\n {profileData ? (\n <fieldset>\n <legend>Résultat</legend>\n <p>E-mail: {profileData.mail} </p>\n <p>First-name: {profileData.firstName} </p>\n <p>Last-name: {profileData.lastName} </p>\n </fieldset>\n ) : null}\n </div>\n </fieldset>\n </div>\n );\n};\n","import { ComponentProps } from 'react';\nimport { NavLink as RouterNavLink } from 'react-router';\n\ntype NavLinkProps = ComponentProps<typeof RouterNavLink>;\n\nexport const NavLink = ({ className, ...props }: NavLinkProps) => (\n <RouterNavLink {...props} className={[className].filter(Boolean).join(' ')} />\n);\n","// extracted by css-extract-rspack-plugin\nexport default {\"foo\":\"foo-kNDTdQ\",\"container\":\"container-KjbT9R\",\"bigTitleStyle\":\"bigTitleStyle-MEaibM\",\"imagePlace\":\"imagePlace-dZZ8DU\",\"paragraphContainer\":\"paragraphContainer-UGR2cN\",\"titleStyle\":\"titleStyle-IdFjRs\",\"boldText\":\"boldText-Wmbpty\",\"centredText\":\"centredText-ifHaPP\",\"paragraphStyle\":\"paragraphStyle-JnnHMT\",\"demoStyle\":\"demoStyle-tNSKZB\",\"a\":\"a-v7QGRz\",\"tableWrapper\":\"tableWrapper-Z9PKSv\",\"highlight\":\"highlight-WZdOfT\",\"infoSection\":\"infoSection-V9FGkM\"};","import type { Json } from '@Front/types/api';\nimport { HEADERS, METHODS, MIME_TYPES } from './constant';\n\nexport type FetchApiError = Error & {\n code?: number;\n contentType?: MIME_TYPES;\n};\n\ntype FetchApiProps = {\n path: string;\n method?: METHODS;\n data?: Json;\n headers?: HeadersInit;\n};\n\nexport const fetchApi = async <T extends Json | string>({\n path,\n method = METHODS.get,\n data,\n headers = [],\n}: FetchApiProps): Promise<T> => {\n const mergeHeaders = new Headers(headers);\n\n if (data) {\n mergeHeaders.append(HEADERS.contentType, MIME_TYPES.json);\n }\n\n const response = await fetch(path, {\n method,\n ...(data && { body: JSON.stringify(data) }),\n headers: mergeHeaders,\n });\n\n const content = await response.text();\n\n if (!response.ok) {\n const error: FetchApiError = new Error(content);\n error.code = response.status;\n error.contentType = (response.headers.get(HEADERS.contentType) as MIME_TYPES) ?? MIME_TYPES.text;\n\n throw error;\n }\n\n if ((response.headers.get(HEADERS.contentType) ?? '').includes('json')) {\n return JSON.parse(content) as T;\n }\n\n return content as T;\n};\n","import { fetchApi } from '@Front/api/fetchApi';\nimport type { Users } from '@Front/types/demoApi';\n\nexport const fetchDemoApi = async () => {\n const users = await fetchApi<Users>({\n path: 'https://jsonplaceholder.typicode.com/users',\n });\n\n return users.map(user => ({ ...user, username: user.username.toUpperCase(), email: user.email.toLowerCase() }));\n};\n","// extracted by css-extract-rspack-plugin\nexport default {\"container\":\"container-GibmFC\",\"fieldsetStyle\":\"fieldsetStyle-wCVDoC\",\"title\":\"title-SCdRWZ\",\"tableWrapper\":\"tableWrapper-WEdXkz\",\"dataTitle\":\"dataTitle-DCFFzi\",\"lineStyle\":\"lineStyle-g_JMj7\",\"paragraph\":\"paragraph-jb5qk4\"};","import { RouteObject } from 'react-router';\nimport { ReactQueryDemo } from './ReactQueryDemo';\n\nexport const reactQueryDemoRoutes: RouteObject = {\n path: 'ReactQueryDemo',\n element: <ReactQueryDemo />,\n};\n","import { useDemoApi } from '@Front/hooks/api/useDemoApi';\nimport classes from './ReactQueryDemo.module.scss';\n\nexport const ReactQueryDemo = () => {\n const { result, isLoading, isError } = useDemoApi();\n\n if (isError) {\n return <div>Error fetching data</div>;\n }\n\n return (\n <div className={classes.container}>\n <h1 className={classes.title}>React Query</h1>\n <hr className={classes.lineStyle} color=\"#00008f\" />\n\n <div className={classes.fieldsetStyle}>\n <p className={classes.paragraph}>\n React Query is a popular library for data management in React applications. It simplifies data query\n management, caching, data invalidation, and loading state handling.\n </p>\n {isLoading ? (\n <h1 className={classes.dataTitle}>Loading...</h1>\n ) : (\n <>\n <h1 className={classes.dataTitle}>React Query Data Fetched</h1>\n <div className={classes.tableWrapper}>\n <table>\n <thead>\n <tr>\n <th>ID</th>\n <th>Name</th>\n <th>Username</th>\n <th>Email</th>\n <th>Website</th>\n </tr>\n </thead>\n <tbody>\n {result?.map(eachResult => (\n <tr key={eachResult.id}>\n <td>{eachResult.id}</td>\n <td>{eachResult.name}</td>\n <td>{eachResult.username}</td>\n <td>{eachResult.email}</td>\n <td>{eachResult.website}</td>\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n </>\n )}\n </div>\n </div>\n );\n};\n","import { fetchDemoApi } from '@Front/api/demoApi';\nimport type { Users } from '@Front/types/demoApi';\nimport { useQuery } from '@tanstack/react-query';\nimport { demoQuery } from './queryKey';\n\ntype UseDemoApiReturn = {\n result: Users;\n isLoading: boolean;\n isError: boolean;\n};\n\nexport const useDemoApi = (): UseDemoApiReturn => {\n const { data = [], isLoading, isError } = useQuery<Users>({ queryKey: demoQuery(), queryFn: fetchDemoApi });\n\n return { result: data, isLoading, isError };\n};\n","export const demoQuery = () => ['dataWithDelay'];\n","import { reactHookFormDemoRoutes } from '@Front/pages/Demo/ReactHookFormDemo';\nimport { RouteObject } from 'react-router';\nimport { Demo } from './Demo';\nimport { reactQueryDemoRoutes } from './ReactQueryDemo';\n\nexport const demoRoutes: RouteObject = {\n children: [{ index: true, element: <Demo /> }, reactQueryDemoRoutes, reactHookFormDemoRoutes],\n};\n","import image from '@Front/assets/images/templatePlugins.png';\nimport { approutes } from '@Front/routing/appRoutes';\nimport { NavLink } from '@Front/ui/atoms/NavLink';\nimport classes from './Demo.module.scss';\n\nexport const Demo = () => {\n return (\n <div className={classes.container}>\n <div className={classes.bigTitleStyle}>\n Welcome to Your React Starter Kit <span>Welcome</span>\n </div>\n\n <div className={classes.foo}>FlexBlug</div>\n\n <div className={classes.paragraphContainer}>\n <h1 className={classes.titleStyle}>Overview</h1>\n <div className={classes.infoSection}>\n <span className={classes.centredText}>\n <p className={classes.paragraphStyle}>\n <span className={classes.highlight}>Congratulations</span> on starting your project with our{' '}\n <span className={classes.highlight}>React Starter Kit!</span> This kit is designed to jumpstart your\n development with a well-organized project structure and pre-configured tools.\n </p>\n <p className={classes.paragraphStyle}>\n Below, you'll find an overview of the key features, tools, and architecture used in this starter kit.\n </p>\n </span>\n </div>\n </div>\n <img src={image} alt=\"template\" className={classes.imagePlace} />\n\n <div className={classes.paragraphContainer}>\n <h1 className={classes.titleStyle}>Objective</h1>\n <div className={classes.infoSection}>\n <p className={classes.paragraphStyle}>\n The goal of this <span className={classes.boldText}>starter kit</span> is to enable you to quickly start a\n new project with all the necessary tools.\n </p>\n <p className={classes.paragraphStyle}>\n Additionally, this <span className={classes.boldText}>starter kit</span> offers a robust set of options for\n structuring your <span className={classes.boldText}>React application</span>, providing flexibility to adapt\n to various project architectures.\n </p>\n <p className={classes.paragraphStyle}>\n It has been thoughtfully designed not only to expedite the initial setup but also to streamline the\n implementation of <span className={classes.highlight}>Micro-Frontends</span>, making it a versatile solution\n for projects of different scales. (for more details check the{' '}\n <span className={classes.highlight}>README.md</span> file)\n </p>\n </div>\n </div>\n\n <div className={classes.paragraphContainer}>\n <h1 className={classes.titleStyle}>Features</h1>\n <div className={classes.infoSection}>\n <p className={classes.paragraphStyle}>\n <span className={classes.boldText}>React: </span>A JavaScript library for building user interfaces.\n </p>\n </div>\n <div className={classes.infoSection}>\n <p className={classes.paragraphStyle}>\n <span className={classes.boldText}>TypeScript: </span>A superset of JavaScript that adds static typing.\n </p>\n </div>\n <div className={classes.infoSection}>\n <p className={classes.paragraphStyle}>\n <span className={classes.boldText}>React Query: </span>A library for managing, caching, and updating server\n state in React applications. (for more details check the{' '}\n <span className={classes.highlight}>README.md</span> file under the{' '}\n <span className={classes.boldText}>hooks</span> folder)\n </p>\n <div className={classes.demoStyle}>\n <NavLink to={approutes.reactQueryDemo} className={classes.a}>\n Run Demo\n </NavLink>\n </div>\n </div>\n <div className={classes.infoSection}>\n <p className={classes.paragraphStyle}>\n <span className={classes.boldText}>React Hook Form: </span>A library for managing forms with React hooks.\n (for more details check the <span className={classes.highlight}>README.md</span> file under the{' '}\n <span className={classes.boldText}>forms</span> folder)\n </p>\n <div className={classes.demoStyle}>\n <NavLink to={approutes.reactHookFormDemo} className={classes.a}>\n Run Demo\n </NavLink>\n </div>\n </div>\n\n <div className={classes.infoSection}>\n <p className={classes.paragraphStyle}>\n <span className={classes.boldText}>React Router: </span>A declarative routing solution for React. (for more\n details check the <span className={classes.highlight}>README.md</span> file under the{' '}\n <span className={classes.boldText}>routing</span> folder)\n </p>\n </div>\n <div className={classes.infoSection}>\n <p className={classes.paragraphStyle}>\n <span className={classes.boldText}>...and more: </span>Explore the{' '}\n <span className={classes.highlight}>Package.json</span> file to see additional dependencies.\n </p>\n </div>\n </div>\n\n <div className={classes.paragraphContainer}>\n <h1 className={classes.titleStyle}>Project Structure</h1>\n\n <div className={classes.infoSection}>\n <div className={classes.tableWrapper}>\n <table>\n <thead>\n <tr>\n <th>Folder</th>\n <th>Description</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td>\n <span className={classes.boldText}>api</span>\n </td>\n <td>Place your API-related code here.</td>\n </tr>\n <tr>\n <td>\n <span className={classes.boldText}>assets</span>\n </td>\n <td>Store your static assets (images, fonts, etc.) in this directory.</td>\n </tr>\n <tr>\n <td>\n <span className={classes.boldText}>components</span>\n </td>\n <td>Reusable React components go here.</td>\n </tr>\n <tr>\n <td>\n <span className={classes.boldText}>config</span>\n </td>\n <td>Configuration files and environment variables are managed here.</td>\n </tr>\n <tr>\n <td>\n <span className={classes.boldText}>forms</span>\n </td>\n <td>Define your forms using React Hook Form.</td>\n </tr>\n <tr>\n <td>\n <span className={classes.boldText}>hooks</span>\n </td>\n <td>Custom React hooks to share logic across components.</td>\n </tr>\n <tr>\n <td>\n <span className={classes.boldText}>pages</span>\n </td>\n <td>React components that represent individual pages or views.</td>\n </tr>\n <tr>\n <td>\n <span className={classes.boldText}>providers</span>\n </td>\n <td>React context providers for state management.</td>\n </tr>\n <tr>\n <td>\n <span className={classes.boldText}>routing</span>\n </td>\n <td>Configure your application routes here.</td>\n </tr>\n <tr>\n <td>\n <span className={classes.boldText}>types</span>\n </td>\n <td>TypeScript type definitions.</td>\n </tr>\n <tr>\n <td>\n <span className={classes.boldText}>ui</span>\n </td>\n <td>Presentational components and styles.</td>\n </tr>\n <tr>\n <td>\n <span className={classes.boldText}>utils</span>\n </td>\n <td>General utility functions.</td>\n </tr>\n </tbody>\n </table>\n </div>\n </div>\n </div>\n <div className={classes.paragraphContainer}>\n <h1 className={classes.titleStyle}>Additional Information</h1>\n <div className={classes.infoSection}>\n <ul>\n <li>\n - Customize the project configuration in the <code>config</code> directory.\n </li>\n <li>\n - Explore the <code>utils</code> directory for utility functions.\n </li>\n <li>- Leverage React Query for efficient data fetching.</li>\n <li>- Take advantage of React Hook Form for managing forms seamlessly.</li>\n <li>\n - Refer to the <code>types</code> directory for TypeScript type definitions.\n </li>\n </ul>\n </div>\n <div className={classes.infoSection}>\n <span className={classes.centredText}>\n <p className={classes.paragraphStyle}>\n Our project is organized into various folders, each containing its own{' '}\n <span className={classes.highlight}>README.md</span> file with specific details, instructions, and\n additional information. This documentation will guide you through setting up the environment,\n understanding the project structure, and using the available components and features. For more details,\n check the <span className={classes.highlight}>README.md</span> file in{' '}\n <span className={classes.boldText}>each folder of the project</span>.\n </p>\n </span>\n </div>\n <div className={classes.infoSection}>\n <span className={classes.centredText}>\n <p className={classes.paragraphStyle}>\n Feel free to explore and modify the structure to suit your project's needs.{' '}\n <span className={classes.boldText}>Happy coding!</span>\n </p>\n </span>\n </div>\n </div>\n </div>\n );\n};\n","export const approutes = {\n home: '/',\n reactQueryDemo: '/reactQueryDemo',\n reactHookFormDemo: '/reactHookFormDemo',\n};\n","import classes from './Logo.module.css';\n\ntype LogoProps = {\n src: string;\n alt: string;\n size?: string;\n};\n\nexport const Logo = ({ src, alt, size = '80px' }: LogoProps) => {\n return <img className={classes.logoStyle} style={{ width: size }} src={src} alt={alt} />;\n};\n","// extracted by css-extract-rspack-plugin\nexport default {\"logoStyle\":\"logoStyle-TISKYc\"};","import logo from '@Front/assets/images/logo.png';\nimport { Logo } from '@Front/ui/atoms/Logo';\nimport { Link } from 'react-router';\n\nimport classes from './Footer.module.css';\n\nexport const Footer = () => {\n return (\n <div className={classes.container}>\n <hr />\n <Link to=\"/\">\n <Logo size=\"50px\" src={logo} alt=\"logo\" />\n </Link>\n </div>\n );\n};\n","// extracted by css-extract-rspack-plugin\nexport default {\"container\":\"container-S6n7UD\"};","import { NavLink } from '@Front/ui/atoms/NavLink';\nimport { useId } from 'react';\nimport classes from './Navigation.module.css';\n\ntype NavigationProps = {\n links: { label: string; url: string }[];\n};\n\nexport const Navigation = ({ links }: NavigationProps) => {\n const id = useId();\n\n return (\n <nav>\n <ul className={classes.navList}>\n {links.map(link => (\n <li key={`${id} ${link.label} ${link.url}`}>\n <NavLink to={link.url} className={classes.a}>\n {link.label}\n </NavLink>\n </li>\n ))}\n </ul>\n </nav>\n );\n};\n","// extracted by css-extract-rspack-plugin\nexport default {\"navList\":\"navList-kjfmYH\",\"a\":\"a-gY6usd\"};","import logo from '@Front/assets/images/logo.png';\nimport { Logo } from '@Front/ui/atoms/Logo';\nimport { Navigation } from '@Front/ui/molecules/Navigation';\nimport { Link } from 'react-router';\n\nimport classes from './Header.module.css';\n\nexport const Header = () => {\n return (\n <div className={classes.container}>\n <Link to=\"/\">\n <Logo size=\"50px\" src={logo} alt=\"logo\" />\n </Link>\n <Navigation links={[{ label: 'Demo', url: '/' }]} />\n </div>\n );\n};\n","// extracted by css-extract-rspack-plugin\nexport default {\"container\":\"container-CRUfyl\"};","// extracted by css-extract-rspack-plugin\nexport default {};","import { ReactNode } from 'react';\nimport classes from './Footer.module.css';\n\ntype FooterProps = {\n footerContent?: ReactNode;\n};\n\nexport const Footer = ({ footerContent }: FooterProps) => {\n return <footer className={classes.footer}>{footerContent}</footer>;\n};\n","// extracted by css-extract-rspack-plugin\nexport default {};","import { ReactNode } from 'react';\nimport classes from './Header.module.css';\n\ntype HeaderProps = {\n leftComponents?: ReactNode;\n rightComponents?: ReactNode;\n};\n\nexport const Header = ({ leftComponents, rightComponents }: HeaderProps) => {\n return (\n <header className={classes.header}>\n {leftComponents}\n {rightComponents}\n </header>\n );\n};\n","// extracted by css-extract-rspack-plugin\nexport default {};","import { PropsWithChildren } from 'react';\nimport classes from './MainContent.module.css';\n\nexport const MainContent = ({ children }: PropsWithChildren) => {\n return <main className={classes.main}>{children}</main>;\n};\n","import { Footer } from '@Front/ui/organisms/Footer';\nimport { Header } from '@Front/ui/organisms/Header';\nimport { MainContent } from '@Front/ui/organisms/MainContent';\nimport { PropsWithChildren, ReactNode } from 'react';\n\nimport classes from './MainTemplate.module.css';\n\ntype MainTemplateProps = {\n headerProps: {\n leftComponents?: ReactNode;\n rightComponents?: ReactNode;\n };\n footerProps: {\n footerContent?: ReactNode;\n };\n};\n\nexport const MainTemplate = ({ headerProps, footerProps, children }: PropsWithChildren<MainTemplateProps>) => {\n return (\n <div className={classes.mainTemplateStyle}>\n <Header {...headerProps} />\n <MainContent>{children}</MainContent>\n <Footer {...footerProps} />\n </div>\n );\n};\n","// extracted by css-extract-rspack-plugin\nexport default {\"mainTemplateStyle\":\"mainTemplateStyle-DiBkvW\"};","import { demoRoutes } from '@Front/pages/Demo';\nimport { Layout } from '@Front/pages/Layout';\nimport type { RouteObject } from 'react-router';\nimport { UnexpectedError } from 'src/pages/UnexpectedError';\n\nexport const routeObject: RouteObject[] = [\n {\n path: '/',\n element: <Layout />,\n children: [demoRoutes],\n errorElement: <UnexpectedError />,\n },\n];\n","import { Footer } from '@Front/components/Footer';\nimport { Header } from '@Front/components/Header';\nimport { MainTemplate } from '@Front/ui/templates/MainTemplate';\nimport { Outlet } from 'react-router';\n\nexport const Layout = () => {\n return (\n <MainTemplate headerProps={{ leftComponents: <Header /> }} footerProps={{ footerContent: <Footer /> }}>\n <Outlet />\n </MainTemplate>\n );\n};\n","import logo from '@Front/assets/images/logo.png';\nimport { Logo } from '@Front/ui/atoms/Logo';\nimport { Link, useRouteError } from 'react-router';\n\nimport classes from './UnexpectedError.module.css';\n\nexport const UnexpectedError = () => {\n const error: unknown = useRouteError();\n\n return (\n <div className={classes.root}>\n <Link to=\"/\">\n <Logo src={logo} alt=\"logo\" />\n </Link>\n <h1>Oops!</h1>\n <p>Sorry, an unexpected error has occurred.</p>\n <p>\n <i>{(error as Error)?.message || (error as { statusText?: string })?.statusText}</i>\n </p>\n </div>\n );\n};\n","// extracted by css-extract-rspack-plugin\nexport default {\"root\":\"root-pWd0uB\"};","import { createBrowserRouter } from 'react-router';\nimport { routeObject } from './routes';\n\ninterface CreateRouterProps {\n basename?: string;\n}\n\nexport const createRouter = ({ basename }: CreateRouterProps = {}) => {\n return createBrowserRouter(routeObject, {\n basename,\n });\n};\n","import { queryClient } from '@Front/config';\nimport { withProvider } from '@Front/providers';\nimport { createRouter } from '@Front/routing/routerFactory';\nimport { RouterProvider } from 'react-router';\n\nimport '@Front/assets/css';\n\ntype AppProps = {\n basename?: string;\n};\n\nconst AppWithProviders = withProvider(RouterProvider);\n\nexport const App = ({ basename }: AppProps) => {\n const router = createRouter({ basename });\n\n return <AppWithProviders queryClient={queryClient} router={router} />;\n};\n","import { App } from '@Front/components/App';\nimport { StrictMode } from 'react';\nimport { createRoot, type Root } from 'react-dom/client';\n\n// eslint-disable-next-line import/no-default-export\nexport default class Bootstrap extends HTMLElement {\n private readonly root: Root;\n\n private isMounted = false;\n\n constructor() {\n super();\n\n this.root = createRoot(this);\n }\n\n connectedCallback() {\n this.isMounted = true;\n this.root.render(\n <StrictMode>\n <App basename={this.getAttribute('basename') ?? ''} />\n </StrictMode>,\n );\n }\n\n disconnectedCallback() {\n this.isMounted = false;\n\n queueMicrotask(() => {\n if (!this.isMounted) {\n this.root.unmount();\n }\n });\n }\n}\n"],"names":["WithProvider","Component","queryClient","QueryClient","QueryClientProvider","children","client","ReactQueryClientProvider","ReactQueryDevtools","Input","forwardRef","ref","label","hasError","helperText","rest","id","useId","TextInput","_errors_name","name","register","errors","useFormContext","schema","yup","ProfileForm","onSubmit","resetForm","methods","useForm","yupResolver","FormProvider","reactHookFormDemoRoutes","profileData","setProfileData","useState","classes","data","undefined","ReactHookFormDemo","NavLink","className","props","RouterNavLink","Boolean","fetchApi","_response_headers_get","_response_headers_get1","path","method","METHODS","headers","mergeHeaders","Headers","HEADERS","MIME_TYPES","response","fetch","JSON","content","error","Error","fetchDemoApi","users","user","reactQueryDemoRoutes","result","isLoading","isError","useDemoApi","useQuery","eachResult","ReactQueryDemo","demoRoutes","image","Demo","Logo","src","alt","size","Footer","Link","logo","Navigation","links","link","Header","footerContent","leftComponents","rightComponents","MainContent","MainTemplate","headerProps","footerProps","routeObject","Outlet","Layout","useRouteError","UnexpectedError","createRouter","basename","createBrowserRouter","AppWithProviders","RouterProvider","App","router","Bootstrap","HTMLElement","_this_getAttribute","StrictMode","queueMicrotask","createRoot"],"mappings":"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"}
|