@undp/create-app 0.2.1 → 0.2.3

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 (279) hide show
  1. package/README.md +20 -21
  2. package/bin/generateFiles/generateEnv.js +21 -0
  3. package/bin/generateFiles/generateLayoutForNext.js +40 -0
  4. package/bin/generateFiles/generateNextEnvTypes.js +9 -0
  5. package/bin/generateFiles/generatePackageJson.js +10 -11
  6. package/bin/generateFiles/generatePageForNext.js +102 -0
  7. package/bin/generateFiles/generateStylesCss.js +8 -0
  8. package/bin/generateFiles/index.js +5 -0
  9. package/bin/index.js +25 -9
  10. package/bin/promptUser.js +22 -26
  11. package/bin/templates/next/auth/app/about/page.tsx +51 -0
  12. package/bin/templates/next/{withDataViz/auth → auth}/app/layout.tsx +2 -1
  13. package/bin/templates/next/{withDataViz/auth → auth}/app/login/page.tsx +20 -2
  14. package/bin/templates/next/auth/app/page.tsx +75 -0
  15. package/bin/templates/next/auth/app/user/page.tsx +84 -0
  16. package/bin/templates/next/auth/public/imgs/Zustand-logo.svg +266 -0
  17. package/bin/templates/next/auth/stores/counter.ts +23 -0
  18. package/bin/templates/next/basic/app/about/page.tsx +51 -0
  19. package/bin/templates/next/{withDataViz/basic → basic}/app/layout.tsx +2 -1
  20. package/bin/templates/next/basic/app/page.tsx +75 -0
  21. package/bin/templates/next/basic/public/imgs/Zustand-logo.svg +266 -0
  22. package/bin/templates/next/basic/stores/counter.ts +23 -0
  23. package/bin/templates/queryIntegrationForNext/integration/tanstack-query.tsx +27 -0
  24. package/bin/templates/vite/basic/public/imgs/Zustand-logo.svg +266 -0
  25. package/bin/templates/vite/{withDataViz/query → basic}/src/App.tsx +30 -31
  26. package/bin/templates/vite/{withDataViz/basic → basic}/src/main.tsx +1 -1
  27. package/bin/templates/vite/basic/src/stores/counter.ts +23 -0
  28. package/bin/templates/vite/query/public/imgs/Zustand-logo.svg +266 -0
  29. package/bin/templates/vite/{withoutDataViz/query → query}/src/App.tsx +39 -10
  30. package/bin/templates/vite/{withDataViz/query → query}/src/integration/tanstack-query.tsx +2 -1
  31. package/bin/templates/vite/query/src/stores/counter.ts +23 -0
  32. package/bin/templates/vite/query+router/public/imgs/Zustand-logo.svg +266 -0
  33. package/bin/templates/vite/query+router/src/App.tsx +73 -0
  34. package/bin/templates/vite/{withDataViz/query+router → query+router}/src/integration/tanstack-query.tsx +2 -1
  35. package/bin/templates/vite/{withDataViz/query+router → query+router}/src/routes/queryDemo.tsx +12 -8
  36. package/bin/templates/vite/query+router/src/stores/counter.ts +23 -0
  37. package/bin/templates/vite/router/public/imgs/Zustand-logo.svg +266 -0
  38. package/bin/templates/vite/router/src/App.tsx +73 -0
  39. package/bin/templates/vite/{withDataViz/router → router}/src/main.tsx +2 -2
  40. package/bin/templates/vite/{withoutDataViz/router/src/App.tsx → router/src/routes/about.tsx} +14 -7
  41. package/bin/templates/vite/router/src/stores/counter.ts +23 -0
  42. package/bin/templates/vite/{withoutDataViz/router → router}/src/styles/style.css +0 -1
  43. package/package.json +1 -1
  44. package/bin/templates/next/withDataViz/auth/README.md +0 -108
  45. package/bin/templates/next/withDataViz/auth/app/about/page.tsx +0 -33
  46. package/bin/templates/next/withDataViz/auth/app/page.tsx +0 -33
  47. package/bin/templates/next/withDataViz/auth/app/user/page.tsx +0 -86
  48. package/bin/templates/next/withDataViz/basic/README.md +0 -56
  49. package/bin/templates/next/withDataViz/basic/app/about/page.tsx +0 -33
  50. package/bin/templates/next/withDataViz/basic/app/page.tsx +0 -33
  51. package/bin/templates/next/withoutDataViz/auth/app/about/page.tsx +0 -33
  52. package/bin/templates/next/withoutDataViz/auth/app/api/auth/[...all]/route.ts +0 -5
  53. package/bin/templates/next/withoutDataViz/auth/app/globals.css +0 -3
  54. package/bin/templates/next/withoutDataViz/auth/app/layout.tsx +0 -30
  55. package/bin/templates/next/withoutDataViz/auth/app/login/page.tsx +0 -45
  56. package/bin/templates/next/withoutDataViz/auth/app/page.tsx +0 -33
  57. package/bin/templates/next/withoutDataViz/auth/app/user/page.tsx +0 -86
  58. package/bin/templates/next/withoutDataViz/auth/components/Footer.tsx +0 -16
  59. package/bin/templates/next/withoutDataViz/auth/components/Header.tsx +0 -56
  60. package/bin/templates/next/withoutDataViz/auth/eslint.config.mjs +0 -103
  61. package/bin/templates/next/withoutDataViz/auth/lib/auth-client.ts +0 -7
  62. package/bin/templates/next/withoutDataViz/auth/lib/auth.ts +0 -30
  63. package/bin/templates/next/withoutDataViz/auth/next.config.ts +0 -10
  64. package/bin/templates/next/withoutDataViz/auth/postcss.config.mjs +0 -7
  65. package/bin/templates/next/withoutDataViz/auth/public/next.svg +0 -1
  66. package/bin/templates/next/withoutDataViz/auth/tsconfig.json +0 -34
  67. package/bin/templates/next/withoutDataViz/basic/app/about/page.tsx +0 -33
  68. package/bin/templates/next/withoutDataViz/basic/app/globals.css +0 -3
  69. package/bin/templates/next/withoutDataViz/basic/app/layout.tsx +0 -31
  70. package/bin/templates/next/withoutDataViz/basic/app/page.tsx +0 -33
  71. package/bin/templates/next/withoutDataViz/basic/components/Footer.tsx +0 -16
  72. package/bin/templates/next/withoutDataViz/basic/components/Header.tsx +0 -27
  73. package/bin/templates/next/withoutDataViz/basic/eslint.config.mjs +0 -103
  74. package/bin/templates/next/withoutDataViz/basic/next.config.ts +0 -7
  75. package/bin/templates/next/withoutDataViz/basic/postcss.config.mjs +0 -7
  76. package/bin/templates/next/withoutDataViz/basic/public/next.svg +0 -1
  77. package/bin/templates/next/withoutDataViz/basic/tsconfig.json +0 -34
  78. package/bin/templates/vite/withDataViz/basic/README.md +0 -76
  79. package/bin/templates/vite/withDataViz/basic/src/App.tsx +0 -38
  80. package/bin/templates/vite/withDataViz/basic/src/styles/style.css +0 -4
  81. package/bin/templates/vite/withDataViz/basic/vite.config.ts +0 -74
  82. package/bin/templates/vite/withDataViz/query/.prettierrc +0 -10
  83. package/bin/templates/vite/withDataViz/query/README.md +0 -80
  84. package/bin/templates/vite/withDataViz/query/public/favicon.ico +0 -0
  85. package/bin/templates/vite/withDataViz/query/src/styles/style.css +0 -4
  86. package/bin/templates/vite/withDataViz/query/tailwind.config.js +0 -7
  87. package/bin/templates/vite/withDataViz/query+router/README.md +0 -112
  88. package/bin/templates/vite/withDataViz/query+router/src/App.tsx +0 -42
  89. package/bin/templates/vite/withDataViz/query+router/src/styles/style.css +0 -4
  90. package/bin/templates/vite/withDataViz/router/.prettierrc +0 -10
  91. package/bin/templates/vite/withDataViz/router/README.md +0 -107
  92. package/bin/templates/vite/withDataViz/router/public/favicon.ico +0 -0
  93. package/bin/templates/vite/withDataViz/router/public/imgs/undp-logo-blue.svg +0 -1
  94. package/bin/templates/vite/withDataViz/router/src/App.tsx +0 -51
  95. package/bin/templates/vite/withDataViz/router/src/assets/undp-logo-blue.svg +0 -1
  96. package/bin/templates/vite/withDataViz/router/src/routes/about.tsx +0 -73
  97. package/bin/templates/vite/withDataViz/router/src/styles/style.css +0 -4
  98. package/bin/templates/vite/withDataViz/router/tailwind.config.js +0 -7
  99. package/bin/templates/vite/withoutDataViz/basic/.prettierrc +0 -10
  100. package/bin/templates/vite/withoutDataViz/basic/eslint.config.mjs +0 -97
  101. package/bin/templates/vite/withoutDataViz/basic/index.html +0 -13
  102. package/bin/templates/vite/withoutDataViz/basic/public/favicon.ico +0 -0
  103. package/bin/templates/vite/withoutDataViz/basic/public/imgs/Vitejs-logo.svg +0 -15
  104. package/bin/templates/vite/withoutDataViz/basic/public/imgs/undp-logo-blue.svg +0 -1
  105. package/bin/templates/vite/withoutDataViz/basic/src/App.tsx +0 -38
  106. package/bin/templates/vite/withoutDataViz/basic/src/assets/undp-logo-blue.svg +0 -1
  107. package/bin/templates/vite/withoutDataViz/basic/src/components/Footer.tsx +0 -14
  108. package/bin/templates/vite/withoutDataViz/basic/src/components/Header.tsx +0 -25
  109. package/bin/templates/vite/withoutDataViz/basic/src/main.tsx +0 -10
  110. package/bin/templates/vite/withoutDataViz/basic/src/styles/fonts.css +0 -213
  111. package/bin/templates/vite/withoutDataViz/basic/src/vite-env.d.ts +0 -1
  112. package/bin/templates/vite/withoutDataViz/basic/tailwind.config.js +0 -7
  113. package/bin/templates/vite/withoutDataViz/basic/tsconfig.json +0 -29
  114. package/bin/templates/vite/withoutDataViz/basic/tsconfig.node.json +0 -9
  115. package/bin/templates/vite/withoutDataViz/query/.prettierrc +0 -10
  116. package/bin/templates/vite/withoutDataViz/query/eslint.config.mjs +0 -97
  117. package/bin/templates/vite/withoutDataViz/query/index.html +0 -13
  118. package/bin/templates/vite/withoutDataViz/query/public/favicon.ico +0 -0
  119. package/bin/templates/vite/withoutDataViz/query/public/imgs/Tailwind_CSS_Logo.svg +0 -1
  120. package/bin/templates/vite/withoutDataViz/query/public/imgs/Vitejs-logo.svg +0 -15
  121. package/bin/templates/vite/withoutDataViz/query/public/imgs/logo-color-600.png +0 -0
  122. package/bin/templates/vite/withoutDataViz/query/public/imgs/undp-logo-blue.svg +0 -1
  123. package/bin/templates/vite/withoutDataViz/query/src/assets/undp-logo-blue.svg +0 -1
  124. package/bin/templates/vite/withoutDataViz/query/src/components/Footer.tsx +0 -14
  125. package/bin/templates/vite/withoutDataViz/query/src/components/Header.tsx +0 -25
  126. package/bin/templates/vite/withoutDataViz/query/src/integration/tanstack-query.tsx +0 -27
  127. package/bin/templates/vite/withoutDataViz/query/src/main.tsx +0 -21
  128. package/bin/templates/vite/withoutDataViz/query/src/styles/fonts.css +0 -213
  129. package/bin/templates/vite/withoutDataViz/query/src/vite-env.d.ts +0 -1
  130. package/bin/templates/vite/withoutDataViz/query/tailwind.config.js +0 -7
  131. package/bin/templates/vite/withoutDataViz/query/tsconfig.json +0 -29
  132. package/bin/templates/vite/withoutDataViz/query/tsconfig.node.json +0 -9
  133. package/bin/templates/vite/withoutDataViz/query/vite.config.ts +0 -75
  134. package/bin/templates/vite/withoutDataViz/query+router/.prettierrc +0 -10
  135. package/bin/templates/vite/withoutDataViz/query+router/eslint.config.mjs +0 -97
  136. package/bin/templates/vite/withoutDataViz/query+router/index.html +0 -13
  137. package/bin/templates/vite/withoutDataViz/query+router/public/favicon.ico +0 -0
  138. package/bin/templates/vite/withoutDataViz/query+router/public/imgs/Vitejs-logo.svg +0 -15
  139. package/bin/templates/vite/withoutDataViz/query+router/public/imgs/logo-color-600.png +0 -0
  140. package/bin/templates/vite/withoutDataViz/query+router/public/imgs/undp-logo-blue.svg +0 -1
  141. package/bin/templates/vite/withoutDataViz/query+router/src/App.tsx +0 -42
  142. package/bin/templates/vite/withoutDataViz/query+router/src/assets/undp-logo-blue.svg +0 -1
  143. package/bin/templates/vite/withoutDataViz/query+router/src/components/Footer.tsx +0 -14
  144. package/bin/templates/vite/withoutDataViz/query+router/src/components/Header.tsx +0 -25
  145. package/bin/templates/vite/withoutDataViz/query+router/src/integration/tanstack-query.tsx +0 -27
  146. package/bin/templates/vite/withoutDataViz/query+router/src/main.tsx +0 -73
  147. package/bin/templates/vite/withoutDataViz/query+router/src/routes/queryDemo.tsx +0 -73
  148. package/bin/templates/vite/withoutDataViz/query+router/src/styles/fonts.css +0 -213
  149. package/bin/templates/vite/withoutDataViz/query+router/src/vite-env.d.ts +0 -1
  150. package/bin/templates/vite/withoutDataViz/query+router/tailwind.config.js +0 -7
  151. package/bin/templates/vite/withoutDataViz/query+router/tsconfig.json +0 -29
  152. package/bin/templates/vite/withoutDataViz/query+router/tsconfig.node.json +0 -9
  153. package/bin/templates/vite/withoutDataViz/query+router/vite.config.ts +0 -75
  154. package/bin/templates/vite/withoutDataViz/router/.prettierrc +0 -10
  155. package/bin/templates/vite/withoutDataViz/router/eslint.config.mjs +0 -97
  156. package/bin/templates/vite/withoutDataViz/router/index.html +0 -13
  157. package/bin/templates/vite/withoutDataViz/router/public/favicon.ico +0 -0
  158. package/bin/templates/vite/withoutDataViz/router/public/imgs/Tailwind_CSS_Logo.svg +0 -1
  159. package/bin/templates/vite/withoutDataViz/router/public/imgs/Vitejs-logo.svg +0 -15
  160. package/bin/templates/vite/withoutDataViz/router/public/imgs/logo-color-600.png +0 -0
  161. package/bin/templates/vite/withoutDataViz/router/public/imgs/undp-logo-blue.svg +0 -1
  162. package/bin/templates/vite/withoutDataViz/router/src/assets/undp-logo-blue.svg +0 -1
  163. package/bin/templates/vite/withoutDataViz/router/src/components/Footer.tsx +0 -14
  164. package/bin/templates/vite/withoutDataViz/router/src/components/Header.tsx +0 -25
  165. package/bin/templates/vite/withoutDataViz/router/src/main.tsx +0 -66
  166. package/bin/templates/vite/withoutDataViz/router/src/routes/about.tsx +0 -73
  167. package/bin/templates/vite/withoutDataViz/router/src/styles/fonts.css +0 -213
  168. package/bin/templates/vite/withoutDataViz/router/src/vite-env.d.ts +0 -1
  169. package/bin/templates/vite/withoutDataViz/router/tailwind.config.js +0 -7
  170. package/bin/templates/vite/withoutDataViz/router/tsconfig.json +0 -29
  171. package/bin/templates/vite/withoutDataViz/router/tsconfig.node.json +0 -9
  172. package/bin/templates/vite/withoutDataViz/router/vite.config.ts +0 -75
  173. /package/bin/templates/next/{withDataViz/auth → auth}/.prettierrc +0 -0
  174. /package/bin/templates/next/{withoutDataViz/auth → auth}/README.md +0 -0
  175. /package/bin/templates/next/{withDataViz/auth → auth}/app/api/auth/[...all]/route.ts +0 -0
  176. /package/bin/templates/next/{withDataViz/auth → auth}/app/favicon.ico +0 -0
  177. /package/bin/templates/next/{withDataViz/auth → auth}/app/globals.css +0 -0
  178. /package/bin/templates/next/{withDataViz/auth → auth}/components/Footer.tsx +0 -0
  179. /package/bin/templates/next/{withDataViz/auth → auth}/components/Header.tsx +0 -0
  180. /package/bin/templates/next/{withDataViz/auth → auth}/eslint.config.mjs +0 -0
  181. /package/bin/templates/next/{withDataViz/auth → auth}/lib/auth-client.ts +0 -0
  182. /package/bin/templates/next/{withDataViz/auth → auth}/lib/auth.ts +0 -0
  183. /package/bin/templates/next/{withDataViz/auth → auth}/next.config.ts +0 -0
  184. /package/bin/templates/next/{withDataViz/auth → auth}/postcss.config.mjs +0 -0
  185. /package/bin/templates/{vite/withDataViz/basic → next/auth}/public/imgs/Tailwind_CSS_Logo.svg +0 -0
  186. /package/bin/templates/next/{withDataViz/auth/public → auth/public/imgs}/next.svg +0 -0
  187. /package/bin/templates/next/{withDataViz/auth/public → auth/public/imgs}/undp-logo-blue.svg +0 -0
  188. /package/bin/templates/next/{withDataViz/auth → auth}/tailwind.config.js +0 -0
  189. /package/bin/templates/next/{withDataViz/auth → auth}/tsconfig.json +0 -0
  190. /package/bin/templates/next/{withDataViz/basic → basic}/.prettierrc +0 -0
  191. /package/bin/templates/next/{withoutDataViz/basic → basic}/README.md +0 -0
  192. /package/bin/templates/next/{withDataViz/basic → basic}/app/favicon.ico +0 -0
  193. /package/bin/templates/next/{withDataViz/basic → basic}/app/globals.css +0 -0
  194. /package/bin/templates/next/{withDataViz/basic → basic}/components/Footer.tsx +0 -0
  195. /package/bin/templates/next/{withDataViz/basic → basic}/components/Header.tsx +0 -0
  196. /package/bin/templates/next/{withDataViz/basic → basic}/eslint.config.mjs +0 -0
  197. /package/bin/templates/next/{withDataViz/basic → basic}/next.config.ts +0 -0
  198. /package/bin/templates/next/{withDataViz/basic → basic}/postcss.config.mjs +0 -0
  199. /package/bin/templates/{vite/withDataViz/query+router → next/basic}/public/imgs/Tailwind_CSS_Logo.svg +0 -0
  200. /package/bin/templates/next/{withDataViz/basic/public → basic/public/imgs}/next.svg +0 -0
  201. /package/bin/templates/next/{withDataViz/basic/public → basic/public/imgs}/undp-logo-blue.svg +0 -0
  202. /package/bin/templates/next/{withDataViz/basic → basic}/tailwind.config.js +0 -0
  203. /package/bin/templates/next/{withDataViz/basic → basic}/tsconfig.json +0 -0
  204. /package/bin/templates/{next/withoutDataViz/auth → vite/basic}/.prettierrc +0 -0
  205. /package/bin/templates/vite/{withoutDataViz/basic → basic}/README.md +0 -0
  206. /package/bin/templates/vite/{withDataViz/basic → basic}/eslint.config.mjs +0 -0
  207. /package/bin/templates/vite/{withDataViz/basic → basic}/index.html +0 -0
  208. /package/bin/templates/{next/withoutDataViz/auth/app → vite/basic/public}/favicon.ico +0 -0
  209. /package/bin/templates/vite/{withDataViz/query → basic}/public/imgs/Tailwind_CSS_Logo.svg +0 -0
  210. /package/bin/templates/vite/{withDataViz/basic → basic}/public/imgs/Vitejs-logo.svg +0 -0
  211. /package/bin/templates/{next/withoutDataViz/auth/public → vite/basic/public/imgs}/undp-logo-blue.svg +0 -0
  212. /package/bin/templates/{next/withoutDataViz/basic/public → vite/basic/src/assets}/undp-logo-blue.svg +0 -0
  213. /package/bin/templates/vite/{withDataViz/basic → basic}/src/components/Footer.tsx +0 -0
  214. /package/bin/templates/vite/{withDataViz/basic → basic}/src/components/Header.tsx +0 -0
  215. /package/bin/templates/vite/{withDataViz/basic → basic}/src/styles/fonts.css +0 -0
  216. /package/bin/templates/vite/{withoutDataViz/basic → basic}/src/styles/style.css +0 -0
  217. /package/bin/templates/vite/{withDataViz/basic → basic}/src/vite-env.d.ts +0 -0
  218. /package/bin/templates/{next/withoutDataViz/auth → vite/basic}/tailwind.config.js +0 -0
  219. /package/bin/templates/vite/{withDataViz/basic → basic}/tsconfig.json +0 -0
  220. /package/bin/templates/vite/{withDataViz/basic → basic}/tsconfig.node.json +0 -0
  221. /package/bin/templates/vite/{withDataViz/query+router → basic}/vite.config.ts +0 -0
  222. /package/bin/templates/vite/{withDataViz/basic → query}/.prettierrc +0 -0
  223. /package/bin/templates/vite/{withoutDataViz/query → query}/README.md +0 -0
  224. /package/bin/templates/vite/{withDataViz/query → query}/eslint.config.mjs +0 -0
  225. /package/bin/templates/vite/{withDataViz/query → query}/index.html +0 -0
  226. /package/bin/templates/vite/{withDataViz/basic → query}/public/favicon.ico +0 -0
  227. /package/bin/templates/vite/{withoutDataViz/basic → query}/public/imgs/Tailwind_CSS_Logo.svg +0 -0
  228. /package/bin/templates/vite/{withDataViz/query/public/imgs/logo-color-600.png → query/public/imgs/Tanstack-logo.png} +0 -0
  229. /package/bin/templates/vite/{withDataViz/query → query}/public/imgs/Vitejs-logo.svg +0 -0
  230. /package/bin/templates/vite/{withDataViz/query+router → query}/public/imgs/undp-logo-blue.svg +0 -0
  231. /package/bin/templates/vite/{withDataViz/query+router → query}/src/assets/undp-logo-blue.svg +0 -0
  232. /package/bin/templates/vite/{withDataViz/query → query}/src/components/Footer.tsx +0 -0
  233. /package/bin/templates/vite/{withDataViz/query → query}/src/components/Header.tsx +0 -0
  234. /package/bin/templates/vite/{withDataViz/query → query}/src/main.tsx +0 -0
  235. /package/bin/templates/vite/{withDataViz/query → query}/src/styles/fonts.css +0 -0
  236. /package/bin/templates/vite/{withoutDataViz/query → query}/src/styles/style.css +0 -0
  237. /package/bin/templates/vite/{withDataViz/query → query}/src/vite-env.d.ts +0 -0
  238. /package/bin/templates/vite/{withDataViz/basic → query}/tailwind.config.js +0 -0
  239. /package/bin/templates/vite/{withDataViz/query → query}/tsconfig.json +0 -0
  240. /package/bin/templates/vite/{withDataViz/query → query}/tsconfig.node.json +0 -0
  241. /package/bin/templates/vite/{withDataViz/router → query}/vite.config.ts +0 -0
  242. /package/bin/templates/{next/withoutDataViz/basic → vite/query+router}/.prettierrc +0 -0
  243. /package/bin/templates/vite/{withoutDataViz/query+router → query+router}/README.md +0 -0
  244. /package/bin/templates/vite/{withDataViz/query+router → query+router}/eslint.config.mjs +0 -0
  245. /package/bin/templates/vite/{withDataViz/query+router → query+router}/index.html +0 -0
  246. /package/bin/templates/{next/withoutDataViz/basic/app → vite/query+router/public}/favicon.ico +0 -0
  247. /package/bin/templates/vite/{withDataViz/router → query+router}/public/imgs/Tailwind_CSS_Logo.svg +0 -0
  248. /package/bin/templates/vite/{withDataViz/query+router/public/imgs/logo-color-600.png → query+router/public/imgs/Tanstack-logo.png} +0 -0
  249. /package/bin/templates/vite/{withDataViz/query+router → query+router}/public/imgs/Vitejs-logo.svg +0 -0
  250. /package/bin/templates/vite/{withDataViz/basic → query+router}/public/imgs/undp-logo-blue.svg +0 -0
  251. /package/bin/templates/vite/{withDataViz/basic → query+router}/src/assets/undp-logo-blue.svg +0 -0
  252. /package/bin/templates/vite/{withDataViz/query+router → query+router}/src/components/Footer.tsx +0 -0
  253. /package/bin/templates/vite/{withDataViz/query+router → query+router}/src/components/Header.tsx +0 -0
  254. /package/bin/templates/vite/{withDataViz/query+router → query+router}/src/main.tsx +0 -0
  255. /package/bin/templates/vite/{withDataViz/query+router → query+router}/src/styles/fonts.css +0 -0
  256. /package/bin/templates/vite/{withoutDataViz/query+router → query+router}/src/styles/style.css +0 -0
  257. /package/bin/templates/vite/{withDataViz/query+router → query+router}/src/vite-env.d.ts +0 -0
  258. /package/bin/templates/{next/withoutDataViz/basic → vite/query+router}/tailwind.config.js +0 -0
  259. /package/bin/templates/vite/{withDataViz/query+router → query+router}/tsconfig.json +0 -0
  260. /package/bin/templates/vite/{withDataViz/query+router → query+router}/tsconfig.node.json +0 -0
  261. /package/bin/templates/vite/{withDataViz/query → query+router}/vite.config.ts +0 -0
  262. /package/bin/templates/vite/{withDataViz/query+router → router}/.prettierrc +0 -0
  263. /package/bin/templates/vite/{withoutDataViz/router → router}/README.md +0 -0
  264. /package/bin/templates/vite/{withDataViz/router → router}/eslint.config.mjs +0 -0
  265. /package/bin/templates/vite/{withDataViz/router → router}/index.html +0 -0
  266. /package/bin/templates/vite/{withDataViz/query+router → router}/public/favicon.ico +0 -0
  267. /package/bin/templates/vite/{withoutDataViz/query+router → router}/public/imgs/Tailwind_CSS_Logo.svg +0 -0
  268. /package/bin/templates/vite/{withDataViz/router/public/imgs/logo-color-600.png → router/public/imgs/Tanstack-logo.png} +0 -0
  269. /package/bin/templates/vite/{withDataViz/router → router}/public/imgs/Vitejs-logo.svg +0 -0
  270. /package/bin/templates/vite/{withDataViz/query → router}/public/imgs/undp-logo-blue.svg +0 -0
  271. /package/bin/templates/vite/{withDataViz/query → router}/src/assets/undp-logo-blue.svg +0 -0
  272. /package/bin/templates/vite/{withDataViz/router → router}/src/components/Footer.tsx +0 -0
  273. /package/bin/templates/vite/{withDataViz/router → router}/src/components/Header.tsx +0 -0
  274. /package/bin/templates/vite/{withDataViz/router → router}/src/styles/fonts.css +0 -0
  275. /package/bin/templates/vite/{withDataViz/router → router}/src/vite-env.d.ts +0 -0
  276. /package/bin/templates/vite/{withDataViz/query+router → router}/tailwind.config.js +0 -0
  277. /package/bin/templates/vite/{withDataViz/router → router}/tsconfig.json +0 -0
  278. /package/bin/templates/vite/{withDataViz/router → router}/tsconfig.node.json +0 -0
  279. /package/bin/templates/vite/{withoutDataViz/basic → router}/vite.config.ts +0 -0
@@ -0,0 +1,73 @@
1
+ import { P } from '@undp/design-system-react/Typography';
2
+ import { Button } from '@undp/design-system-react/Button';
3
+
4
+ import { useCounterActions, useCounter } from './stores/counter';
5
+
6
+ export function App() {
7
+ const count = useCounter();
8
+ const { increment, decrement } = useCounterActions();
9
+ return (
10
+ <>
11
+ <div className='flex gap-4 items-center justify-center my-8 mx-auto'>
12
+ <img
13
+ src='./imgs/Vitejs-logo.svg'
14
+ alt='vite logo'
15
+ width='72px'
16
+ style={{ marginLeft: 'auto', marginRight: 'auto' }}
17
+ />
18
+ <P marginBottom='none'>&</P>
19
+ <img
20
+ src='./imgs/Tailwind_CSS_Logo.svg'
21
+ alt='tailwind logo'
22
+ width='72px'
23
+ style={{ marginLeft: 'auto', marginRight: 'auto' }}
24
+ />
25
+ <P marginBottom='none'>&</P>
26
+ <img
27
+ src='./imgs/Tanstack-logo.png'
28
+ alt='tanstack logo'
29
+ width='72px'
30
+ style={{ marginLeft: 'auto', marginRight: 'auto' }}
31
+ />
32
+ <P marginBottom='none'>&</P>
33
+ <img
34
+ src='./imgs/Zustand-logo.svg'
35
+ alt='Zustand logo'
36
+ width='72px'
37
+ style={{ marginLeft: 'auto', marginRight: 'auto' }}
38
+ />
39
+ <P marginBottom='none'>&</P>
40
+ <img
41
+ src='./imgs/undp-logo-blue.svg'
42
+ alt='UNDP logo'
43
+ width='72px'
44
+ style={{ marginLeft: 'auto', marginRight: 'auto' }}
45
+ />
46
+ </div>
47
+ <P marginBottom='xl' className='text-center'>
48
+ To get started, edit the App.tsx file.
49
+ <span className='font-bold'>Count: {count}</span>
50
+ </P>
51
+ <div className='flex gap-4 justify-center mb-8'>
52
+ <Button
53
+ variant='tertiary'
54
+ onClick={() => {
55
+ increment();
56
+ }}
57
+ >
58
+ Increase counter
59
+ </Button>
60
+ <Button
61
+ variant='tertiary'
62
+ onClick={() => {
63
+ decrement();
64
+ }}
65
+ >
66
+ Decrease counter
67
+ </Button>
68
+ </div>
69
+ </>
70
+ );
71
+ }
72
+
73
+ export default App;
@@ -11,7 +11,7 @@ import {
11
11
  import HeaderEl from './components/Header';
12
12
  import FooterEl from './components/Footer';
13
13
  import App from './App';
14
- import createTanStackQueryAboutRoute from './routes/about';
14
+ import createAboutRoute from './routes/about';
15
15
 
16
16
  import './styles/fonts.css';
17
17
  import './styles/style.css';
@@ -38,7 +38,7 @@ const indexRoute = createRoute({
38
38
 
39
39
  const routeTree = rootRoute.addChildren([
40
40
  indexRoute,
41
- createTanStackQueryAboutRoute(rootRoute),
41
+ createAboutRoute(rootRoute),
42
42
  ]);
43
43
 
44
44
  const router = createRouter({
@@ -1,6 +1,6 @@
1
1
  import { createRoute } from '@tanstack/react-router';
2
2
  import type { AnyRootRoute } from '@tanstack/react-router';
3
- import { H6, P } from '@undp/design-system-react/Typography';
3
+ import { P } from '@undp/design-system-react/Typography';
4
4
 
5
5
  export function About() {
6
6
  return (
@@ -21,12 +21,19 @@ export function About() {
21
21
  />
22
22
  <P marginBottom='none'>&</P>
23
23
  <img
24
- src='./imgs/logo-color-600.png'
24
+ src='./imgs/Tanstack-logo.png'
25
25
  alt='tanstack logo'
26
26
  width='72px'
27
27
  style={{ marginLeft: 'auto', marginRight: 'auto' }}
28
28
  />
29
29
  <P marginBottom='none'>&</P>
30
+ <img
31
+ src='./imgs/Zustand-logo.svg'
32
+ alt='Zustand logo'
33
+ width='72px'
34
+ style={{ marginLeft: 'auto', marginRight: 'auto' }}
35
+ />
36
+ <P marginBottom='none'>&</P>
30
37
  <img
31
38
  src='./imgs/undp-logo-blue.svg'
32
39
  alt='UNDP logo'
@@ -34,13 +41,13 @@ export function About() {
34
41
  style={{ marginLeft: 'auto', marginRight: 'auto' }}
35
42
  />
36
43
  </div>
37
- <H6 marginBottom='xl' className='text-center'>
38
- This is the about page.
39
- </H6>
44
+ <P marginBottom='xl' className='text-center'>
45
+ To edit this page, edit the about.tsx file in the routes folder.
46
+ </P>
40
47
  </>
41
48
  );
42
49
  }
43
- export default function createTanStackQueryAboutRoute(
50
+ export default function createAboutRoute(
44
51
  parentRoute: AnyRootRoute,
45
52
  ) {
46
53
  return createRoute({
@@ -48,4 +55,4 @@ export default function createTanStackQueryAboutRoute(
48
55
  component: About,
49
56
  getParentRoute: () => parentRoute,
50
57
  });
51
- }
58
+ }
@@ -0,0 +1,23 @@
1
+ import { create } from 'zustand';
2
+
3
+ type Actions = {
4
+ increment: (d?: number) => void;
5
+ decrement: (d?: number) => void;
6
+ };
7
+
8
+ type Store = {
9
+ count: number;
10
+ actions: Actions;
11
+ };
12
+
13
+ export const useCounterStore = create<Store>(set => ({
14
+ count: 0,
15
+ actions: {
16
+ increment: (d = 1) => set(state => ({ count: state.count + d })),
17
+ decrement: (d = 1) => set(state => ({ count: state.count - d })),
18
+ },
19
+ }));
20
+
21
+ export const useCounter = () => useCounterStore(s => s.count);
22
+
23
+ export const useCounterActions = () => useCounterStore(s => s.actions);
@@ -1,4 +1,3 @@
1
-
2
1
  @import '@undp/design-system-react/style.css';
3
2
  @import 'tailwindcss';
4
3
  @config '../../tailwind.config.js';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@undp/create-app",
3
- "version": "0.2.1",
3
+ "version": "0.2.3",
4
4
  "description": "UNDP's project scaffolding tool",
5
5
  "bin": {
6
6
  "create-undp-app": "./bin/index.js"
@@ -1,108 +0,0 @@
1
- This is a Next.js project powered by Tailwind CSS, the UNDP Design System, and the UNDP Data Visualization Library, bootstrapped with [@undp/create-app](https://www.npmjs.com/package/@undp/create-app).
2
-
3
- It includes:
4
- * Next 16.x with React compiler
5
- * UNDP Design System
6
- * UNDP Data Visualization library
7
- * Authentication with [Better Auth](https://www.better-auth.com/)
8
- * TailwindCSS
9
- * Code linting and formatting via ESLint and Prettier
10
-
11
- ## 🧩 Installation
12
-
13
- This project uses `npm`.
14
-
15
- For installation you will need to install `node` and `npm`, if you don't already have it. `node` and `npm` can be installed from [here](https://nodejs.org/en/download/).
16
-
17
- To install the project, simply run `npm install` in the project folder in the terminal on Mac or Command Prompt on Windows.
18
-
19
- ## 🚀 Local Development
20
-
21
- To start the project locally:
22
-
23
- ```bash
24
- npm run dev
25
- ```
26
-
27
- This is run the app in development mode. Open [http://localhost:3000/](http://localhost:3000/) to view it in the browser.
28
-
29
- The page will reload if you make edits. You will also see any lint errors in the console.
30
-
31
- ## 📜 Available Scripts
32
-
33
- - `npm run dev`: Executes `next dev` and start the local server for local deployment.
34
- - `npm run build`: Executes `next build` and builds the app for production and deployment.
35
- - `npm run preview`: Executes `next start` and serves the static build output locally.
36
- - `npm run clean`: Executes `rimraf node_modules && rimraf .next && rimraf package-lock.json` and remove node_modules folder, dist folder and package-lock.json.
37
- - `npm run lint`: Executes `npx eslint --fix && npx prettier . --write` and resolve all the linting and prettier errors.
38
-
39
- ## 🧰 Tooling Setup
40
-
41
- This project uses ESLint integrated with Prettier to automatically format and lint your code.
42
-
43
- If you’re using Visual Studio Code, install:
44
- * [ESLint extension](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint)
45
- * [Prettier extension](https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode)
46
-
47
- Your editor should now show linting errors and automatically fix issues where possible.
48
-
49
- More info: [ESLint Integrations](http://eslint.org/docs/user-guide/integrations)
50
-
51
- ## 🎨 Styling
52
-
53
- This project uses [Tailwind CSS](https://tailwindcss.com/) for styling and and includes pre-configured design tokens from the UNDP Design System.
54
-
55
- ## 🛡️ Authentication
56
-
57
- Authentication in this project is powered by [Better Auth](https://www.better-auth.com/), which provides a simple and flexible API for adding new providers.
58
-
59
- **Add a new provider**
60
- Add a new provider in `lib/auth.ts`. For example to add Google authenticator:
61
-
62
- ```ts
63
- import { betterAuth } from 'better-auth';
64
- import { nextCookies } from 'better-auth/next-js';
65
-
66
- export const auth = betterAuth({
67
- plugins: [nextCookies()],
68
- secret: process.env.BETTER_AUTH_SECRET,
69
- baseURL: process.env.BETTER_AUTH_URL,
70
- session: {
71
- strategy: 'jwt',
72
- expiresIn: 60 * 60 * 24 * 7,
73
- cookieCache: {
74
- enabled: true,
75
- maxAge: 60 * 60 * 24 * 7,
76
- },
77
- },
78
- emailAndPassword: {
79
- enabled: false,
80
- },
81
- socialProviders: {
82
- goggle: {
83
- clientId: process.env.GITHUB_CLIENT_ID as string,
84
- clientSecret: process.env.GITHUB_CLIENT_SECRET as string,
85
- },
86
- },
87
- });
88
- ```
89
-
90
- **Add env variable**
91
- Add client id and secret (and tenant id) in the `.env.local` file. These id and secret are used in `lib/auth.ts`.
92
-
93
- **Add a sign in button**
94
- Example of sign in button
95
-
96
- ```ts
97
- import { signIn } from '@/lib/auth-client';
98
-
99
- <button onClick={() => signIn.social({ provider: 'google', callbackURL: '/user' })}>
100
- Sign in with Google
101
- </button>
102
- ```
103
-
104
- More info: [Better Auth docs](https://www.better-auth.com/docs/introduction)
105
-
106
- ## 📬 Contact us
107
-
108
- For questions or feedback, contact us at [data@undp.org](mailto:data@undp.org).
@@ -1,33 +0,0 @@
1
- 'use client';
2
-
3
- import { H6, P } from '@undp/design-system-react/Typography';
4
- import Image from 'next/image';
5
-
6
- export default function Home() {
7
- return (
8
- <>
9
- <div className='flex gap-4 items-center justify-center my-8 mx-auto'>
10
- <Image
11
- className='dark:invert'
12
- src='/next.svg'
13
- alt='Next.js logo'
14
- width={100}
15
- height={20}
16
- priority
17
- />
18
- <P marginBottom='none'>&</P>
19
- <Image
20
- className='dark:invert'
21
- src='/undp-logo-blue.svg'
22
- alt='UNDP logo'
23
- width={40}
24
- height={20}
25
- priority
26
- />
27
- </div>
28
- <H6 marginBottom='xl' className='text-center'>
29
- This is the about page.
30
- </H6>
31
- </>
32
- );
33
- }
@@ -1,33 +0,0 @@
1
- 'use client';
2
-
3
- import { H6, P } from '@undp/design-system-react/Typography';
4
- import Image from 'next/image';
5
-
6
- export default function Home() {
7
- return (
8
- <>
9
- <div className='flex gap-4 items-center justify-center my-8 mx-auto'>
10
- <Image
11
- className='dark:invert'
12
- src='/next.svg'
13
- alt='Next.js logo'
14
- width={100}
15
- height={20}
16
- priority
17
- />
18
- <P marginBottom='none'>&</P>
19
- <Image
20
- className='dark:invert'
21
- src='/undp-logo-blue.svg'
22
- alt='UNDP logo'
23
- width={40}
24
- height={20}
25
- priority
26
- />
27
- </div>
28
- <H6 marginBottom='xl' className='text-center'>
29
- To get started, edit the page.tsx file.
30
- </H6>
31
- </>
32
- );
33
- }
@@ -1,86 +0,0 @@
1
- 'use client';
2
-
3
- import Image from 'next/image';
4
- import { Spinner } from '@undp/design-system-react/Spinner';
5
- import { H6, P } from '@undp/design-system-react/Typography';
6
- import { Button } from '@undp/design-system-react/Button';
7
-
8
- import { useSession, signIn } from '@/lib/auth-client';
9
-
10
- export default function UserPage() {
11
- const { data: session, isPending } = useSession();
12
-
13
- if (isPending) {
14
- return (
15
- <div className='my-8 mx-aut'>
16
- <Spinner />
17
- </div>
18
- );
19
- }
20
- const handleSignIn = async () => {
21
- await signIn.social({
22
- provider: 'microsoft',
23
- callbackURL: '/user',
24
- });
25
- };
26
-
27
- if (!session)
28
- return (
29
- <>
30
- <div className='flex gap-4 items-center justify-center my-8 mx-auto'>
31
- <Image
32
- className='dark:invert'
33
- src='/next.svg'
34
- alt='Next.js logo'
35
- width={100}
36
- height={20}
37
- priority
38
- />
39
- <P marginBottom='none'>&</P>
40
- <Image
41
- className='dark:invert'
42
- src='/undp-logo-blue.svg'
43
- alt='UNDP logo'
44
- width={40}
45
- height={20}
46
- priority
47
- />
48
- </div>
49
- <H6 marginBottom='xl' className='text-center'>
50
- Please sign in to view this page
51
- </H6>
52
- <div className='flex justify-center'>
53
- <Button variant='tertiary' onClick={handleSignIn}>
54
- Sign In
55
- </Button>
56
- </div>
57
- </>
58
- );
59
-
60
- return (
61
- <>
62
- <div className='flex gap-4 items-center justify-center my-8 mx-auto'>
63
- <Image
64
- className='dark:invert'
65
- src='/next.svg'
66
- alt='Next.js logo'
67
- width={100}
68
- height={20}
69
- priority
70
- />
71
- <P marginBottom='none'>&</P>
72
- <Image
73
- className='dark:invert'
74
- src='/undp-logo-blue.svg'
75
- alt='UNDP logo'
76
- width={40}
77
- height={20}
78
- priority
79
- />
80
- </div>
81
- <H6 marginBottom='xl' className='text-center'>
82
- Welcome, {session.user.name || session.user.email}!
83
- </H6>
84
- </>
85
- );
86
- }
@@ -1,56 +0,0 @@
1
- This is a Next.js project powered by Tailwind CSS, the UNDP Design System, and the UNDP Data Visualization Library, bootstrapped with [@undp/create-app](https://www.npmjs.com/package/@undp/create-app).
2
-
3
- It includes:
4
- * Next 16.x with React compiler
5
- * UNDP Design System
6
- * UNDP Data Visualization library
7
- * TailwindCSS
8
- * Code linting and formatting via ESLint and Prettier
9
-
10
- ## 🧩 Installation
11
-
12
- This project uses `npm`.
13
-
14
- For installation you will need to install `node` and `npm`, if you don't already have it. `node` and `npm` can be installed from [here](https://nodejs.org/en/download/).
15
-
16
- To install the project, simply run `npm install` in the project folder in the terminal on Mac or Command Prompt on Windows.
17
-
18
- ## 🚀 Local Development
19
-
20
- To start the project locally:
21
-
22
- ```bash
23
- npm run dev
24
- ```
25
-
26
- This is run the app in development mode. Open [http://localhost:3000/](http://localhost:3000/) to view it in the browser.
27
-
28
- The page will reload if you make edits. You will also see any lint errors in the console.
29
-
30
- ## 📜 Available Scripts
31
-
32
- - `npm run dev`: Executes `next dev` and start the local server for local deployment.
33
- - `npm run build`: Executes `next build` and builds the app for production and deployment.
34
- - `npm run preview`: Executes `next start` and serves the static build output locally.
35
- - `npm run clean`: Executes `rimraf node_modules && rimraf .next && rimraf package-lock.json` and remove node_modules folder, dist folder and package-lock.json.
36
- - `npm run lint`: Executes `npx eslint --fix && npx prettier . --write` and resolve all the linting and prettier errors.
37
-
38
- ## 🧰 Tooling Setup
39
-
40
- This project uses ESLint integrated with Prettier to automatically format and lint your code.
41
-
42
- If you’re using Visual Studio Code, install:
43
- * [ESLint extension](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint)
44
- * [Prettier extension](https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode)
45
-
46
- Your editor should now show linting errors and automatically fix issues where possible.
47
-
48
- More info: [ESLint Integrations](http://eslint.org/docs/user-guide/integrations)
49
-
50
- ## 🎨 Styling
51
-
52
- This project uses [Tailwind CSS](https://tailwindcss.com/) for styling and and includes pre-configured design tokens from the UNDP Design System.
53
-
54
- ## 📬 Contact us
55
-
56
- For questions or feedback, contact us at [data@undp.org](mailto:data@undp.org).
@@ -1,33 +0,0 @@
1
- 'use client';
2
-
3
- import { H6, P } from '@undp/design-system-react/Typography';
4
- import Image from 'next/image';
5
-
6
- export default function Home() {
7
- return (
8
- <>
9
- <div className='flex gap-4 items-center justify-center my-8 mx-auto'>
10
- <Image
11
- className='dark:invert'
12
- src='/next.svg'
13
- alt='Next.js logo'
14
- width={100}
15
- height={20}
16
- priority
17
- />
18
- <P marginBottom='none'>&</P>
19
- <Image
20
- className='dark:invert'
21
- src='/undp-logo-blue.svg'
22
- alt='UNDP logo'
23
- width={40}
24
- height={20}
25
- priority
26
- />
27
- </div>
28
- <H6 marginBottom='xl' className='text-center'>
29
- This is the about page.
30
- </H6>
31
- </>
32
- );
33
- }
@@ -1,33 +0,0 @@
1
- 'use client';
2
-
3
- import { H6, P } from '@undp/design-system-react/Typography';
4
- import Image from 'next/image';
5
-
6
- export default function Home() {
7
- return (
8
- <>
9
- <div className='flex gap-4 items-center justify-center my-8 mx-auto'>
10
- <Image
11
- className='dark:invert'
12
- src='/next.svg'
13
- alt='Next.js logo'
14
- width={100}
15
- height={20}
16
- priority
17
- />
18
- <P marginBottom='none'>&</P>
19
- <Image
20
- className='dark:invert'
21
- src='/undp-logo-blue.svg'
22
- alt='UNDP logo'
23
- width={40}
24
- height={20}
25
- priority
26
- />
27
- </div>
28
- <H6 marginBottom='xl' className='text-center'>
29
- To get started, edit the page.tsx file.
30
- </H6>
31
- </>
32
- );
33
- }
@@ -1,33 +0,0 @@
1
- 'use client';
2
-
3
- import { H6, P } from '@undp/design-system-react/Typography';
4
- import Image from 'next/image';
5
-
6
- export default function Home() {
7
- return (
8
- <>
9
- <div className='flex gap-4 items-center justify-center my-8 mx-auto'>
10
- <Image
11
- className='dark:invert'
12
- src='/next.svg'
13
- alt='Next.js logo'
14
- width={100}
15
- height={20}
16
- priority
17
- />
18
- <P marginBottom='none'>&</P>
19
- <Image
20
- className='dark:invert'
21
- src='/undp-logo-blue.svg'
22
- alt='UNDP logo'
23
- width={40}
24
- height={20}
25
- priority
26
- />
27
- </div>
28
- <H6 marginBottom='xl' className='text-center'>
29
- This is the about page.
30
- </H6>
31
- </>
32
- );
33
- }
@@ -1,5 +0,0 @@
1
- import { toNextJsHandler } from 'better-auth/next-js';
2
-
3
- import { auth } from '@/lib/auth';
4
-
5
- export const { GET, POST } = toNextJsHandler(auth.handler);
@@ -1,3 +0,0 @@
1
- @import "tailwindcss";
2
-
3
- @config "../tailwind.config.js";
@@ -1,30 +0,0 @@
1
- import type { Metadata } from 'next';
2
-
3
- import HeaderEl from '@/components/Header';
4
- import FooterEl from '@/components/Footer';
5
-
6
- import './globals.css';
7
- import '@undp/design-system-react/style.css';
8
-
9
- export const metadata: Metadata = {
10
- title: 'My Next + UNDP app',
11
- description: 'Generated by create undp app',
12
- };
13
-
14
- export default function RootLayout({
15
- children,
16
- }: Readonly<{
17
- children: React.ReactNode;
18
- }>) {
19
- return (
20
- <html lang='en'>
21
- <body className='flex flex-col gap-0 min-h-screen'>
22
- <HeaderEl />
23
- <main className='grow-1 flex flex-col justify-center'>
24
- <div className='flex flex-col justify-center'>{children}</div>
25
- </main>
26
- <FooterEl />
27
- </body>
28
- </html>
29
- );
30
- }